网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议:
地址解析协议 ARP (Address Resolution Protocol)
逆地址解析协议 RARP (Reverse Address Resolution Protocol)
网际控制报文协议 ICMP (Internet Control Message Protocol)
网际组管理协议 IGMP (Internet Group Management Protocol)
虚拟互连网络
网络互相连接起来要使用一些中间设备
物理层中继系统:转发器(repeater)。
数据链路层中继系统:网桥或桥接器(bridge)。
网络层中继系统:路由器(router)。
网桥和路由器的混合物:桥路器(brouter)。
网络层以上的中继系统:网关(gateway)。
IP 数据报的格式
版本 : 有 4(IPv4)和 6(IPv6)两个值;
首部长度 : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为固定部分长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
区分服务 : 用来获得更好的服务,一般情况下不使用。
总长度 : 包括首部长度和数据部分长度。
生存时间 :TTL,它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报。
协议 :指出携带的数据应该上交给哪个协议进行处理,例如 ICMP、TCP、UDP 等。
首部检验和 :因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量。
标识 : 在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。
片偏移 : 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节。
IP数据报分片
IP 地址与硬件地址
IP层抽象的互联网屏蔽了下层很复杂的细节
在抽象的网络层上讨论问题,就能够使用
统一的、抽象的 IP 地址
研究主机和主机或主机和路由器之间的通信
示意图
地址解析协议 ARP 与逆地址解析协议RARP
缘由
网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变。
地址解析协议 ARP
ARP 实现由 IP 地址得到 MAC 地址
每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。
如果主机 A 知道主机 B 的 IP 地址,但是 ARP 高速缓存中没有该 IP 地址到 MAC 地址的映射,此时主机 A 通过广播的方式发送 ARP 请求分组,主机 B 收到该请求后会发送 ARP 响应分组给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。
示意图
逆地址解析协议 RARP
逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。
这种主机往往是无盘工作站。 因此 RARP协议目前已很少使用。
IP 层转发分组的流程
分组转发算法
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
(2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。