4.2 网际协议IP

b12bb2cd124643108477bfc159f9aaff.png

思维导图:

4b13719e43cc4e5abd85061ec1d2dfb3.png

810fb843caf0471b9f47fda255a261af.png

e5443b76ce2e420e902343c8c43c8f15.png edf619f6ce324389b6146bb3f33ecc07.png

c4435e0562f24f6ebc54cbc7da961e39.png 48654e18c1a8414896a863576384c725.png

ce9f2b03eb5c4c308ffef4fcc2efb90a.png 9f00abb8f2804668886f689f8c4ec1f3.jpeg

前言:

笔记 4.2 - 网际协议IP

1. **定义与重要性**:
   - 网际协议IP是TCP/IP体系中的核心协议之一。
   - 它是互联网的关键标准协议。
  
2. **发展背景**:
   - 又被称为Kahn-Cerf协议。
   - 由Robert Kahn和Vint Cerf研发。
   - Kahn和Cerf于2005年因其贡献获得了图灵奖(计算机科学的诺贝尔奖)。

3. **版本细节**:
   - 严格说,本章讨论的是IPv4(IP的第四个版本)。
   - 通常在讲述IP时,不特指版本。
   - IPv6为较新版本,会在4.6节讨论。
   - IPv1-3和IPv5版本未被使用。

4. **与IP协议相关的其他协议**:
   - 地址解析协议ARP。
   - 网际控制报文协议ICMP。
   - 网际组管理协议IGMP。
   - 逆地址解析协议RARP(已被淘汰)。

5. **协议间关系(图4-2)**:
   - **应用层**: 包括(HTTP,FTP,SMTP等)应用协议。
   - **运输层**: 包括TCP, UDP。
   - **网络层(网际层)**:
     - 主要是IP。
     - ARP位于最下方,常被IP使用。
     - ICMP和IGMP位于上方,使用IP。
   - **网络接口层**: 与各种网络接口和物理硬件相连。

6. **关于"网际层"这个术语**:
   - 网际协议IP使得多个计算机网络可以互联通信。
   - 因此TCP/IP体系的网络层经常被称为网际层或IP层。
   - “网际层”强调这是一个由多个网络构成的互联网络。

7. **接下来的讨论**:
   - 在深入讨论网际协议IP之前,我们需要了解什么是虚拟互连网络。

c13f041dd88b46de850691d88b4671d4.jpeg

4.2.1 虚拟互联网络 

**4.2 网际协议IP笔记**

- **定义**:网际协议IP是TCP/IP体系中的核心协议之一,也是最主要的互联网标准协议。
  
- **别称**:称为Kahn-Cerf协议,得名于创始人Robert Kahn和Vint Cerf。
  
- **奖项**:Kahn和Cerf于2005年获得图灵奖,相当于计算机科学的诺贝尔奖。
  
- **版本**:本文讨论的是IP的第四个版本,即IPv4。而IPv6是较新的版本,版本1~3和5都未曾使用。
  
- **配套协议**:与IP协议配套使用的还有ARP(地址解析协议)、ICMP(网际控制报文协议)、IGMP(网际组管理协议)。曾有RARP(逆地址解析协议),现已被淘汰。
  
- **协议关系**:图4-2显示了这些协议与网际协议IP之间的关系。其中ARP在最下面,而ICMP和IGMP在上面,因为它们使用IP。
  
- **网络层名称**:TCP/IP体系中的网络层常被称为网际层或IP层,强调这是多个网络构成的互联网络。

---

**4.2.1 虚拟互连网络**

 

 

 

- **挑战**:互连全球百万计的网络是复杂的。存在许多异构性,如不同的寻址、分组长度、接入机制等。

- **网络统一化**:由于各网络的需求和技术差异,不能仅使用一种网络来简化互连。

- **中间设备**:网络互连需要中间设备,如转发器(物理层)、网桥(数据链路层)、路由器(网络层)和网关(网络层以上)。

- **路由器与网关**:路由器是网络层中用于路由选择的专用计算机。因历史原因,路由器曾被称为网关。

- **虚拟互连网络**:使用相同的网际协议IP,互连后的网络可以视为一个大的虚拟网络。它在网络层看起来像一个统一的网络,遮蔽了物理网络的差异。

- **IP网的优势**:在IP网上的主机通信时,它们只看到统一的网络,而看不到各网络的异构细节。

- **例子**:图4-4显示了如何通过路由器将IP数据报从源主机H₁传输到目的主机H₂。

