传输层——TCP报文头介绍
传输层——TCP报文头介绍
16位源端口号
16位目的端口号
32位序列号
32位确认序列号
4位头部长度
保留6位
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
16位窗口大小
16位检验和
16位紧急指针
可选项
数据
源端口: 长度为16位,2个字节。
目的端口: 长度为16位,2个字节。
IP实现了点到点的数据通信,而TCP实现的是端到端的通信。
通信端用一个IP与端口号来唯一标识。(其实端口号就是用来标识同一主机中的不同进程。)
IP协议负责将数据传输到目标主机,而TCP可以根据数据报中的端口号,将数据交给相应的程序进行处理。
序列号: 长度32位,4个字节。
确认序列号:长度32位,4个字节。
头部长度:该字段占用4位,用来表示报文首部的长度,单位是4Byte。如:headLen = ((packet[12]>>4)&0x0F)*4;
预留6位:长度为6位,作为保留字段,暂时没有什么用处。
URG:长1位,表示紧急指针字段有效;
ACK:长1位,置位表示确认号字段有效;
PSH:长1位,表示当前报文需要请求推(push)操作;
RST:长1位,置位表示复位TCP连接;
SYN:长1位,用于建立TCP连接时同步序号;
FIN:长1位,用于释放TCP连接时标识发送方比特流结束;
————该6位字段,理解不深,留作日后研究???
窗口大小:长度为16位,2个字节。
校验和:长度为16位,2个字节。
紧急指针:长度为16位,2个字节。
以上是TCP包头必须要有的字段,也称固有字段,长度为20个字节。
可选项:此项是可选项(可有可无),解包时得具体分析(是TCP包头的一部分)。
上一篇: 爆囧,一个比一个坑深
下一篇: SEM竞价推广账户调整优化思路