TCP_IP协议详解学习笔记_卷1_第11章_UDP协议

==> UDP首部(略)


==> 需要明确的几个术语:

  1、IP数据报 — 是指IP层端到端的传输单元(在分片之前和重新组装之后);

  2、IP分组 — 是指在IP层和链路层之间传送的数据单元。一个分组可以是一个完整的IP数据报,也可以是IP数据报的一个分片。


==> 用ICMP不可达差错(需要分片)来发现路径MTU:

  在IP首部设置不分片标志比特(DF),当增大分组的数据长度时,一旦中间的某个路由器需要将该数据报进行分组才能继续发送,就会出现这个差错。首先出现差错时的分组长度即是路径MTU。


==> 用traceroute来发现路径MTU:

  修改traceroute程序:发送分组,设置"不分片"标志比特,发送的第一个分组长度正好与出口MTU相等,每次收到ICMP不能分片差错时就减小分组的长度,如果返回的ICMP报文是新格式,则用其中包含的MTU值发送,否则尝试用下一个最小的MTU值发送。


==> UDP对中间连路的MTU来说过长产生的一系列作用:

  先在源主机尝试进行分片,如果不行,再把DF置0,但是每隔一定时间又会将DF置1看看MTU是否增大了。


==> UDP和ARP之间的相互作用:

  如果发生分片且ARP缓存被清空,那么第一个分片到达可能会超时造成组装超时从而使UDP被丢弃,因为每个分片发送之前要先发送ARP请求,而目的段处理ARP请求的队列是后进先出的。


==> ICMP源站抑制差错:

    当系统的接收速度比处理速度快时(如某个中间路由器由于下一连路的速度慢而导致缓存被塞满),可能发生此差错。


==> 设计UDP服务器:

  * UDP服务器一般是交互式服务器,即某个UDP端口的所有客户请求只由单个服务器进程来进行处理;
  * 通常一个UDP端口对应一个有限大小的输入队列;
  * 输入队列是先进先出的;
  * 来自客户端的UDP数据报:IP首部包含了源和目的段的IP地址,UDP首部包含了源和目的端的端口号;
  * 可以对UDP服务器的本地IP地址和远程(客户端)IP地址进行限制;
  *  某些服务器可以使同一IP地址和端口上有多个接收者(程序端点)。   

阅读更多
文章标签: tcp 服务器 路由器
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