总结,这一节讲述了网际协议IP的重要性和其与其他协议的关系。虚拟互连网络部分讨论了网络互连的挑战和解决方法,并通过示例进一步说明了这一概念。

c5e9f21a99714d5aa08cf6ce9caef4ae.jpeg

643caa4be13347648548d682a12f3b19.jpeg

4.2.2 分类的IP地址 

1.IP地址及其表示方法

在TCP/IP体系中,IP地址是至关重要的。为了深入理解它,我们应该参考互联网的正式标准RFC791。

整个互联网可以被视为一个单一的、抽象的网络。IP地址为互联网上的每台主机(或路由器)的每个接口分配了一个唯一的32位标识符。这样的结构使我们可以在互联网上方便地进行寻址。目前,IP地址的分配由ICANN (Internet Corporation for Assigned Names and Numbers)管理。

IP地址的编址经历了三个阶段:
- 分类的IP地址:最早的编址方法,于1981年被标准化。
- 子网划分:对基本编址方法的改进,于1985年被标准化为RFC950。
- 构成超网:较新的编址方法,于1993年提出并快速得到应用。

本节将重点讨论分类的IP地址,而后两种方法将在4.3节中讨论。

“分类的IP地址”将IP地址划分为几个固定类别。每个类别的地址都由两个固定长度的字段组成:网络号(net-id)和主机号(host-id)。网络号在全球范围内是唯一的,标识连接到的网络。主机号标识在该网络上的特定主机或路由器。

IP地址格式为:
IP地址:={<网络号>,<主机号>}
(4-1)

如图4-5所示,A类、B类和C类地址是最常用的单播地址(一对一通信)。从图中可以看出,这三类地址的网络号字段和主机号字段的长度都不同。A类、B类和C类地址的网络号字段的前几位是类别位,分别为0, 10和110。D类地址用于多播,而E类地址被保留。

需要注意的是,近年来,由于无分类IP地址的广泛使用,传统的A类、B类和C类地址的区分已经成为历史。但为了清晰度和概念的演进,我们还是从分类的IP地址开始讲解。

总的来说,IP地址不仅仅标识一台主机,还指明了主机所连接到的网络。

IP地址的划分旨在满足不同用户的需求。根据需求,一个单位可以获得一块具有同样网络号的地址,而具体的主机号则由该单位自行分配。

通常,IP地址都是32位的二进制代码。为了便于阅读和书写,我们通常使用点分十进制记法(dotted decimal notation)表示IP地址。例如,128.11.3.31比其二进制形式更易读。

--- 

2bdf1a3f661c4b958f76b89a5eaf16fa.jpeg

2.常用的三种类别的IP地址 

---

**IP地址分类:**
1. **A类地址:**
   - 网络号字段占1个字节,可指派的网络号是126个。
   - 主机号占3个字节,最大主机数为16777214。
   - 总计占IP地址空间的50%。

2. **B类地址:**
   - 网络号字段有2个字节,可指派的网络数为16383。
   - 主机号字段有2个字节,每个网络上的最大主机数为65534。
   - 总计占IP地址空间的25%。

3. **C类地址:**
   - 网络号字段有3个字节,可指派的网络总数为2097151。
   - 主机号字段有1个字节,每个网络的最大主机数为254。
   - 总计占IP地址空间的12.5%。

---

**IP地址特性:**
1. IP地址由网络号和主机号两部分组成,是分等级的地址结构。
2. IP地址标志主机(或路由器)和链路的接口。
3. 互联网的观点:一个网络是指具有相同网络号的主机的集合。
4. 所有分配到网络号的网络在互联网中都是平等的。

---

**其他要点:**
1. 在同一局域网上的主机或路由器的IP地址的网络号必须一致。
2. 用网桥互连的网段是一个局域网,有一个网络号。
3. 路由器至少有两个不同的IP地址。
4. 直接相连的路由器可以分配也可以不分配IP地址。不分配时称为无编号网络或无名网络。

例题:

---

总结:

f455859b38a548a59935ec42128f14a4.jpeg

4.2.3 IP地址和硬件地址 

**概述**:在探讨网络通信时,理解IP地址和硬件地址的区别是至关重要的。它们在网络中的功能、位置和用途各不相同。

**1. IP地址与硬件地址的区别**
- 物理地址(硬件地址):在数据链路层和物理层使用的地址。
- IP地址:在网络层及以上使用的逻辑地址。逻辑地址之所以这样称呼,是因为它是通过软件来实现的。

