[关闭]
@demonly 2017-05-21T02:26:48.000000Z 字数 2748 阅读 1085

传输层

计算机网络


用户数据报协议 UDP

image_1bgdsece5v6r1n861arqv85cn9.png-163.5kB

传输控制协议 TCP

特点

image_1bgif7jo3fig1p1b90cve1jhf9.png-166.8kB

可靠传输

停止等待协议

每发送完一个分组就停止发送,等待对方的确认,收到确认后再发送下一个分组。
接收方检测到分组出现了差错直接丢弃分组,什么都不做。
发送方对每一个发送的分组设置了超时计时器,超过时间没有收到确认就重传。
接收方收到重复的分组也要发送确认。
为了提高传输效率,可以采用流水线传输的方式,发送方可以连续发送多个分组。

连续 ARQ 协议

发送方需要维持一个发送窗口,发送方每接收到一个确认就把发送窗口向前滑动一个分组的位置。
接收方采用累计确认的方式,仅对按序到达的最后一个分组发送确认。
接收方可以在发送数据的时候将确认信息捎带上。

超时重传时间的选择

TCP 采用自适应算法,每一个报文段都会测量报文段的往返时间 RTT。当第一次测量时就将 RTTS 值设为这个 RTT 样本值,之后每一次测量到新的 RTT 样本都按照下式重新计算 RTTS

标准建议 α 值为 0.125
超时重传的算法为

当发生重传时难以确定收到的确认是重传前还是重传后的确认,因此对于重传的确认不使用以上算法,而是取新的重传时间为旧的重传时间的 2 倍。

选择确认 SACK

当接收方收到不连续的数据块时可以仅对其中部分数据块发送确认,在确认中指出接收到的数据块的左右边界,左边界为第一个字节的序号,右边界为最后一个字节的序号减 1。

TCP 的流量控制

接收方在窗口字段可以对发送方的发送窗口大小进行限制。为了避免死锁,TCP 为每一个连接设有一个持续计时器,只要一方收到了零窗口通知,就启动持续计时器,当时间到期时就发送一个零窗口探测报文段,对方在发回的确认中给出现在的窗口值。

TCP 的拥塞控制

发送方维持一个叫拥塞窗口 cwnd 的状态变量,发送方的发送窗口不能够大于拥塞窗口。为了防止拥塞窗口变得过大,还需要设置一个慢开始门限 ssthresh。

image_1bgj33qgc10f322h1n4910cl1a5h9.png-114.3kB

主动队列管理 AQM

旧的 AQM 为随机早期检测 RED,路由器需要维持两个参数,最小门限和最大门限。目前还没有标准的方法能够替代 AQM。

TCP 的运输连接管理

TCP 建立连接需要经过三次握手。

TCP 释放连接需要经过四次分手

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注