2010-5-13 1
计算机网络
Computer Networks
第八讲 TCP/IP协议(二)
—— ICMP,ARP,RARP
2010-5-13 2
网络互联层协议
? IP协议
? ICMP协议
? ARP和 RARP协议
2010-5-13 3
互联网络控制协议
? 除了传输数据的 IP协议外,互联网络用于网
络层控制的协议包括:
1,ICMP:互联网络控制消息协议 (Internet Control
Message Protocol)
2,ARP:地址解析协议 (Address Resolution
Protocol)
3,RARP:逆向地址解析协议 (Reverse Address
Resolution Protocol)
2010-5-13 4
ICMP
应用层
传输层
网络互联层
网络接口层
物理层
目的不可达
回声 (Ping)
其它
ICMP
ICMP消息被封装在 IP数据报里,用来发送错误
和控制消息
2010-5-13 5
ICMP
? ICMP是一种差错报告机制,它将路由器和
目标主机遇到的差错报告给源主机
? ICMP提供以下服务:
1,测试主机的可达性和状态
2,报告不可达目的主机给源主机
3,数据报流量控制
4,路由改变请求
5,获取网络地址及子网掩码
2010-5-13 6
ICMP
? 与 IP数据报一样,ICMP也是不可靠传输,但 ICMP
的传输问题不能再使用 ICMP传达
? 对于被划分为的 IP分组,只有偏置为 0的分组段才能
使用 ICMP
? ICMP报文是在 IP数据报内部被传输的,如图所示
IP首部 ICMP报文
20字节
IP数据报
ICMP封装在 IP数据报内部
2010-5-13 7
ICMP
? 所有报文的前 4 个字节都是一样的
? 类型字段可以有 15个不同值,以描述特定类型的
ICMP报文
ICMP报文
1字节 1字节 2字节
类型 代码 检验和
根据类型域的不同而变化
(数据信息根据类型而定 )
2010-5-13 8
ICMP举例
发送给 Z
发送数据到 Z
数据网络
2010-5-13 9
ICMP举例
发送给 Z
发送数据到 Z
数据网络
我不知道怎
样到达 Z!
发送 ICMP
2010-5-13 10
ICMP举例
发送给 Z
发送数据到 Z
数据网络
我不知道怎
样到达 Z!
发送 ICMP
目的地不可达
2010-5-13 11
ICMP举例 — ping
ICMP回声请求
B可以到达吗?
可以,我在
这里
ICMP回声应答
A B
2010-5-13 12
网络互联层协议
? IP协议
? ICMP协议
? ARP和 RARP协议
2010-5-13 13
ARP和 RARP
? ARP为 IP地址到对应的硬件地址之间提供动态映射。
这个过程是自动完成的
? RARP是被那些没有磁盘驱动器的系统使用 (一般是无
盘工作站 ),它需要系统管理员进行手工设置
32位 Internet地址
48位以太网地址
主机名
TCP/IP网际寻址
ARP RARP
DNS
2010-5-13 14
ARP
? ARP发送一份称作 ARP 请求的以太网数据帧给以太
网上的每个主机,这个过程称作广播。 ARP 请求数
据帧中包含目的主机的 I P 地址,其意思是“如果你
是这个 IP 地址的拥有者,请回答你的硬件地址。”
? 目的主机的 ARP 层收到这份广播报文后,识别出这
是发送端在寻问它的 IP 地址,于是发送一个 ARP应
答。这个 ARP 应答包含 IP 地址及对应的硬件地址
? 使用 ARP的优点
? 不必预先知道主机或路由器的物理地址就能发送数据
? 动态反映物理地址和 IP地址的变化
2010-5-13 15
ARP
? 网络上的每台计算机都维护一个 ARP表
物理地址 IP地址
02-60-8C-01-02-03 197.15.22.33
00-00-A2-05-09-89 197.15.22.44
2010-5-13 16
ARP举例
172.16.3.1 172.16.3.2
IP,172.16.3.2 =
我需要
176.16.3.2
的以太网地址
2010-5-13 17
ARP举例
172.16.3.1 172.16.3.2
IP,172.16.3.2 =
我听到了广播。这个消息
是发给我的。这是我的以
太网地址,
我需要 176.16.3.2
的以太网地址
2010-5-13 18
ARP举例
172.16.3.1
IP,172.16.3.2
Ethernet,0800.0020.1111
172.16.3.2
IP,172.16.3.2 =
我听到了广播。这个消息
是发给我的。这是我的以
太网地址,
我需要 176.16.3.2
的以太网地址
2010-5-13 19
ARP举例
映射 IP Ethernet
172.16.3.1
IP,172.16.3.2
Ethernet,0800.0020.1111
172.16.3.2
IP,172.16.3.2 =
我听到了广播。这个消息
是发给我的。这是我的以
太网地址,
我需要 176.16.3.2
的以太网地址
2010-5-13 20
RARP
? 具有本地磁盘的系统引导时,一般是从磁盘上的配置
文件中读取 I P 地址
? 网络上的每个系统都具有唯一的硬件地址,它是由网
络接口生产厂家配置的
? 无盘系统的 RARP实现过程是:从接口卡上读取唯一
的硬件地址,然后发送一份 RARP请求 (一帧在网络上
广播的数据 ),请求某个主机响应该无盘系统的 IP 地
址 (在 RARP应答中 )
? RARP分组的格式与 ARP 分组基本一致。它们之间主
要的差别是
? RARP请求或应答的帧类型代码为 0X8035
? RARP 请求的操作代码为 3,应答操作代码为 4
? RARP 请求以广播方式传送,而应答一般是单播 (unicast)
传送
2010-5-13 21
RARP
? RARP服务器,被授权提供 RARP服务
? 为了运行无盘工作站,每个以太网上必须至少有一个
RARP服务器
? 广播帧不能通过 IP路由器转发
2010-5-13 22
RARP举例
Ethernet,0800.0020.1111 IP =
我的 IP地
址是多少?
2010-5-13 23
RARP举例
Ethernet,0800.0020.1111 IP =
我的 IP地
址是多少?
我听到了广播
,你的 IP地
址是
172.16.3.25.
2010-5-13 24
RARP举例
Ethernet,0800.0020.1111
IP,172.16.3.25
Ethernet,0800.0020.1111 IP =
我的 IP地
址是多少?
我听到了广播
,你的 IP地
址是
172.16.3.25.
2010-5-13 25
RARP举例
? 映射 Ethernet IP
Ethernet,0800.0020.1111
IP,172.16.3.25
Ethernet,0800.0020.1111 IP =
我的 IP地
址是多少?
我听到了广播
,你的 IP地
址是
172.16.3.25.
2010-5-13 26
IPv6
? 目前使用的 IPv4存在的问题
? 地址空间不够
? 应用类型及安全考虑不合适
? IPv6 是 IPv4的改良
? 128 位而不是 32 位的网络地址
? IP 头中更有效的应用和选项扩展
? 无头校验和
? 用于服务质量要求的流标识
? 不允许有数据报分段
? 内嵌式的授权和加密安全
2010-5-13 27
IPv6
版本

