欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

传输层——TCP报文头介绍

程序员文章站 2022-09-21 17:48:49
传输层——TCP报文头介绍   16位源端口号   16位目的端口号   32位序列号   32位确认序列号...

传输层——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包头的一部分)。