发送方
- 对一个ack应等待多长时间?
接收方
-
接收到的分组有错误
A:不回复ack,等待发送方重传 -
收到重复的分组
A:使用序列号处理,序列号相同的,则丢弃。 -
接收速率小于发送速率
A:流量控制,可分为两种 -
基于速率的流量控制——设定一个最大速率,发送方不能超过这个速率。
-
基于窗口大小的流量控制——在回复的ack中告诉发送方改变窗口大小。
中间设备
- 由于路由器转发能力不足,内存限制等因素,导致无法承受发送方的快速发送速率怎么办
A:拥塞控制,可分为两种 - 明确发信:一个协议字段用来告诉发送方(ECN位)
- 隐性发信:根据其他因素某些因素来判断。
1.窗口机制
-
分组窗口:作为接收发送方发送的但还没完成确认的分组的集合。其中,分组的最大数量就是窗口大小。
-
滑动窗口
- 发送方:用于记录哪些分组可以被释放,哪些分组已经发送,正在等待ack,哪些分组还不能被发送
- 接收方:哪些分组已经被接收和确认(无误),哪些分组是期望收到的(以及分配了多少内存给他们),哪些分组即使被接收了也会因为内存限制而丢弃。
-
窗口缩放选项:比例系数0表示没有放大(即窗口大小原来的值),最大为14,能够将窗口大小放大214倍,所以TCP窗口最大为65535x214,正好1GB。所以TCP使用一个32位的值来维护真实的窗口大小。
- 该选项只能出现在SYN报文中,建立连接之后,比例系数与方向绑定。
- 比例系数(因子)是多少,读窗口大小的时候就左移多少位。
2.超时重传
超时应该要设置为比RTT平均值要大的某个值,若设置太小,则可能会发送很多重传包,占用带宽,若设置太大,使得网络变空闲,从而降低吞吐量。
网友评论