TCP和UDP
IP数据包结构
------------------------------------------------0--------------------------------------------------------------------------16----------------------------------------------------------------------------------------------32
版本 | 首长 | 服务类型 | 总长度 |
标识 | 标志 | 段偏移量 | |
生存时间 | 协议 | 首效验和 | |
源IP地址 | |||
目标IP地址 | |||
可选选项 | |||
用户数据 |
版本类型: ipv4,ipv6。
首步长: 记录版本到可选选项的长度。
服务类型:记录传输特性,(低延迟,高流量,可靠性,低成本)。
总长度:整个IP数据报的长度。
标识:用于数据过长的情况下,分片传送,有序性
标志:记录是否分片(保留位,不分片位,更多分片位)
段位移:在分片的时候记录分片在原始数据包的位置。
生存时间:记录IP包最多经过几个路由。
协议:ICMP(ping),TCP,UDP
首选校验和:校验数据是否正确
可选选项:一般不使用该字段,该字段的值以32bit为单位,不足时以0补充。
TCP数据包结构
(用户数据)
端口源 | 目标端口 | |||||||
序号(SEQ) | ||||||||
确认号(ACK) | ||||||||
首部长度 | 保留 |
U R G |
A C K |
P S H |
R S T |
S Y N |
F I N |
窗口大小 |
校验和 | 紧急指针 | |||||||
选项 | ||||||||
数据 |
序号:TCP通信过程中传输方向上的字节流的字节编号,
确认号:对方发过来的报文序号值 +1
首部长度:记录TCP首都长度。
URG:紧急指针是否有效
ACK:表示确认好是否有效(确认报文段)
PSH:提示立即读走数据,为后续数据让出空间
SYN:表示建立一个连接(同步报文段)
FIN:表示告知对方本端口要关闭了。
窗口大小:告诉对方我们一次性能容纳多少数据
校验和:校验数据是否准确
紧急指针:它和序号字段的值相加表示最后一个紧急数据的下一字节的序号,和URG配合并指向紧急数据
选项:最多40字节的数据信息
数据:这里才是真正意义上的数据。
UDP数据包结构
源端口 | 目的端口 |
报文长度 | 效验和 |
三次握手(SNY),四次挥手(FIN)。