TCP协议通过使用“端口”来标识源端和目标端的应用进程。端口号可以使用0到65535之间的任何数字(其中0-1023端口属于公认端口,绑定一些服务)。在收到服务请求时,操作系统动态地为客户端的应用程序分配端口号。
端口号:用来识别不同应用进程
源端口:标识报文的返回地址,即报文来源的地方(16bit)
目的端口:明确接收的计算上的应用接口(16bit)
顺序号:用来标识从TCP源端向TCP目标端发送的数据字节流,它表示在这个报文段中的第一个数据字节。(32bit)
确认号:ACK标志为1时,确认号字段有效。它包含目标端所期望收到源端的下一个数据字节。(32bit)
头部长度:给出头部占32比特的数目。如果没有任何选项字段,TCP头部长度为20字节;最多可以有60字节的TCP头部。(4bit)
标志位字段(U、A、P、R、S、F):各比特的含义如下(6bit):
URG:紧急指针(urgent pointer)有效。(1bit)
ACK:确认序号(acknowledgement )有效。(1bit)
PSH:传送(push)接收方应该尽快将这个报文段交给应用层。(1bit)
RST:(reset) 重建连接。(1bit)
SYN:(synchronous)发起一个连接。(1bit)
FIN:(finish结束)释放一个连接。(1bit)
窗口:此字段用来进行流量控制。单位为字节数,这个值是本机期望一次接收的字节数。(16bit)
校验和:占16比特。对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。(16bit)
紧急指针字段:占16比特。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。(16bit)
选项和填充:可能包括"窗口扩大因子"、"时间"等选项。(32bit)