**2. 数据传输与地址**
- 在数据传输中,数据先从高层移至低层,然后再通过通信链路传输。使用IP地址的是IP数据报。
- 注:在局域网中,硬件地址常被称为物理地址或MAC地址。

**3. 不同层次、不同区间的源地址和目的地址**
- 在网络层:写入IP数据报首部的地址。
- 在数据链路层:写入MAC帧首部的地址。

**关键点**:
- 在IP层的互联网上,只能看到IP数据报。数据报通过的路由器的IP地址并不会显示在IP数据报的首部中。
- 虽然IP数据报首部有源地址,但路由器仅根据目标站的IP地址网络号进行路由选择。
- 在局域网的链路层,只能看到MAC帧,且MAC帧首部中的地址在不同的网络传输时会发生变化。
- 虽然每个网络的硬件地址体系都不同,但在IP层上,这些复杂细节被屏蔽。这种“屏蔽”概念在计算机中广泛应用,使得复杂的过程对用户透明。

**核心概念**:理解这些网络通信的基本概念是至关重要的。有两个主要问题需要解决:1) 如何知道在MAC帧首部填入什么硬件地址? 2) 如何得出路由器中的路由表?这两个问题将在后续章节中详细讨论。

fac8affdbf70401a9e74c9aff9cfaa2b.jpeg

4.2.4 地址解析协议ARP 

- **定义与作用**:
    - 地址解析协议 (ARP) 主要用于在已知机器的 IP 地址的情况下,寻找其对应的硬件地址。
    - 图4-10 描述了 ARP 协议的功能。
    
- **协议归类**:
    - 虽然 IP 协议使用了 ARP,但 ARP 主要目的是将网络层使用的 IP 地址转化为数据链路层使用的硬件地址。
    - 有些教材会将 ARP 划归为数据链路层。

- **与RARP的关系**:
    - 早期有一个逆地址解析协议 (RARP) 允许机器仅通过其硬件地址来查询其 IP 地址。
    - 现代的 DHCP 协议已经包含了 RARP 的功能,因此很少还会单独提及 RARP。

- **ARP的工作原理**:
    - 网络层使用 IP 地址,但在实际网络上传输数据帧时,仍需使用该网络的硬件地址。而 IP 地址与硬件地址间并没有直接映射。
    - ARP 解决此问题的方式是通过在主机的 ARP 高速缓存中存储 IP 地址到硬件地址的映射表。
    - 当主机 A 需要与主机 B 通信时,首先检查其 ARP 缓存以查找 B 的硬件地址。如果找到,则直接使用。否则,会广播 ARP 请求来查询 B 的硬件地址。
    - 其他机器收到此 ARP 请求后,如果 IP 地址匹配,则回复其硬件地址;否则忽略此请求。
    - 一旦 A 收到了 B 的响应,它将 B 的 IP 地址与硬件地址的映射存入其 ARP 高速缓存中。

- **ARP高速缓存的重要性**:
    - 如果不使用 ARP 缓存,每次通信都需要广播 ARP 请求,导致网络通信量大增。
    - 使用 ARP 高速缓存可以减少不必要的网络广播,提高通信效率。
    - ARP 缓存中的每个条目都有一定的生命周期,过期的条目会被自动删除。
    - 这样的设计可以确保信息的实时性,例如在硬件地址变更的情况下可以快速更新。

- **ARP与网络位置**:
    - ARP 主要用于解决同一个局域网内的机器或路由器之间的 IP 地址和硬件地址的映射问题。

此节提供了对地址解析协议 ARP 的详细介绍,包括其定义、工作原理、与其他协议的关系,以及 ARP 高速缓存的重要性。

---

**ARP协议:从IP地址到硬件地址的自动解析**
- ARP允许主机或路由器自动地从已知的IP地址解析出链路层所需的硬件地址。
- 主机用户通常对此解析过程是无感知的。

**ARP使用的四种典型情况:**
1. 主机A向同一网络上的另一台主机B发送IP数据报。A通过ARP请求分组找到B的硬件地址。
2. 主机A想要向另一个网络上的主机C或D发送IP数据报。A首先通过ARP找到其连接的路由器R₁的硬件地址。然后,R₁完成数据报的转发。
3. 路由器R₁向与其连接在同一网络上的主机C转发IP数据报。R₁通过ARP找到C的硬件地址。
4. 路由器R₁向另一网络上的主机D转发IP数据报。因为D不在R₁的网络上,R₁先通过ARP找到另一个路由器R₂的硬件地址,然后由R₂完成数据报的转发。

虽然在多种情境中需要多次使用ARP,但这仅仅是上述几种情况的组合。

