TCP协议详解(图解TCP协议格式、TCP的各种可靠传输机制)(二)


1. TCP协议格式

如图:
在这里插入图片描述

① 32位序号:该条TCP数据所携带的起始序号。

② 32位确认序号:期望对方发送数据从哪一个序号开始发送。

③ 4位首部长度:最大是0xF(15),指的是TCP头部的长度。

首部长度 = 4位首部长度(DEC) * 4 ,单位为Byte。
注:DEC:表示十进制的数字。

④ 6个标志位:(6个比特位)

  • URG:紧急标志位(直接越过发送缓冲区等待的数据优先传输到网络层,一般配合底下的16位紧急指针使用)
  • ACK:确认标志位
  • PSH:发送数据标志位
  • RST:重置连接标志位(当无法识别对方发来的连接请求时,就会使用RST标志位),换句话说,当连接双方X、Y要断开连接时,X方认为连接已经断开了,Y方却认为连接还没有断开,这个时候,当Y给X发送数据包时,X就会回复带有RST标志位的数据包给Y
  • SYN:发起连接标志位
  • FIN:断开连接标志位(连接双方有一方想要断开这种连接关系,称为断开)

⑤ 16位窗口大小:告知消息发送方,自己对消息的接收能力时多少,这个值是动态变化的。

⑥ 16位检验和:校验数据在传输过程中是否失真。

⑦ 16位紧急指针:配合URG标志位发送带外数据。(紧急的数据)

⑧ MSS:最大报文段长度(MAX Segmet Size)

  • 在三次握手过程中,双方协商MSS的大小,取两者的最小值

就拿上篇文章中抓到的包进行分析:
在这里插入图片描述
连接双方会在三次握手期间对MSS进行相应的协商。

  • 为什么要协商最大报文段长度?

防止报文过大,在网络当中传输的时候,数据丢失导致重传。(为了不让其频繁的重传)

  • MSS的大小会受到数据链路层MTU的影响

MTU:最大传输单元,是网卡在传输数据帧的时候的一个限制值,这个限制值是取决于网络传输设备的电气特性。(我们可以使用ifconfig命令中看到MTU的大小,一般在网络中传输的基本都是1500字节)
在这里插入图片描述

  • MSS + tcpHeader + ipHeader <= MTU,这是一个特性。

2. TCP的可靠传输机制

本小节出现的相关的图片均来自《图解TCPIP》第五版。

TCP是一个“聪明的”协议,为了保证它的可靠传输,我们要从两个方面来看:

  • 保证数据可靠有序的到达对端
  • 提高传输效率

2.1 确认应答(ACK)机制

在这里插入图片描述
TCP通过肯定的确认应答(ACK)实现可靠的数据传输。当发送端将数据发出之后会等待对端的确认应答。如果有确认应答,说明数据已经成功到达对端。反之,则数据丢失的可能性很大。
在一定时间内没有等到确认应答

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值