面向连接的运输:TCP
on Learning
面向连接的运输:TCP
3.5.1 TCP连接
TCP连接是面向连接的,因为一个应用进程可以开始向另一个应用进程发送数据之前,这两个进程必须先相互“握手”。(相互发送某些预备报文段,以建立确保数据传输的参数)
全双工服务 : A和B之间如果存在一条TCP连接,则应用层数据从A流向B的同时,就有数据从B流向A
点对点: 单个发送只能有一个接收方
MSS:最大报文长度(Maximum Segment Size)
3.5.2 TCP报文段结构
序号和确认号
3.5.3 往返时间的估计与超时
估计往返时间(RTT):一旦获得一个新的SampleRTT时,TCP就会根据\(EstimatedRTT = (1-\alpha)EstimatedRTT + \alpha SampleRTT \nonumber\) 重新计算估计往返时间。
设置和管理重传超时间隔:DevRTT为RTT的偏差,用于估算SampleRTT一般会偏离EstimatedRTT的程度,根据$$DevRTT = (1-\beta)DevRTT + \beta | SampleRTT - EstimatedRTT | \nonumber$$ |
重传间隔应该大于或等于EstimatedRTT,否则会造成不必要的重传。但是设置过大当数据丢失时不能及时重传。计算公式为\(TimeoutInterval = EstimatedRTT + 4*DevRTT \nonumber\)
3.5.4 可靠数据传输
超时间隔加倍:定时器时限过期后超时间隔的长度,会在每次重传后设置为之前的两倍
3.5.5流量控制
流量控制服务:以消除发送的方式降低接收方缓存溢出的可能性。流量控制因此是一个速度匹配服务,即发送方的发送速率与接收方应用程序的读取速率相匹配。
拥塞控制:因为IP网络的拥塞而被遏制的解决办法
接收窗口(rwnd):用于给发送方一个指示,该接收方还有多少可用的缓存空间
拥塞窗口(cwnd): 一个发送方中未被确认的数据不能超过min{cwnd, rwnd}
3.6 拥塞控制原理
3.6.1 拥塞原因与代价
3.6.2 拥塞控制方法
端到端拥塞控制:对网络层进行观察推测
网络辅助的拥塞控制:不能实现,因为IP层不能向端系统提供显式的网络拥塞反馈
慢启动:cwnd的值通常初始设置为一个MSS的较小值