一,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
--(接收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。