目录
用户数据报协议UDP
UDP只在IP数据报服务之上增加了很少的功能,即分用复用和差错检测功能。
UDP的主要特点:
UDP是面向无连接的,减少开销和发送数据之间的时延。
UDP使用最大努力交付,即不保证可靠交付。
UDP是面向报文的适合一次性传输少量数据的网络应用。
UDP无拥塞控制适合很多实时应用。
UDP首部开销小,只有8字节,而TCP有20字节。
UDP数据报的结构
伪首部
伪首部只在计算校验和的时候才出现,不向下传送也不向上递交。
UDP校验
在发送端
- 填上伪首部
- 全0填充校验和字段
- 全0填充数据部分(填充至4B的整数倍)
- 伪首部+首部+数据部分采用二进制反码求和
- 把反码和填入校验字段
- 去首部发送
在接收端
- 填上伪首部
- 伪首部+首部+数据部分采用二进制反码求和
- 结果全为1则无错,否则丢弃数据报/交给应用层附上出差错的警告。
TCP协议
TCP协议的特点
- TCP是面向连接的传输层协议。
- 每一条TCP连接都只有两个端点,每条TCP连接都只能是点对点的。
- TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。
- TCP提供全双工通信。
- TCP面向字节流。
TCP报文段的首部格式
TCP连接的建立
TCP连接的释放
TCP的可靠传输
传输层使用TCP实现可靠传输,网络层提供尽最大努力交付,也就是不可靠传输。
可靠是指保证接收方进城从缓存中读出的字节流与发送方发出的字节流是完全一样的。
TCP实现可靠传输的机制
校验
与UDP校验一样,增加伪首部。
序号
序号字段是指一个报文段第一个字节的序号。
确认
通过序列号进行确认。
重传
规定时间内没有收到确认则重传。TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)。
TCP流量控制
TCP利用滑动窗口机制实现流量控制。
在通信过程中,接受方根据自己接受缓存得大小,动态的调整发送方发送窗口的大小,即接受窗口的rwnd(接受方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方取接受窗口rwnd和拥塞窗口cwnd的最小值。
TCP拥塞控制
出现拥塞的条件
对资源的需求总和大于可用资源
网络中有许多资源同时呈现出供应不足->网络性能变坏->网络吞吐量将随输入的负荷增大而下降。
拥塞控制的目的
防止过多的数据注入到网络中。
拥塞控制与流量控制的比较
拥塞控制是一个全局性问题,而流量控制是一个点对点的问题。
接收窗口与拥塞窗口
接收窗口:接收方根据接收缓存设置的值,并告知给发送方,反应接收方的容量。
拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反应网络当前容量。
讨论拥塞控制的前提假设
1.数据单方向传送,而另一个方向只传送确认。
2.接受方总是有足够大的缓存空间,因而发送窗口大小取决于拥塞程度。
拥塞控制的四种方法
满开始和拥塞避免
传输轮次
- 发送了一批报文段,并收到他们的确认的时间。
- 一个往返时间RTT。
- 开始发送一批拥塞窗口内的报文段到开始发送下一批窗口内的报文段的时间。
ssthresh:满开始轮限
快重传和快恢复