`
evasiu
  • 浏览: 165812 次
  • 性别: Icon_minigender_2
  • 来自: 广州
博客专栏
Fa47b089-e026-399c-b770-017349f619d5
TCP/IP详解卷一>阅读...
浏览量:12279
社区版块
存档分类
最新评论

<tcp/ip详解卷一>阅读笔记(3)——IP层的分用(UDP和IGMP)

 
阅读更多

这一次将总结IP层的分用中的UDP与IGMP。UDP是一个简单的面向数据报的运输层协议,它提供不可靠服务:它把应用程序的数据加上UDP头部之后就传递给IP层发送出去,但是并不能保证它们能到达目的地。应用程序必须关心IP数据报的长度,如果它超过网络的MTU,那么就要对IP数据报进行分片。如果需要,源端到目的端之间的每个网络都要进行分片,并不只是发送端主机连接第一个网络才这样做。IGMP是一种支持主机和路由器进行多播的Internet组管理协议。广播和多播只能应用于UDP,所以我在这里把UDP和IGMP放在一起总结了,书中也是这样的顺序,呵呵。

 

1. UDP:用户数据报协议

下图是UDP首部的格式:
 

端口号表示发送进程和接收进程。UDP长度字段指的是UDP首部和UDP数据的字节长度,该值等于IP数据报总部中的IP数据报长度减去TCP首部的长度。UDP检验和(可选)覆盖UDP首部和UDP数据,计算方法跟我们前面提到的IP首部检验和的计算方法一致。如果遇到UDP数据为奇数字节,则填充一字节的0. 计算时,还将在UDP首部前加上UDP伪首部,目的是让UDP两次检查数据是否已经正确到达目的地。下图是伪首部和字节填充的示意图:

我们提到过网络的MTU,也提到过IP数据报首部中的MF和DF位以及13位偏移位,当UDP数据报的长度超过网络的MTU时,必须对其进行分片。如果设置了DF位但是通过某个网络时需要分片,将会产生ICMP“不可达(需要分片)”的差错报文,我在前面的ICMP部分居然写着写着就把它给忘了。新一些的路由器都允许在ICMP首部8个字节的每7~8字节(那里被要求设置成0)中返回自己的MTU。分片需要注意的是:(1)在分片时,除最后一片外,其他每一片中的数据部分(除IP首部外的其余部分)必须是8整数倍(这是为什么呢?后面的习题也有瓿,我目前还不知道。。。);(2)运输层首部只出现在第一片中。UDP比较简陋,所有包丢失、重传问题都必须由上层应用程序来管理。

 

2. 互联网的地址、广播、多播

互联网地址有5类,格式如下:

 有三类地址:单播地址,多播地址和广播地址。主机号为全0代表网络号,主机号为全1代表在该网络的广播。有四种广播地址:

一是受限的广播地址255.255.255.255.该地址用于主机配置过程中IP数据报的目的地址,在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样数据报仅出现在地址网络中。

二是指向网络的广播地址,主机号为全1.如A类广播地址为netid.255.255.255,一个路由器必须转发指向网络的广播。

三是指向子网的广播。指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码,例如,如果路由器收到发往128.1.2.255的数据报,当B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码为255.255.254.0,该地址就不是指向子网的广播地址。

四是指向所有子网的广播。指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开来,指向所有子网的广播地址的子网号和主机号全为1.例如,如果目的子网掩码为255.255.255.0,那么IP地址128.1.255.255就是一个指向所有子网的广播地址,然而,如果网络没有划分子网,这就是一个指向网络的广播。

广播给网络中的主机产生了很多负担,广播的数据报要直到UDP层才被确定是否为主机所需要(没有监听的端口)然后才会被丢弃。多播是介于单播与广播之间的一种方式。

能够接收发往一个特定多播组地址数据的主机集合称为主机组。一个主机组可以跨越多个网络,主机组中成员可以随时加入或离开主机组。主机组中对主机的数量没有限制,同时不属于某一主机组的主机可以向该组发送信息。

下图是多播组地址到以太网地址的转换:

 之所以是23位映射,听说是发明组播的那个人(当时还是个博士)的导师只肯给他买半个A类地址做实验,所以就只映射了23位。这是我在某次网络课的时候迷迷糊糊听到的,嘿嘿。

 

3. IGMP协议

多播路由器使用IGMP报文来记录与该路由器相连网络中组成员的变化情况,其报文格式如下:



 

规则如下:

(1)当第一个进程加入一个组时,主机发送一个IGMP报告,如果有多个进程加入同一个组,只需发送一个报告;

(2)进程离开一个组时,不需要发送任何报告;后期路由器发送IGMP查询时,不再发送报告;

(3)多播路由器定时发送(向每个接口)IGMP查询来了解是否还有任何主机包含有属于多播组的进程,此时IGMP查询报文中的组播地址被设置为0.

(4)主机通过发送IGMP报告来响应一个IGMP查询,对每个至少还包含一个进程的组均要发回IGMP报文。

我记得上网络课时还提到过多种算法来减少网络中的流量,包含剪枝、抑制之类的。总之,一个核心思想是,多播路由器并不关心有多少主机属于一个多播组,它只是想知道给定接口上的多播组是否还有人对这个多播组感兴趣。

 

 

  • 大小: 17.2 KB
  • 大小: 26.5 KB
  • 大小: 26.8 KB
  • 大小: 21.3 KB
  • 大小: 13.7 KB
分享到:
评论

相关推荐

    《TCP/IP详解,卷1:协议》

    第3章 IP:网际协议 24 第4章 ARP:地址解析协议 38 第5章 RARP:逆地址解析协议 47 第6章 ICMP:Internet控制报文协议 50 第7章 Ping程序 61 第8章 Traceroute程序 71 第9章 IP选路 83 第10章 动态选路协议 95 第11...

    TCP/IP详解 卷1完整版

    非扫描版TCP/IP详解卷一,你值得拥有: 《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序...

    TCP/IP详解(卷一)

    本书是网络构建原型——4.4BSD的建造者的倾力之作,《TCP/IP解析》中的第1卷,主要讲述TCP/IP协议方面的内容。与其他的TCP/IP书藉的最大不同在于,本书不仅仅讲述了RFCS的标准协议,而且结合大量实例讲述了TCP/IP...

    tcp/ip详解卷一:协议

    tcp/ip详解卷一:协议 目 录 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 ...

    TCP/IP协议详解卷二:实现

    《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和...

    TCP_IP协议详解卷一

    14.8 用UDP还是用TCP 156 14.9 另一个例子 156 14.10 小结 157 第15章 TFTP:简单文件传送协议 159 15.1 引言 159 15.2 协议 159 15.3 一个例子 160 15.4 安全性 161 15.5 小结 162 第16章 BOOTP: 引导程序协议 163 ...

    TCP/IP详解 卷1:协议--源代码

    国际知名的Unix和网络专家,《TCP/IP 详解》(三卷本)作者 W.Richard Stevens(1951-1999),是国际知名的Unix和网络专家;受人尊敬的计算机图书作家;同时他还是广受欢迎的 教师和顾问。Stevens先生1951年生于...

    TCPIP详解--共三卷

    TCP/IP详解 卷1:协议 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 ...

    (TCP-IP详解卷1:协议.pdf

    14.8 用UDP还是用TCP 156 14.9 另一个例子 156 14.10 小结 157 第15章 TFTP:简单文件传送协议 159 15.1 引言 159 15.2 协议 159 15.3 一个例子 160 15.4 安全性 161 15.5 小结 162 第16章 BOOTP: 引导程序协议 163 ...

    TCP/IP详解卷1:协议

    14.8 用UDP还是用TCP 156 14.9 另一个例子 156 14.10 小结 157 第15章 TFTP:简单文件传送协议 159 15.1 引言 159 15.2 协议 159 15.3 一个例子 160 15.4 安全性 161 15.5 小结 162 第16章 BOOTP: 引导程序协议 163 ...

    TCP-IP详解卷1:协议

    用户数据报协议 107&lt;br&gt;11.1 引言 107&lt;br&gt;11.2 UDP首部 107&lt;br&gt;11.3 UDP...分片) 113&lt;br&gt;11.7 用Traceroute确定路径MTU 114&lt;br&gt;11.8 采用UDP的路径MTU发现 116&lt;br&gt;11.9 UDP和ARP之间的交互作用 118&lt;br&gt;11.10 最大UDP...

    TCP/IP详解卷 pdf格式

    14.8 用UDP还是用TCP 156 14.9 另一个例子 156 14.10 小结 157 第15章 TFTP:简单文件传送协议 159 15.1 引言 159 15.2 协议 159 15.3 一个例子 160 15.4 安全性 161 15.5 小结 162 第16章 BOOTP: 引导程序协议 163 ...

    TCP-IP详解卷一 协议(高清书签版)

    作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 本书适合作为计算机专业学生学习网络的教材和教师参考书。也...

    tcp/ip详解

    Comer的《用TCP/IP进行网际互连》,而另一部就是Stevens写的这3卷书。这两套巨著都很有名,各有其特点。无论是从事计算机网络的教师还是进行科研的技术人员,这两套书都应当是必读的。 《TCP/IP详解,卷1:协议》是...

    TCP-IP详解卷一:协议

    TCP-IP详解卷一:协议 目 录 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程...

    TCP-IP详解卷一:协议

    《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输...

    TCP/IP协议详解

    TCP/IP详解 1 概述 1.1 引言 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但TCP/IP协议组件允许它们互相进行通信。这一点很让人感到吃惊,因为它的作用已远远超出了起初的设想。TCP/IP...

Global site tag (gtag.js) - Google Analytics