**为什么使用IP地址而不是硬件地址?**
- 全球存在许多不同类型的网络,使用不同的硬件地址。要实现这些异构网络之间的互通,直接使用硬件地址会涉及复杂的地址转换。
- 使用IP地址和ARP,使得不同网络间的通信变得简单。用户不需要担心背后的复杂过程,因为计算机软件会自动处理。

---

总之,ARP是互联网通信中的核心协议,它简化了IP和硬件地址之间的转换,使跨网络的通信变得更加简单。

85df7999355d4648b8e9bf7d6c35ea2d.jpeg

4.2.5 IP数据报的格式 

---
**4.2.5 IP数据报的格式**

- **总览:**
  - IP数据报的格式揭示了IP协议的功能。
  - 格式基于32位(4字节)单位。
  - IP数据报包括两部分:首部和数据部分。

- **IP数据报的结构:**
  - 固定首部长度为20字节,之后是可变长度的可选字段。
  
- 首部字段详解:
  1. **版本(4位):** IP协议的版本。例如,IPv4为版本4,IPv6为版本6。
  2. **首部长度(4位):** 长度单位是32位。通常首部长度为20字节,最大为60字节。

  3. **区分服务(8位):** 早期为服务类型,但未使用。现在为区分服务DS。
  4. **总长度(16位):** 首部和数据的总长度。最大为65535字节。但实际使用中,要考虑数据链路层的最大传送单元MTU。
  5. **标识(16位):** 计数器,对每个数据报增加。当数据报分片时,该值复制到所有片。
  6. **标志(3位):** 包括MF和DF位。MF指示是否还有分片,DF指示是否允许分片。
  7. **片偏移(13位):** 显示分片在原数据报中的位置。每个分片的长度必须是8字节的倍数。

**其他点:**
- 数据链路层每种协议都有MTU(最大传送单元)限制,如以太网的MTU为1500字节。如果数据报过长,需要分片处理。
- 分片时,数据报首部中的“总长度”字段表示每个分片的首部和数据长度之和。

例子:

---

**IP数据报的结构**
1. **首部与数据报片**:
    - 数据报分片举例
    - 分片数据报的首部与偏移值

2. **IP数据报首部中与分片有关的字段数值**:
    - 总长度、标识、MF(更多片)、DF(不分片)、片偏移

3. **生存时间 (TTL)**:
    - TTL的单位从秒更改为跳数
    - 用于防止数据报在网络中无限循环
    - TTL值为0时,数据报被丢弃

为什么有TTL:

4. **协议字段**:
    - 定义数据报携带的数据使用的协议
    - 例如:ICMP, IGMP, IP, TCP, UDP, IPv6等

5. **首部检验和**:
    - 仅检查数据报的首部
    - 通过反码算术运算进行检查
    - 如果首部没有变化,结果为0,则保留数据报;否则,丢弃

6. **源地址与目的地址**:
    - 占32位

7. **其他注解**:
    - IANA和ICANN的介绍及职责
    - IP数据报中的特殊数据报封装
    - 反码与补码的区别

**2. IP数据报首部的可变部分**
- **选项字段**:IP数据报首部的可变部分主要为选项字段。
  - **目的**:支持排错、测量以及安全等功能。
  - **长度**:此字段长度不固定,可以是1-40个字节,取决于所选择的选项。
  - **结构**:某些选项只需1个字节,有的需要多个。选项可以紧密拼接,不需分隔符。若非4字节的倍数,需使用全0填充。
- **可变首部的影响**:虽然增加了功能,但也增加了处理的开销。
  - 路由器往往不处理选项字段。
  - IPv6优化,首部长度固定,无选项字段。
- **详细内容**:对于选项的具体内容和使用,可以查看RFC791。

例题:

总结:

f158768bbdab4673913b48da081ffa41.jpeg

**4.2.6 IP层转发分组的流程笔记**

1. **简化说明**:
    - 路由器通过路由表来确定如何转发分组。
    - 路由表指出到哪个网络应如何转发,而非指向每台主机,以减少复杂性。

2. **路由器R₂的示例**:
    - 路由器R₂的路由表显示了各个网络应如何转发。
    - 若目标在网2或网3,则由路由器R₂直接交付。
    - 若目标在网1,下一跳为路由器R₁;若在网4,则下一跳为路由器R₃。
    - 每个路由器都有两个IP地址。

3. **网络拓扑简化**:
    - 网络可以简化为链路,路由器之间的IP地址明确标注。
    - 这样的简化强调了分组是如何从一个路由器转发到另一个路由器的。

