认识TCP报头
其实协议的形式都是一个结构化的数据,TCP协议也不例外。一起来看看TCP协议的报头是怎么样的。
以上就是TCP报头,实际上是一个结构化的数据,也就是一个结构体。例如:
struct tcp_hdr
{
unsigned int stc_port : 16;
unsigned int desc_port : 16;
unsigned int seq;
unsigned int ack_seq;
....
};
目的端口号&&源端口号
其中16位源端口号,就是你当前发送报文的端口号。目的端口号则是目标主机的端口号。
这也就是我们在用accept时,能够获取连接套接字的同时,还能获取到对端主机的端口号(ip也获取到了,这个在网络层的时候解释)。 而目的端口号也很好理解,因为端口号能够确定一台主机中唯一的一个进程。当你的报文被发送到对端主机的时候,就能够通过端口号去锁定对应的PCB进程。
4位首部长度
4位首部长度代表的是报头占多