头长
度 TOS 总长度
标识 标志 分段偏移
TTL 协议 分组头检验和
源 IP地址( 4字节)
目的 IP地址( 4字节)
任选项 (可变长 ) 填充段
IPv4头结构
版本号 优先级 流标识
报文长度 下一头 跳数限制
源 IP地址( 16字节)
目的 IP地址( 16字节)
IPv6头结构
2010-5-13 28
IPv6
? 从 IPv4向 IPv6的过渡会出现的问题是,IPv6嵌入到 TCP/IP组件
的许多层和许多应用程序中。这也意味着 IPv4和 IPv6 必定会共
存相当一段时间
? 必须为不能或不会更新至 IPv6 的应用开发转换软件
? IPv4 和 IPv6 之间的过渡,基本问题是头翻译,这个过程中发生
的一个极小问题就会导致数据丢失
? 地址映射 (IPv4 地址转换为 IPv6 地址,或相反 )需要一些特殊处

? 一些 TCP/IP 服务到 IPv6 的转变需要很长的时间。比如 DNS,保
存了通用名字到 IP 地址的映射。当 IPv6 出现时,DNS 将不得不
处理两个 IP 版本,并且要为每个主机解析多个 IP 地址
? 当把整个的网络结构从 IPv4 转变到 IPv6 时,会涉及到更多的问
题。当公司和网络从一个版本的 IP 转向另一个版本的 IP 时会有
许多技术问题需要解决,以提供最大化的灵活性