TCP报文介绍
TCP是一种可靠的、面向连接的字节流服务。
源主机在传送数据前需要先和目标主机建立连接。然后,在此连接上,被编号的数据段按序收发。同时,要求对每个数据段进行确认,保证了可靠性。如果在指定的时间内没有收到目标主机对所发数据段的确认,源主机将再次发送该数据段。
TCP报文结构
TCP头部他的标准长度是20字节。除非出现选项,头部字段以32位为单位给出头部大小(最小值是5)。
源端口
目的端口
序列号
此次发送的数据在整个报文段中的起始字节数。此序号用来标识从tcp发送端向tcp接受端发送的数据字节流,seq表示在这个报文段中的第一个数据字节。如果将字节流看做在两个应用程序间的单向流动,则tcp用序号对每个字节进行计数。32 bit的无符号数。为了安全起见,它的初始值是一个随机生成的数,它到达2的32次方-1后又从零开始。确认号
是下一个期望接收的字节,确认序号应当是上次已成功接收的序号+1,只有ack标志为1时确认序号字段才有效。一旦一个连接已经建立了,ack总是=1头部长度
头部长度给出了头部的长度,以32位字为单位。他是必需的,因为选项长度是可以变得。作为一个4位的字段TCP被限制为只能带60字节的头部。而不带选项大小是20字节。保留位
在TCP/IP详解卷中为4位保留位和8个标志位其中在老的实现中只理解最后的6位。