文章解释了TCP的拥塞控制策略,包括慢启动、拥塞避免、快速恢复和快速重传。
TCP—传输控制协议是一种面向连接的可靠传输协议。可靠,有序,无丢失和无传输
特点:
TCP是一种面向连接的传输协议
每一条TCP连接有且只能存在两个端点,形成一种端对端连接形式。
可靠、有序、无丢失和无重复
TCP时提供全双工通讯
按序到达但是还未被应用程序提取的数据
乱序到达的数据
想要发送的应用层数据
已经发送但未收到确认的数据
发送缓存
接收缓存
TCP是面向字节流的
建立TCP连接的时候需要知道内容
源/目IP、源/目端口----->TCP绘画的四元组信息 套接字:IP:port
可靠性
TCP的可靠性是同过四个机制来进行的
确认机制:传输确认每收到一个数据端均需要进行一次确认。
重传机制:当一个数据端中的某个报文丢失,会提醒重传丢失的报文
排序机制:传输一个数据端,呗分为多个报文,从不同路径传输最终到达目的地顺序会被打乱,需要重新排列组合,回复原石报文内容
流控机制(滑动窗口机制):调节窗口大小来,对流量进行控制
窗口大小:指无需等待确认就可以连续发送的最大数据量
确认机制
累计确认
确认序列号表面是接受方期望收到发送方发送的下一个字节的序号;且表示之前的所有数据均已接受—累计确认(默认)
选择确认
若收到的报文段无差错,只是未按序号,中间还缺少一些序号的数据;
通过 选择确认,
可以只传送缺少的数据而不重传已经正确到达接受方的数据。
选择确认机制也是需要进行协商的
排序机制
MTU—最大传输单元(针对设备接口的概念)不是固定的,根据链路类型来(e.g.以太网中MTU=1500字节)
MSS—最大段长度—TCP分段,在可选项中填充–该参数是需要在TCP建立握手过程中通过前两次SYN报文段来进行协商确定——只有date部分没有传输层段
PMTU—路径MTU发现协议—在一条传输路径中各个设备的MTU不相同,需要使用PMTU来确定MTU
(工作过程:起始段发送一个向目标地点的数据包,里面除了源目端口其余用0填充,发送到下个比它MTU小的节点,那个设备丢弃该数据包,并且回复一个它的MTU给起点,重复操作直到目标回消息给它)
重传机制
1.超时重传
RTT—往返时间(TCP报文发送完成的时刻到接收到该报文对应的ACK报文的时刻的差值)
RTO—超时重传时间(TCP超时重传定时器的超时时长)
RTO略大于RTT时间—>动态变换的数值,加倍的形式进行变化
RTO太大了
重发就慢,丢了还要过很久才重发,导致TCP连接没有充分利用网络,网络的利用率低,进而导致TCP端到端传输的延时长,性能差。RTO太小了
重发得太快,会导致没有丢的包就重发。于是网络上存在大量的无意义的重发报文,一来占用大量带宽会,二来会增加网络拥塞,会导致更多的超时,然后更多的超时双导致更多的重发。
2.快速重传
在TCP中,快速重传机制是一种错误控制机制,用于在检测到丢包时快速重传丢失的数据包,如果发送方连续收到三个相同的ACK,它会推断相对应的数据包可能已经丢失,并立即重传该数据包而不是等待重传计时器超时(RTO时间到达)。
如果ACK(n)出现三次则重传数据包n
流控机制—流量控制机制
如何确定丢失的是哪一个报文
窗口:指定的是无需等待确认应答,而可以继续发送数据包的最大值。
窗口大小体现在缓存的大小
窗口大小:
TCP的数据流控制机制是为了确保发送方的数据发送速率不会过快,以至于接收方来不及处理。这个机制通过滑动窗口来实现,它允许发送方在接收方确认接收数据之前发送一定数量的数据。
滑动窗口:发送方和接收方都维护一个窗口。发送方的窗口限制了它可以发送但还未被确认的数据量,而接收方的窗口限制了它可以接收但还未处理的数据量。
接收窗口:接收方在确认报文中告诉发送方其接收窗口的大小,这个大小表示接收方还能接收多少数据。如果接收窗口变为0,发送方必须停止发送数据,直到接收窗口的大小再次变为正数。
发送窗口调整:发送方根据接收到的接收窗口大小调整自己的发送窗口大小,以控制发送速率。
零窗口探测:如果发送方收到的接收窗口大小为0,它会定期发送零窗口探测报文,以检测接收方窗口是否已经打开(即接收方是否已经处理了数据并有空间接收新数据)。
窗口更新:当接收方处理了一些数据并有更多空间可用时,它会发送一个窗口更新报文,告知发送方新的接收窗口大小,发送方随后可以根据这个新大小发送更多数据。
TCP要求发送方依据接收窗口rwnd来控制数据的发送量。rwnd等于接收方接收缓存大小减去已存数据量大小 即rwnd变量是可变的。
TCP头部的信息
ACK确认位:当ACK=1时,确认序列号有意义,在连接建立后所有传输的报文端都必须将该标记位置为1 SYN同步位:代表连接请求 FIN中止位:表明此报文端发送方数据已发送完毕,要求释放连接。 RST复位:当TCP连接出现严重错误时,必须释放连接,然后重新建立传输连接 URG紧急位:当URG=1时,表面此报文中存在紧急数据,是高优先级数据,应尽快传输给应用层程序处理,不再缓存在排队。配合紧急针使用 PSH推送位:当PSH=1时,接收方应尽快交付数据给应用层程序,
拥塞控制
拥塞控制的基本条件。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做拥塞(congestion);若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。(就像没有红绿灯的十字路口,会有点堵塞,如果没有交警的疏导,有可能会堵死
TCP的拥塞控制
慢启动
拥塞避免
快速恢复
快速重传文章来源:https://www.toymoban.com/news/detail-845103.html
文章来源地址https://www.toymoban.com/news/detail-845103.html
到了这里,关于理解TCP:传输控制协议的特点和机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!