用户数据报协议UDP
UDP的概述
特点
复用和分用
多个用户使用一个IO资源 发送消息 时,我们称之为“复用”。
多个用户使用一个IO资源 接收消息 时,我们称之为 “分用” 。
在网络层
局域网内多个主机利用一个路由网关发送消息给互联网的其他主机。这也是复用技术,利用网关接收路由数据报就叫 分用技术。
在运输层
操作系统的多个进程(这里一个端口表示一个进程)利用一个运输层协议(或者称为运输层接口)发送数据称为复用,接收时叫做 分用。
在应用层
操作系统的 多个线程 利用一个端口(或者叫socket,socket = IP+端口号 )发送消息称为复用,接收时叫分用
差错检测
无连接/传输数据之前不用先建立连接
面向报文
不可靠(尽最大努力交付)
支持一对一,一对多,多对一,多对多的交互通信
没有拥塞控制
用户数据报首部只有8个字节的开销
UDP 用户数据报是在运输层的端到端抽象的逻辑信道中传送的
报文格式
优点
实时应用
传输控制协议TCP
特点
面向连接
不提供广播或多播服务,只支持单播
首部20个字节,占用许多的处理机资源
全双工通信通道(TCP 报文段是在运输层抽象的端到端逻辑信道中传送)
面向字节流 / 流入或流出进程的字节序列
TCP 不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系。但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。
报文格式
TCP可靠传输的工作原理
注意
理想的传输条件有以下两个特点:
(1) 传输信道不产生差错。
(2) 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。
1.停止等待协议
“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
无差错情况
有差错情况
(1)检测时出错$\rightarrow$丢弃,超时重传
(2)传输过程丢失$\rightarrow$丢弃,超时重传
确认迟到
A 会收到重复的确认,但丢弃;B 仍然会收到重复的 M1,并且同样要丢弃重复的 M1,并重传确认分组。
2.连续ARQ协议
为了提高信道利用率。位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。
连续 ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
TCP可靠传输的实现
1.滑动窗口机制(以字节为单位)
2.确认机制
UDP与TCP的对比
1.UDP传输的是UDP报文或用户数据报,TCP传输的是TCP报文段
2.UDP是无连接的,TCP是面向连接的
3.UDP用户数据报首部只有8个字节的开销,TCP有二十个字节
4.UDP没有拥塞控制,TCP有拥塞控制
5.UDP不可靠传输,TCP可靠传输