《TCP/IP协议详解》第十一章 UDP:用户数据报协议

引言

  1. UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。TCP是面向流字符的协议,应用程序产生的全体数据与真正发送的单个IP数据报没什么联系
  2. UDP不保证可靠性
  3. 应用程序必须关心IP数据报的长度。如果它超过网络的MTU,那么就要对IP数据报进行分片

UDP首部


  1. 端口号表示发送进程和接受进程
  2. TCP和UDP用目的端口号来分用来自IP层的数据。TCP和UDP的端口号是相互独立的
  3. UDP检验和覆盖UDP首部和UDP数据,而IP首部的校验和只覆盖IP首部,并不覆盖IP数据报中的任何数据,而且检测不出同时发生的两个16bit差错
  4. 统计表明TCP发生校验和差错的比例比UDP相比高很多,因为通常TCP是远程连接,而UDP一般为本地通信
  5. UDP,TCP都是简单的校验和,不可能测出所有可能发生的差错
  6. UDP首部是8个字节,TCP是20个字节

IP分片

  1. 任何时候I P层接收到一份要发送的I P数据报时,它要判断向本地哪个接口发送数据(选路),并查询该接口获得其M T U。I P把M T U与数据报长度进行比较,如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发生在中间路由器上。
  2. 重新组装发生在目的地,而不是下一站
  3. IP首部包含了为分片与数据组装的足够信息
  4. 数据报到达目的端可能失序
  5. IP分片的缺点:丢失一片数据就要重传整个数据包,IP层没有重传的机制---由更高层TCP负责重传
  6. UDP容易导致分片,TCP避免分片
  7. 端口号在UDP首部,只能在第一片中被发现,任何传输层的首部只会在第一片中出现
  8. IP数据报指的是IP层端到端的传输单元,分组是指IP层和链路层之间的传输数据单元。

ICMP不可到达差错

  1. 发生ICMP不可达差错的另一种情况是,当路由器收到一份需要分片的数据报,而在I P首部又设置了不分片( D F)的标志比特。
  2. 如果某个程序需要判断到达目的端的路途中最小M T U是多少—称作路径M T U发现机制,那么这个差错就可以被该程序使用。

利用UDP来发现MTU


UDP与ARP之间的相互交互

  1. 在arp缓存为空的时候,将数据报发送,快速分片,从结果得知,每个分片都会发送ARP请求,在等待ARP应答的时候,只将最后一个报文发送给特定目的的主机,这就是ARP泛洪现象,需要避免
  2. 在第一个数据报到达目的地后,IP层必须启动定时器,若在规定时间内该数据报的所有分片未到达,那么这些数据报丢弃

最大UDP数据报长度

  1. 理论上,IP数据报最大长度是65535字节,去除20字节的IP首部和8字节的UDP首部,UDP数据报中用户数据的最长长度为65507字节
  2. 限制因素:a.应用程序可能受到程序接口的限制  b.第二个限制来自于TCP/IP内核实现
  3. UDP编程接口规定程序每次返回最大字节数,如果接收到的数据报长度大于应用程序能处理的长度,就取决于编程接口的实现,决定是否丢弃多余的数据
  4. TCP:为应用程序提供连续字节流,而没有边界信息。这样数据不会丢失。

ICMP源站抑制(挺新的概念

  1. 当一个系统(路由器或主机)接受数据报的速度比其处理的速度快时,可能产生差错,为此需要ICMP源站抑制
  2. 有时发送源站抑制报文没用,因为导致其的进程已经终止。
  3. UDP是非可靠的协议,它只管发送,并不管是否将报发送到目的端

UDP服务器设计(关心协议上面的特性)

  1. 客户IP地址及端口号
  2. 目的IP地址
  3. UDP输入队列,缓存,服务器上的应用程序并不知道输入队列何时溢出,不发任何信息高速客户其数据报被丢弃。
  4. 限制本地的IP地址
  5. 限制远端的IP地址
  6. 每个端口有多个接收者

附录

  1. UDP在发送第一份数据报的时候,发送端和接收端之间没有任何通信,当对方收到数据,也没有任何确认。而TCP在发送数据的第一个字节的时候,必须建立连接
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值