简介
其实协议的形式就是结构化的数据,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位不是 0000 - 1111 ,也就是 0 -15这个区间吗?
可是报头的基本大小都20了。 实际上上,4位首部长度 * 4 才等于报头的实际大小。也就 0 - 60区间,报文长度默认是20字节,也就说明4位首部长度默认为5。
标签:int,报文,unsigned,TCP,详解,报头,端口号 From: https://www.cnblogs.com/shuijibaobao/p/18257896