TCP连接建立与终止过程剖析

TCP连接建立与终止过程剖析

ID:37436237

大小:1.84 MB

页数:22页

时间:2019-05-12

TCP连接建立与终止过程剖析_第1页
TCP连接建立与终止过程剖析_第2页
TCP连接建立与终止过程剖析_第3页
TCP连接建立与终止过程剖析_第4页
TCP连接建立与终止过程剖析_第5页
资源描述:

《TCP连接建立与终止过程剖析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1TCP连接建立与终止过程剖析性能测试组:凌宏立2012-05-27目录TCP连接建立与终止过程剖析2案例3基础知识1网络模型OSI七层网络模型LinuxTCP/IP四层概念模型对应网络协议应用层(Application)应用层FTP,NFS,WAIS,HTTP,TFTP表示层(Presentation)Telnet,Rlogin,SNMP,Gopher会话层(Session)SMTP,DNS传输层(Transport)传输层TCP,UDP,RTCP网络层(Network)网际层IP,ICMP,ARP

2、,RARP,AKP,UUCP数据链路层(DataLink)网络接口FDDI,Ethernet,Arpanet,PDN,SLIP,PPP物理层(Physical)IEEE802.1A,IEEE802.2到IEEE802.11TCP协议特点面向流的投递服务面向连接的投递服务TCP特性可靠性传输全双工传输TCP报文格式1、源端口和目的端口各占16位,每台电脑开启的端口数为216=655362、顺序号(SEQ),当一方要与另一方联系时就发送一个初始序号(ISN)给对方,TCP连接是全双工的,即双方的数据流可同

3、时传输。在传输过程中双方数据是独立的,因此每个TCP连接必须有两个顺序号分别对应不同方向的数据流。ISN随时间而变化,可看作32位计数器,每4ms加13、确认序(ACK),在握手阶段,确认序号将发送方的序号加1作为回答,在数据传输阶段,确认序号将发送方的序号加发送的数据大小作为回答,表示确实收到这些数据。TCP报文格式6个标志位:URG紧急指针,用来保证TCP连接不被中断,并且督促中间层设备要尽快处理这些数据。ACK确认序号有效。PSH接收方应该尽快将这个报文段交给应用层,缩写为P。RST重建连接,缩

4、写为R。SYN同步序号用来发起一个连接,缩写为S。FIN发端完成发送任务,缩写为F。连接建立192.168.160.74:1069192.168.160.75:53客户端服务端(主动打开)SYN_SENDESTABLISHEDSYN_RCVDLISTEN(被动打开)ESTABLISHEDSYN(SEQ=X)ACKY+1SYN(SEQ=YACK=X+1)1、请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN),这个SYN段为报文段1。2、服务器发回包含服务器的初始

5、序号的SYN报文段(报文段2)作为应答。同时,将ACK确认序号设置为客户的ISN加1以对客户的SYN报文段进行确认。一个SYN将占用一个序号。3、客户必须将ACK确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认(报文段3)总结:客户端:SYN_SENT->ESTABLISHED服务端:LISTEN->SYN_RECV->ESTABLISHED连接建立超时TCP-IP详解卷1:服务器断开时,客户端会每隔多长时间尝试重新发送SYN建立连接?第二个SYN与第一个SYN的间隔时间是5.8秒,第

6、三个与第二个的间隔时间是24秒(已过时)Linux2.5以上版本已经改变了连接建立超时算法,目前每次重新发送SYN的间隔时间为:3x2n(n>=0)Linux源码:http://lxr.linux.no/#linux+v3.2.6/net/ipv4/tcp_timer.c#L141总结:1、超时间隔:第二个与第一个相隔3s,第三个与第二个相隔6s,第四个与第三个相隔12s,即3x2n(n>=0)2、服务器断开连接,客户端最多会发送6次SYN请求(即重试5次),若仍无法连接,则中断请求。PS:通过tcp

7、_syn_retries:INTEGER修改内核参数设置发送多少个SYN连接请求才决定放弃,不应该大于255([root@test1~]#sysctl-a

8、greptcp_syn_retries查看默认值)if(boundary<=linear_backoff_thresh)timeout=((2<

9、INMACKM+1(主动关闭)FIN_WAIT_1FINNACKN+1TIME_WAIT也称2MSL等待状态。每个具体TCP实现必须选择一个报文段最大生存时间MSL,它是任何报文段被丢弃前在网络内的最长时间。RFC793指出MSL为2min,然而不同的系统实现会不太一样,常用30s、1min或2min总结:1、发送的第一个Fin包一定会带上一个Ack,该ACK为重发最近一次的Ack,回应最接近的一个包2、大多数TCP实现加了限制,在2MSL等待期间的端口

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。