本文共 1230 字,大约阅读时间需要 4 分钟。
面向非连接
不维护连接状态,支持同时向多个客户端传送相同的信息 数据包报头只有8个字节,额外开销小 吞吐量受限于数据生成速率,传输速率以及机器性能 尽最大努力交付(不保证可靠) 面向报文,不对报文信息进行合并和拆分(1)TCP面向连接,UDP面向非连接
(2)TCP可靠,UDP不可靠 (3)TCP有序(到达不一定有序,但最后会排序),UDP无序 (4) TCP速度慢,UDP速度快,UDP适合在线网络 (5)量级,TCP报文头是20字节,而UCP是8字节RTT:发送数据包和收到对应ACK包所需时间
RTO:重传时间间隔滑动窗口协议:
滑动窗口协议,是TCP使用的一种流量控制方法。该协议允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。 TCP 使用滑动窗口做流量控制与乱序重排 发送方来看数据分为四类 1.得到服务器确认且已经发送的 2.还没得到服务器确认但已经发送的 3.未发送但服务器允许发送的 4.未发送且因为达到了 window 的大小不允许发送的数据 [2-3]就是发送方的滑动窗口 滑动窗口在被连续确认后才进行滑动 当 ACK 连续被确认,比如32-36连续确认4为后才开始把分类2的数据发送,同时扩大分类3向右的范围 接收方缓存内三种状态 1.已接收并且已经发送 ACK 回执的数据 2.未接收但可以接收状态 - 接收窗口 滑动方式一致 3.未接收且不能接收的状态 - 达到窗口阈值 ACK 直接由 TCP 回复,默认没有应用延迟,不存在已接收未回复 ACK 的状态 [2]就是接收窗口如果A发送的过程中出现差错,B在接收M1时检测出了差错,就丢弃M1,其他什么都不做(也不会通知A收到有差错的分组)。又或者A传送的过程中分组丢失了,以上这两种情况下,B不会发送任何信息。
既然说它是可靠传输协议,那自然有它可靠的方法:如果发生以上的情况,A只要超过了一段时间仍然没有收到确认,就认为刚才发送的分组丢失了,所以它会重传刚刚的发送过的分组,也就是所谓的超时重传。 超时重传的原理也很简单:发送方发送完一个分组后,就会设置一个超时计时器,如果超时计时器到期之前没有收到接收方发来的确认信息,则会重发刚发送过的分组;如果收到确认信息,则撤销该超时计时器。如果A发送了M1分组,到达B,B发送了M1确认信息,但由于网络原因,该确认信息丢失。那么这个时候,A在超时重传时间内,没有收到B的确认信息,而且它并不知道是自己的分组有差错、丢失,还是B发生的确认丢失了。因此,A会在超时重传过后,重传M1分组。
接收方B会采取这两个行动:
①B会丢弃M1分组,不向上层交付。(B之前已经收到过M1分组了)
②向A发送确认(因为A重发了,肯定重传时间内没有收到确认信息)
转载地址:http://agqen.baihongyu.com/