4. **路由表主要信息**:
    - 目标网络地址
    - 下一跳地址
    - 其他可能的信息:标志、参考计数、使用情况、接口等。

5. **分组转发结论**:
    - 根据目标网络地址确定下一跳路由器。
    - IP数据报最终会找到目标主机所在网络上的路由器。
    - 只有在最后一步,数据报才会直接交付给目标主机。

6. **特定主机路由**:
    - 在大多数基于网络的路由中,仍可以指定特定的目的主机。
    - 对网络管理员有利,方便控制和测试网络,考虑安全问题。

7. **默认路由**:
    - 路由器使用默认路由减少路由表空间和搜索时间。
    - 在一个网络只有少数对外连接时特别有用。
    - 默认路由对于主机发送IP数据报特别有利,尤其是小网络。

### 默认路由及路由表
1. **图4-17**: 描述了路由器R作为网络N₁的默认路由器。其中,H的路由表指出到达N₁和N₂的路径。
2. **IP数据报的首部**:
    - 没有指明“下一跳路由器的IP地址”。
    - IP数据报的首部仅包括源IP地址和目的IP地址,不包括中间路由器的IP地址。
3. **数据报转发**:
    - 路由器在收到数据报后,先从路由表得出下一跳路由器的IP地址。
    - IP地址转换为硬件地址时需要使用ARP。
    - 硬件地址被放入链路层的MAC帧首部,用于找到下一跳路由器。
4. **使用IP地址的意义**:
    - 抽象的IP地址旨在隐蔽底层网络的复杂性,使得问题更易于分析和研究。
    - 直接在路由表中使用硬件地址会导致更多问题。
5. **分组转发算法**:
    - 提取数据报的目的IP地址D,并得出其网络地址N。
    - 判断是否为直接交付或间接交付。
    - 通过路由表逐步决定转发路径,直到数据报到达目的网络。
6. **路由表的查找过程**: 可以比喻为开车到机场的过程。在不知道具体路径的情况下,每到一个交叉口(路由器)都会询问如何到达目的地。
7. **路由表的建立与更新**: 本节内容主要讨论了如何根据路由表内容进行分组转发,但并未涉及路由表如何建立或更新。

324a47799aa0490b8215a405483e3427.jpeg

6e6265999e014bb292405c3ad74c446a.jpeg

9e9441338cd44e8f824e1632f4c5b2e0.jpeg

7fbb3fbc53f944d8afd7e4c80ab3a758.jpeg

bd1a0c5b29f946eca2c36d492513a13b.jpeg

a5631b94cd8b4477bb2204be76e280b1.jpeg

33c211236dff4ca1905b41a95a0a4cbc.jpeg

bde1ff5cd5cb45e59c7e8f062218c7dc.jpeg

cf07c03f55344e45a0d69afce8c9bfa7.jpeg

229a31bf7315418cbf32f20df6c7a740.jpeg

ac3542c61c3848279067af9af8af4ed5.jpeg

7983caaced2b4af0adcc78f523cb69dd.jpeg

总结:

重点:

1. **定义与功能**:网际协议IP是一个无连接、不可靠的服务,它只提供最基本的数据包传输服务。
2. **IP地址**:由32位组成,分为网络部分和主机部分,用于唯一标识网络上的每个设备。
3. **子网划分**:为了更加灵活地进行IP地址管理,可以对IP地址进行进一步的划分。
4. **路由选择**:决定数据包从源到目标的路径选择。
5. **IP数据报格式**:定义了IP数据报的结构,包括版本、头长度、服务类型、总长度等字段。

难点:

1. **子网掩码**:与IP地址结合使用,用于划分网络地址和主机地址。
2. **CIDR (无类别域间路由)**:现代IP地址划分方法,用于解决传统的A、B、C类地址划分的不足。
3. **IP碎片重组**:当IP数据报在网络中传输时,可能会被分成多个碎片,这些碎片在目的地需要被重新组装。
4. **路由选择算法**:如何决定数据包的最佳路径是网络设计中的一个核心问题。

易错点:

1. **地址划分误解**:容易混淆传统的A、B、C类地址与CIDR。
2. **私有地址和公有地址**:私有地址只在局域网中有效,不应在互联网中使用。
3. **MTU和碎片化**:不同的网络可能有不同的MTU(最大传输单元),导致IP数据报需要碎片化。
4. **默认网关误配置**:在配置设备IP时,错误的默认网关会导致设备无法访问外部网络。

74a0da5c68fa4c52a0a94f89e3bc843e.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值