运输层主要解决了应用进程之间的通信,称之为端到端协议
计算机网-------络体系结构的角度
AP:应用进程之间的简称
**UDP复用:**发送发某些应用进程发送的应用报文使用UDP进行封装
**TCP复用:**发送发某些应用进程发送的应用报文使用TCP进行封装
TCP和UDP是TCP/IP体系结构运输层中两个重要协议
UDP协议(发短信协议)
可以随时发送数据
UDP支持一对一,一对多通信
UDP是面向应用报文的(对应用报文不拆分)
UDP提供不可靠传输服务
首部开销小:8字节
TCP协议(打电话协议)
发送数据前 必须使用“三次握手”,结束后“四次挥手”
TCP仅支持一对一通信
TCP是面向字节流的(对应用报文拆分成字节形式)
TCP提供可靠传输服务
首部开销大20~60字节
前言:如果发送方发送数据过快,接收方就可能来不及接收
例:
rwnd=0可能会出现死锁情况,所以在收到rwnd=0时需要启动一个接收计时器(超时后发送窗口探测报文)
下面为下述情况举例:
拥塞:网络中某一资源的需求超过了该资源所能提供的可用部分
若出现拥塞而不进行控制,整个网络吞吐量将随着负载的增大而下降
cwnd:拥塞窗口
swnd:发送窗口
ssthresh:慢开始门限
初始拥塞窗口是1,慢开始门限是16
经过确认后cwnd每轮自加
…
…
总共折线图
有时个别报文段会在网络中丢失,但实际上网络并未发生拥塞(会降低效率)
快重传算法可以让发送方早知道个别报文段的丢失,尽快进行重传
例子解释:
综合例题:
RTO:超时重传时间
RTT:报文段往返时间
为了使用效率,RTO的值应该略大于RTT的值
加权平均往返时间算法:
RTT偏差的加权平均:
RTO算法:
tips:
如果出现超时重传,就把超时重传时间(RTO)增大一些(两倍)
TCP基于以字节为单位的滑动窗口来实现可靠传输
例:
TCP客户:TCP连接的发起者
TCP服务器:被动等待的进程
注:
同步位SYN=1时,发送的报文段不能携带数据
下一步的确认字段ACK=上一步的序号字段seq+1
如果不进行等待可能会导致服务器端无法关闭
对于连接异常的探测机制:保活计时器
一个TCP报文段由首部和数据载荷两部分组成
TCP的全部功能都体现在它首部中各字段的作用
举例
如果数据偏移值=0101,则首部为20字节
20 = ( 0101 ) 2 ∗ 4 字节 20=(0101)_2*4字节 20=(0101)2∗4字节