与 IP 协议配套使用的三个协议:
- 地址解析协议 ARP
- 网际控制报文协议 ICMP
- 网际组管理协议 IGMP
1 虚拟互连网络
没有一种单一的网络能够适应所有用户的需求。将网络互连起来需要使用一些中间设备:
- 转发器(物理层)
- 网桥或桥接器(数据链路层)
- 路由器(网络层)
- 网关(网络层以上)
由于参加互连的计算机网络都使用相同的网际协议IP,因此可以把互连以后的计算机网络看成一个虚拟互连网络,即逻辑互连网络,使这些性能各异的网络在网络层上看起来好像是一个统一的网络。
使用 IP 网上的主机进行通信时,就好像在一个单个网络上通信一样,它们看不见互连的各网络的具体的异构细节(如编制方案、路由选择协议等)。在 IP 网的上层使用 TCP 协议,就是现在的互联网。
2 分类的 IP 地址
1)IP 地址及其表示方法
P地址的编制方法共经历了三个历史阶段。
- 分类的 IP 地址
- 子网的划分
- 无分类 CIDR(构成超网)
“分类的 IP 地址”将 IP 地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成:
- 网络号(net-id):标志主机所连接到的网络(互联网范围内唯一)
- 主机号(host-id):标志该主机(网络范围内唯一)
IP地址 ::= {<网络号>,<主机号>},在整个互联网范围内唯一。
目前广泛使用无分类 IP 地址进行路由选择,A类、B类和 C类地址的区分已成为历史。
为了便于书写 IP 地址,将32位的二进制代码,每8位转换为十进制,数字之间加上一个点,叫做点十进制记法。
2)常用的三种类别的 IP 地址
IP 地址具有以下重要特点:
- 每一个 IP 地址都是有网络号和主机号组成的
- 实际上 IP 地址是标志一台主机(或路由器)和一条链路的接口。当一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号必须是不同的。
- 一个网络是指具有相同网络号 net-id 的主机的集合,因此用转发器或网桥连接起来的若干个局域网仍为一个网络。
- 因特网平等对待每一个 IP 地址
3 IP 地址与硬件地址
- 物理地址:是数据链路层和物理层使用的地址
- IP 地址:是网络层和以上各层使用的地址,是一种逻辑地址。
在 IP 层抽象的互联网只能看到 IP 数据报,而在局域网的链路层,只能看见 MAC 帧。
目前还有两个重要问题没有解决:
- 主机或路由器怎样知道应该在 MAC 帧的首部填入什么样的硬件地址?(ARP)
- 路由器中的路由表是怎样得出的?
4 地址解析协议 ARP
已经知道了一个机器的 IP 地址,需要找出其相应的硬件地址。
地址解析协议 ARP 解决这个问题的方法是:在主机ARP高速缓存中存放一个IP地址到硬件地址的映射表,并且这个映射表还经常更新(新增或超时删除)。
之所以有了硬件地址还需要IP,是因为全世界存在着各种网络,使用不同的硬件地址,这些硬件地址的转换工作非常复杂,不能交给用户主机来做。所以硬件地址转换交给计算机软件自动进行,用户主机根据 IP 来通信就好。
5 IP 数据报的格式
(1)IP 数据报首部的固定部分中的各字段
- 版本: IP 协议的版本。有 4(IPv4)和 6(IPv6)两个值;
- 首部长度:固定+可变部分总长。不是 4 字节的整数倍时需要填充。
- 区分服务:使用区分服务时才起作用。
- 总长度:首部+数据之和。
- 标识:产生数据报的计数器。分片时用来识别为是同一数据报。
- 标志:标记是否能分片、是否还有分片
- 片偏移:分片后在原分组中的相对位置
- 生存时间:TTL,路由器跳数。归零时丢弃。
- 协议:数据部分使用的协议
- 首部检验和:校验是否传输出错
- 源地址
- 目的地址
(2)IP 数据报首部的可变部分
可选部分,增加功能,很少使用
6 IP 层转发分组的流程
在互联网上转发分组时,是从一个路由器转发到下一个路由器。
路由表中,对每一条路由最主要的是以下两个信息:(目的网络地址,下一跳地址)。
分组转发算法
- 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
- 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。
- 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
- 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
- 报告转发分组出错。