tcp-ip2

一,udp

UDP首部.png

二,tcp

TCP包首部.png

T C P提供了一种可靠的面向连接的字节流运输层服务。我们简单地介绍了T C P首部中的各
个字段,并在随后的几章里详细讨论它们。
T C P将用户数据打包构成报文段;它发送数据后启动一个定时器;另一端对收到的数据
进行确认,对失序的数据重新排序,丢弃重复数据; T C P提供端到端的流量控制,并计算和
验证一个强制性的端到端检验和。

tcp状态变迁:

服务器:CLOSEED --(应用程序被动打开,无发送)-->LISTEN

            --(接收SYN,回复带ACK的SYN)-->SYN_RECIEVE

扫描二维码关注公众号,回复: 777708 查看本文章

            --(接收ACK)--> ESTABLISHED--(收到FIN,应答ack)-->CLOSE_WAIT

            --(应用程序关闭,发送FIN)-->LAST_ACK--(接收FIN)-->CLOSEED

客户端:CLOSEED--(应用程序主动打开,发送SYN)-->SYN_SENT

            --(接收带ACK的SYN,发送ACK)-->ESTABLISHED

            --(应用程序关闭,发送FIN)-->FIN_WAIT1

            --(接收ACK,无发送)-->FIN_WAIT2

            --(收FIN,发ACK)-->TIME_WAIT--(2MSL超时)-->CLOSEED

TIME_WAIT状态也称为2 M S L等待状态。每个具体T C P实现必须选择一个报文段最大生
存时间M S L(Maximum Segment Lifetime)。它是任何报文段被丢弃前在网络内的最长时间。
我们知道这个时间是有限的,因为T C P报文段以I P数据报在网络内传输,而I P数据报则有限制
其生存时间的T T L字段。

RFC 793 [Postel 1981c] 指出MSL为2分钟。然而,实现中的常用值是30秒,1分钟,
或2分钟。

对一个具体实现所给定的M S L值,处理的原则是:当T C P执行一个主动关闭,并发回最

后一个A C K,该连接必须在T I M E WA I T状态停留的时间为2倍的M S L。这样可让T C P再次发
送最后的A C K以防这个A C K丢失。

tcp状态转换图.png。

猜你喜欢

转载自michaelzqm.iteye.com/blog/940868