当前课程知识点:计算机网络 > 第五章 运输层 > 5.1 用户数据报协议UDP > 用户数据报协议UDP
了解了运输层中进程之间的通信
和端口等重要概念后
今天我将讲解用户数据报协议
用户数据报协议UDP
是位于传输层
是IP上层的一个重要协议
它是无连接的
不可靠的数据传输协议
下面介绍UDP的主要特点
一.UDP的主要特点
(1)UDP是无连接的
发送数据之前不需要建立连接
因此减少了开销
和发送数据之前的时延
(2)UDP使用尽最大努力交付
即不保证可靠交付
因此主机不需要维持
复杂的连接状态表
(3)UDP没有拥塞控制
因此网络出现的拥塞
不会使源主机的发送速率降低
这对某些实时应用是很重要的
很适合多媒体通信的要求
(4)UDP支持一对一
一对多、多对一
和多对多的交互通信
(5)UDP的首部开销小
只有8个字节
比TCP的20个字节的首部要短
(6)UDP是面向报文的
UDP对应用层交下来的报文
既不合并也不拆分
而是保留这些报文的边界
UDP一次交付一个完整的报文
面向报文的含义
1.发送方UDP对应用程序
交下来的报文
在添加首部后就向下交付IP层
UDP对应用层交下来的报文
既不合并也不拆分
而是保留这些报文的边界
2.应用层交给UDP多长的报文
UDP就照样发送
即一次发送一个报文
3.接收方UDP
对IP层交上来的UDP用户数据报
在去除首部后就原封不动地
交付上层的应用进程
一次交付一个完整的报文
4.应用程序必须选择合适大小的报文
(1)若报文太长
UDP把它交给IP层后
IP层在传送时可能要进行分片
这会降低IP层的效率
(2)若报文太短
UDP把它交给IP层后
会使IP数据报的首部的相对长度太大
这也降低了IP层的效率
二.UDP首部格式
用户数据报UDP有两个字段
数据字段和首部字段
首部字段很简单
只有8个字节
UDP报头由4个域组成
其中每个域各占用2个字节
具体如下
1、源端口号
2、目标端口号
3、 数据报长度
4、检验值
UDP协议使用端口号为不同的应用
保留其各自的数据传输通道
数据发送一方
将UDP报文通过源端口发送出去
而数据接收一方
则通过目标端口接收数据
有的网络应用
只能使用预先为其预留或注册的静态端口
而另外一些网络应用
则可以使用未被注册的动态端口
因为UDP报头使用两个字节存放端口号
所以端口号的有效范围
从0到65535
2.数据报的长度是指
包括报头和数据部分在内的总字节数
从理论上说
包含报头在内的数据报的
最大长度为65535字节
不过
一些实际应用往往会限制数据报的大小
有时会降低到8192字节
3.UDP协议使用报头中的
校验值来保证数据的安全
校验值首先在数据发送方
通过特殊的算法计算得出
在传递到接收方之后
还需要再重新计算
如果某个数据报在传输过程中
被第三方篡改
或者由于线路噪音等原因受到损坏
发送和接收方的校验计算值将不会相符
因此UDP协议可以检测出是否出错
有错就将此UDP丢弃
三.UDP协议基本功能
UDP协议在IP的数据报服务之上
增加了两个功能
1.分用和复用的功能
2.差错检测的功能
3.1分用和复用
UDP协议中数据报收发的功能
通常基于UDP端口实现的
UDP协议
实现了基于端口的复用和分用功能
基于端口的复用和分用原理类似
只是数据报传输方向相反
当运输层从IP层收到UDP数据报时
就根据首部中的目的端口
把UDP数据报通过相应的端口
上交最后的终点
应用进程
实现UDP分用
反之
则实现UDP的复用
还有一点请注意
虽然在UDP之间的通信
要用到其端口号
但由于UDP的通信是无连接的
因此不需要使用套接字
3.2 差错检测
UDP数据报
必须提供产生和验证检验和的功能
并且把首部和数据部分一起校验
在计算检验和时
要在UDP用户数据报之前
增加12字节的伪首部
所谓“伪首部”是因为
这种伪首部并不是UDP真正的首部
只是在计算检验和时
临时把“伪首部”
和UDP用户数据报连接在一起
得到一个临时的UDP用户数据报
检验和时按照这个临时UDP来计算
UDP检验和计算方法
1.在发送方
首先把全0放入检验和字段
2.把伪首部加上UDP用户数据报
以16位为单位进行二进制求和
如果UDP用户数据
不是偶数个字节
则填入全0
此字节不发送
3.按二进制反码计算出这些16字的和
4.将此和的二进制反码写入检验和字段
并发送此UDP用户数据报
5.接收方把收到的UDP用户数据报
连同伪首部一起
按二进制反码求这些16字和的反码
无差错时其结果应为全1
否则就表明出错
接收方应抛弃此UDP用户数据报
以上是用户数据报协议UDP单元内容
-1.1 计算机网络的发展历程及其在信息时代中的作用
-1.2 互联网的组成
--互联网的组成
-1.3 电路交换和分组交换
-1.4 计算机网络的性能
--计算机网络的性能
-1.5 计算机网络体系结构和层次划分
-第一章
-2.1 数据通信系统模型
--数据通信系统模型
-2.2 导向型传输媒体
--导向型传输媒体
-2.3 光导纤维
--光导纤维
-2.4 非导向型传输媒体
--非导向型传输媒体
-2.5 信道的极限容量
--信道的极限容量
-2.6 信道复用技术
--信道复用技术
-2.7 ADSL
--ADSL
-第二章
-3.1 数据链路层的三个基本问题
-3.2 CSMA/CD协议
-3.3 虚拟局域网
--虚拟局域网
-3.4 扩展的以太网
--扩展的以太网
-3.5 高速以太网
--高速以太网
-第三章
-4.1 分类的IP地址-划分子网
-4.2 无分类编址-构造超网
-4.3 ICMP协议
--ICMP协议
-4.4 路由器结构
--路由器结构
-4.5 RIP协议
--RIP协议
-4.6 IP多播
--IP多播
-第四章
-5.1 用户数据报协议UDP
-5.2 TCP报文段首部格式
-5.3 可靠传输工作原理
--可靠传输工作原理
-5.4 字节为单位的滑动窗口实现
-第五章
-6.1 网络应用层
--网络应用层
-6.2 DNS
--DNS
-6.3 FTP
--FTP
-6.4 HTTP
--HTTP
-6.5 P2P
--P2P
-6.6 计算机网络面临的安全性威胁
-6.7 防火墙
--防火墙
--第六章
-7.1 交换机基本配置
--交换机基本配置
-7.2 路由器基本配置
--路由器基本配置
-7.3 交换机端口隔离
--交换机端口隔离
-7.4 跨交换机实现相同VLAN通信
-7.5 动态路由
--动态路由
-7.6 静态路由
--静态路由