UDP
UDP是一个简单的面向数据报的运输层协议:进程的每一个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。
UDP数据报分装成一份IP数据报的格式如图
UDP不提供可靠性:他把应用程序传给的IP层的数据发送出去,但是并不保证他们能够到达目的地。
IP数据报的最大长度是65535字节,这是由IP首部(图3-1)16比特总长度字段所限制的。去除20字节的IP首部和8个字节的UDP首部,UDP数据报中用户数据的最长长度为65507字节。但是,大多数实现所提供的长度比这个最大值小。
我们将遇到两个限制因素。第一,应用程序可能会受到其程序接口的限制。socket API提供了一个可供应用程序调用的函数,以设置接收和发送缓存的长度。对于UDP socket,这个长度与应用程序可以读写的最大UDP数据报的长度直接相关。现在的大部分系统都默认提供了可读写大于8192字节的UDP数据报(使用这个默认值是因为8192是NFS读写用户数据数的默认值)
第二个限制来自于TCP/IP的内核实现。可能存在一些实现特性(或差错),使IP数据报长度小于65535字节
广播和多播
三种IP地址:单播地址,广播地址和多播地址。
广播和多播仅适用于UDP,他们对需将报文同时传往多个接收者的应用来说是十分重要的。
广播分类:
(1)受限的广播
(2)指向网络的广播
(3)指向子网的广播
(4)指向所有子网的广播
多播提供两类服务
(1)向多个地址发送数据。有许多向多个接收者传送消息的应用:例如交互式会议系统和想多个接受者分发邮件或者是新闻。如果不采用多播,目前这些应用大多是采用TCP完成。然而即使是使用多播,某些应用可能是采用TCP来保证它的可靠性。
(2)客户对服务器的请求。例如无盘工作站需要确定启动引导服务器。