《TCP/IP协议族》——UDP

《TCP/IP协议族》(第三版) 第11章 用户数据报(UDP) 学习笔记

目录

1、UDP
2、运输层通常的责任
3、端口号
4、UDP长度
5、检验和
6、UDP服务
7、UDP的适用范围
8、UDP软件包


1、UDP

全称为User Datagram Protocol用户数据报协议

2、运输层通常的责任:

1)创建进程到进程的通信
2)在运输层提供控制机制
3)和接收站建立连接,把数据流分割成为可运输的单元,标号并逐个发送

3、端口号

1)熟知端口:0~1023,由ICANN指派和控制
2)注册端口:1024~49151,可在IANA注册以防重复
3)动态端口:49152~65535,不指派或注册

短暂端口号:CS模型中,客户生存时间较短,一般端口号取1023~65535

UNIX中,熟知端口存储在/etc/services中,可通过命令$grep ftp /etc/services查看。

4、UDP长度

1)长度字段为16位,可定义范围0~65535字节。总长度要小于65535字节,因为UDP用户数据报要放在IP数据报中,IP数据报最大长度为65535字节。
2)UDP长度字段可通过IP总长度-IP首部长度计算得到,但UDP协议设计者认为设计这一字段更好。IP软件将UDP用户数据报交付给UDP层时,已剥去IP首部。

5、检验和

1)检验和计算要加入伪首部,形式与IP首部后12字节相似,其中某些字段要全填0。伪首部包括源IP地址、目的IP地址、协议字段、UDP总长度。
2)加入伪首部是为了避免IP首部错误,用户数据报被交付至错误主机。
3)伪首部中各行顺序对计算检验和没有影响。
4)检验和可选,不计算检验和则检验和字段填0。计算出的检验和永远不会是全0,因为在反码算术运算中求和结果不可能全为1(?)。

6、UDP服务

1)无连接服务
使用UDP的进程不能向UDP发送数据流,因为UDP并不能将数据流分割为多个用户数据报。
相反,每一请求必须足够小,能够装入到一个用户数据报中。

2)缺少差错控制和流量控制
这意味着使用UDP的进程必须提供这些机制。

3)拆装和封装
封装时,进程、UDP和IP之间除了传递数据还要传递一对套接字地址。
拆装时,IP向UDP传递用户数据报与IP目的、源地址,UDP向接收进程传递应用数据和套接字地址。

4)排队

A.客户端
进程启动时,其从操作系统请求得到一个端口号。
每个进程有一个入队列。
每个进程有一个出队列,或者没有出队列(?)。
进程终止时,队列被撤销。
出队列溢出时,操作系统要求客户进程在继续发送报文之前要等待。
入队列溢出时,UDP丢弃用户数据报,并请求向服务端发送端口不可达报文。

B.服务器端
最简单的形式是,服务器开始运行时就用熟知端口创建入队列和出队列。只要服务器在运行,队列就一直打开。

7、UDP的适用范围

1)适用于需要简单的请求-响应通信较少考虑流量控制和差错控制的进程。
2)适用于具有内部流量控制和差错控制的进程,如简单文件传送协议TFTP
3)多播和广播内嵌在UDP软件中,但没有在TCP软件中。
4)可用于管理进程,如SNMP
5)可用于某些路由选择更新协议,如RIP.
6)不适用于需要传送成块数据的进程,如FTP。

8、UDP软件包

1)简化的UDP软件包包括5个构件:

  • 一个控制块列表
  • 若干个输入队列
  • 一个控制块模块
  • 一个输入模块

2)控制模块负责管理控制块表。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值