TCP协议如何保证可靠传输

1)应用数据被分割成TCP认为最适合发送的数据块。
2)TCP给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
3)校验和:TCP将保持他首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。
4)TCP的接收端会丢弃重复的数据。
5)流量控制:TCP连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP使用流量控制协议是可变大小的滑动窗口协议。(TCP的滑动窗口实现流量控制)
6)拥塞控制:当网络拥塞时,减少数据的额发送。
7)ARQ协议:也是为了实现可靠传输的,他的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。
8)超时重传:当TCP发出一个段后,他启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到确认,将重发这个报文段。


1.ARQ协议
自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中数据链路层和传输层的错误纠正协议之一。他通过使用无人和超时两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送方再发送后一端时间之内没有收到确认帧,他通常会重新发送。ARQ包括停止等待ARQ****协议连续ARQ协议

停止等待ARQ协议

  • 停止等待协议是为了实现可靠传输的,他的基本原理就是每发完有一个分组就停止发送,等待对方确认(回复ACK)。如果过了一段时间(超时时间后),还是没有收到ACK确认,说明没有发送成功,需要重新发送,直到收到确认后再发下一个分组。
  • 在停止等待协议中,若接收当收到重复分组,就丢弃该分组,但同时还要发送确认。

优点:简单
缺点:信道利用率从低,等待时间长

1)无差错情况
发送发发送分组,接收方在规定时间内收到,并且回复确认,发送发再次发送。
2)出现差错情况(超时重传)
停止等待协议中超时重传时指只要超过一段时间仍然没有收到确认,就重传前面发送过的分组(认为刚才发送过的分组丢失了)。因此每发送完一个分组需要设置一个超时重传计时器,其重传时间应比数据在分组传输的平均往返时间更长一些。这种自动重传方式常称自动重传请求ARQ,另外在停止等待协议中若收到重复分组,就丢弃该分组,但同时还要发送确认。连续ARQ协议可提高信道利用率。发送维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。接收方一般采用累积确认,对按序到达的分组发送确认,表明到这个分组位置的所有分组都已经正确收到了。
3)确认丢失和确认迟到

  • 确认丢失:确认消息在传输过程中丢失。当A发送M1消息,B收到后,B向A发送了一个M1确认消息,但却在传输过程中丢失。而A并不知道,在超时计时过后,A重传M1消息,B再次收到该消息后采取以下两点措施:(1)丢弃这个重复的M1消息,不向上层交付。(2)向A发送确认信息。(不会认为已经发送了,就不再发送。A能重传,就证明B的确认消息丢失)。
  • 确认迟到:确认消息在传输过程中迟到。A发送M1消息,B收到并发送确认。在超时时间被没有收到确认消息,A重传M1消息,B仍然收到并继续发送确认消息(B收到两份M1消息)。此时A收到了B第二次发送的确认消息。接着发送其他数据。过了一会,A收到了B第一次发送的对M1的确认消息(A也收到了2份确认消息)。处理如下:(1)A收到重复的确认后,直接丢弃。(2)B收到的重复的M1后,也直接丢弃重复的M1.

连续ARQ协议
连续ARQ协议可提高信道利用率。发送发维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等到对方确认。接收方一般采用累积确认,对按序到达的最后一个分组发送确认,表明在这个分组位置的所有分组已经正确收到了。

优点:信道利用率高,容易实现,即使确认丢失,也不必重传。
缺点:不能向发送方反应出接收方已经正确收到的所有分组的信息。比如:发送方发生了5条消息,中间第三条丢失(3号),这时接收方只能对前两个发送确认。发送方无法知道后三个分子的下落,而只好把后三个全部重传一次。这也叫Go-Back-N(回退N),表示需要退回来重传已经发送过得N个消息。


拥塞控制
在某段时间,若网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫拥塞。拥塞控制就是为了防止过多的数据注入到网络中,这样就可以使网络中的路由器或链路不致过载。拥塞控制索要做的都有有个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机,所有路由器,以及与降低网络传输性能有关的所有因素。相反,流量控制往往是点对点通信两的控制,是个端到端的问题。流量控制索要做到的就是抑制发送端发送数据的速率,一遍使接收端来得及接收。

为了进行拥塞控制,TCP发送方要维持一个拥塞窗口(cwnd)的状态变量。拥塞控制的窗口大小取决于网络的拥塞程度,并且动态的变化。发送方让自己的发送窗口取为拥塞窗口和接收方窗口中较小的一个。

TCP的拥塞控制采用了四种算法:慢开始、拥塞避免、快重传和快恢复。在网络层也可以使路由器采用适当的分组丢弃策略(如主动队列管理AQM),以减少网络拥塞的发生。

  • 慢开始:慢开始算法的思路是当主机开始发生数据时,如果立即大量数据字节注入到网路,那么可能会引起网路阻塞,因为现在还不知道网路的符合情况。经验表明,较好的方法是先探测一下,即由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口数值。cwnd初始值是1,没经过一个传播轮次,cwnd加倍。
  • 拥塞避免:拥塞避免算法的思路是让拥塞窗口cwnd缓慢增大,即每经过一个往返时间RTT就把发送方的cwnd加1.
  • 快重传和快恢复:在TCP/IP中,快重传个快恢复(fast retransmit and recovery, FRR)是一种拥塞控制算法,他能快速回复都市的数据包。没有FRR,如果数据包丢失了,TCP将会使用定时器来要求传输暂停。在暂停的这段时间内,没有新的或复制的数据包被发送。有了FRR,如果接收机收到一个不按顺序的数据段,他会立即给发送机发送一个重复确认。如果发送机收到三个重复确认,呀就会假定确认件指出的数据段丢失了,并立即重传这些丢失的数据段。有了FRR,就不会因为重传时要求的暂停被耽搁。当有单独的数据包丢失时,快重传和快恢复(FRR)能最有效的工作。当有多个数据信息包在某一段很短的时间内丢失时,他则不能很有效的工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值