计算机网络(三),TCP报文段详解
目录
1.TCP(Transmission Control Protocol传输控制协议)作用
2.TCP报文段详解
三、TCP报文段详解
1.TCP(Transmission Control Protocol传输控制协议)作用
(1)面向连接的、可靠地、基于字节流的传输层通信协议
(2)将应用层的数据流分割成报文段并发送给目标节点的TCP层
(3)数据包都有序号,对方收到则发送ACK确认,未收到则重传
(4)使用校验和来检验数据在传输过程中是否有误
2.TCP报文段详解
1.源端口(Source Port)-两个字节
2.目的端口(Destination port)-两个字节
TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。
3.顺序序号(Sequence Number)-四个字节
4.确认序号(Acknowledgement Number)-四个字节
顺序序号和确认序号是TCP可靠传输的关键部分。序号是本报文段发送的数据组的第一个字节的序号。在TCP传送的流中,每一个字节一个序号。一个报文段的序号为300,此报文段数据部分共有100字节,则下一个报文段的序号为400。所以序号确保了TCP传输的有序性。确认号,即ACK,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。确认号只有当ACK标志为1时才有效。比如建立连接时,SYN报文的ACK标志位为0。
5.偏移
6.保留
7.标志位(TCP Flags)
(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时表示发送方已经没有数据发送了,即关闭本方数据流。
8.窗口字段:滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制
9.检验和:奇偶校验,此校验和是对整个的 TCP 报文段,包括 TCP 头部和 TCP 数据,以 16 位字进行计算所得
10.紧急指针:只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。 TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式。
11.可选和填充部分:长度可变,定义其他的一些可选参数
12.数据部分:可以存在,也可以不存在
前十部分是TCP报文段头部一共20字节