30张图说清楚 TCP 协议】的更多相关文章

题外话:刚刚过去的半个月实在是忙得我喘不过来气,虽然手里还压着几个项目得在期末考试之前做完,但是想想还是更新一下随笔,稍微换个心情.另外小吐槽一下那些在博客园里原封不动抄书当随笔的人,唉真是....算了我不吐槽了哈哈,进入正题! TCP/IP协议有关的书籍我在图书馆里翻看了很多,虽说每本侧重都不大一样,但是有一点是一样的:TCP协议讲义的篇幅都是其他协议的三到五倍! 下面总结一下TCP协议里最核心的知识和一些细节,首先从Overview开始: 一.  一张图--TCP FSM 这张图是TCP协议…
一.理解一个传输流再去扩展 用http举例来说,首先作为发送端的客户端在应用层(http协议)发出一个想看某个web页面的http请求. 接着,为了传输方便,在传输层(tcp协议)把从应用层处收到的数据(http请求报文)进行分割,并在各个报文上打上标记序号及端口号转发给网络层. 在网络层(ip协议),增加作为通信目的地的mac地址后转发给 .这样一来,发往网络的通信请求就准备齐全了. 接收端端服务器在链路层接收到数据,按序往上层发送,一直到应用层.当传输到应用层,才能算真正接收到由客户端发送过…
原文: http://www.blogjava.net/yongboy/archive/2015/05/07/424917.html tcp是一个非常复杂并且古老的协议, 之前教科书上将的很多东西应用到实际的时候会发现很多问题, 比如tcp一定是可靠的连接, 深入了解之后发现这只能保证在一定程度上可靠, 本文整理了tcp协议的诸多不足, 希望每一个做架构的同学都抽时间深入理解tcp协议, 理解linux的tcp协议实现原理. TCP自从1974年被发明出来之后,历经30多年发展,目前成为最重要的…
Listening Syn_sent syn_rcvd established close_wait time_wait --------- 对方主动关闭(对方调用close()), 我方的状态变为 close_wait 我方主动关闭(我方调用close()), 我方的状态变为 time_wait 统计各种端口状态的数目:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 3. 什么是2MSL MSL是Maxi…
2014-10-30 分类:理论基础 / 网络开发 阅读(4127) 评论(29)  TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续.它只是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功.首先来看看OSI的七层模型: 我们需要知道TCP工作在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Link层:在第…
问题背景 公司有一套消息推送系统(简称GCM),由于人事变动接手了其中的客户端部分.看了一下文档,仅通讯协议部分有几页简单的说明,代码呢又多又乱,一时理不出一个头绪.由于消息是从后台推送到端的,所以使用了 tcp 长连接通道来保证消息的及时性,基于 http 的一堆分析工具(如 postman)完全没有用武之地,因此决定写个小工具来模拟 tcp 上的通讯协议,作为深入熟悉代码之前的热身. 问题的解决 一开始想用 c++ 来写这个工具,但是想到 socket 一连串经典的(socket / bin…
TCP是什么? TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的.可靠的. 基于IP的传输层协议.TCP在IP报文的协议号是6.TCP是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功.首先来看看OSI的七层模型: 我们需要知道TCP工作在网络OSI的七层模型中的第四层--Transport层,IP在第三层--Network层,ARP 在第二层--Data Link层;在第二层上的数据,我们把它叫Frame,在第三…
暂时需要的信息有: ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 SYN(SYNchronization) : 在连接建立时用来同步序号.当SYN=1而ACK=0时,表明这是一个连接请求报文.对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此,  SYN置1就表示这是一个连接请求或连接接受报文. FIN (finis)即完,终结的意思, 用来释放一个连接.当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释…
http://blog.csdn.net/guowake/article/details/6615728 Linux下高并发socket最大连接数所受的各种限制 http://stackoverflow.com/questions/651665/how-many-socket-connections-possible How many socket connections possible? http://www.cppblog.com/Solstice/archive/2011/06/02/1…
TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求.Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的.所以Http连接是一种短连接,是一种无状态的连接.所谓的无状态,是指浏览器每次向服务器发起请求的时候,不是通过一个连接,而是每次都建立一个新的连接.如果是一个连接的话,服务器进程中就能…