TCP报文是TCP层传输的数据单元,也叫报文段。
端口号,用来标识同一台计算机的不同的应用进程。
1)源端口:源端口和IP地址的作用是标识报文的返回地址;
2)目的端口:目的端口指明接收方计算机的应用程序接口;
PS:TCP报文头中的源端口号和目的端口号同IP数据报中的源IP和目的IP唯一确定一条TCP连接。
首部长度占4bits,由于首部可能含有可选项内容,因此TCP报文头的长度是不确定的,报文头不包含任何任选字段,则长度为20字节。
4位首部长度字段所能表示的最大值为1111,转化为十进制为15,15*32/8=60,故报文头最大长度为60字节。
首部长度也叫数据偏移,是因为首部长度实际上指示了数据区在报文段中的起始偏移值。
为将来定义新的用途保留,一般置为0
控制位有:URG,ACK,PSH,RST,SYN,FIN.共6个,每一个标志位表示一个控制功能。
1)URG:紧急指针标志,为1时表示紧急指针有效,为0时忽略紧急指针
2)ACK:确认序号标志,为1时表示确认号有效,为0时表示报文中不含确认信息,忽略确认号字段。
3)PSH:push标志,为1表示是带有push标志的数据,指示接收方在接受到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。
4)RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接,或者用于拒绝非法的报文段和拒绝连接请求。
5)SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1
6)FIN:finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。
奇偶校验,此校验和是对整个TCP报文段,包括TCP头部和TCP数据,以16位进行计算所得。由发送端计算和存储,并由接收端进行验证。
原文:https://www.cnblogs.com/hony625/p/15038515.html