互联网计算系列整理主要内容来自软院 2020 级学长 EagleBear2002 的博客,为博主阅读后提炼整理的内容。
内容不算全面,仅推荐大家复习时参考。

# 网络层概述

MAC 地址不能跨网段,IP 地址可以跨网段

第三层只能避免拥塞,但是要到第四层(运输层)才能完成流量控制 **(第三层不能完成流量控制)**

第三层的基本传输单位是 Packet 报文

# 第三层职责

  1. 划分广播域

  2. 分层寻址

  3. 细分网络并控制流量(?

  4. 减少交通拥堵

  5. 与其他网络交谈

  6. 跨介质的逻辑理解和接通

  7. 只负责连通和传达,不保证数据可靠性

# 设备

# 路由器

  1. 互连网段或网络(不同网段的分割

  2. 根据 IP 地址做出合理的决定

  3. 根据路由表确定最佳路径

  4. 将数据包从入站端口切换到出站端口

  5. 当源网段与目标网段不同时路由器会进行转发,反之则不会

# IP 地址和子网划分

# IPv4 报文主要结构

image-20220625193653967.png

# 首部部分

上面蓝框部分的整体是首部部分

# 首部长度

占 4 bit,可表示的最大数值是 15 个单位(一个单位为 4 字节) 因此 IP 的首部长度的最大值是 60 字节

  1. 因为首部长度是不确定的,所以我们需要进行标识。(用来方便读取)

  2. 首部长度的 32bit 为一行,也就是 4 个字节为一个单位

  3. 所以 IP 报文首部字段长度最大为 15 行

# 总长度

占 16 bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节(由于放到帧里面,所以大多数不比 1500 字节长)

好像不会考 IPv4 报文结构,后面略

# 网络层地址

IPv4 地址为 32 位长,它们以点分十进制格式表示为四个八位字节

两个组成部分:

  1. 网络 ID Network:标识网段

  2. 主机 ID Host:设别该网段上的特定设备

# IP 地址

# 分类

image.png

主要通过第一个字节进行划分

  1. 0-127(0xxxxxxx)A 类地址

  2. 128-191(10xxxxxx)B 类地址

  3. 192-223(110xxxxx)C 类地址

  4. 224-239(1110xxxx)D 类地址:多播(multicast):视频点播的原理也是组播(多播)

  5. 240-255(1111xxxx)E 类地址:研究(Research)

  6. host 不能全取 0,也不能全取 1。全取 0 时用来标识网段地址;全取 1 时用来标识网段的广播地址

# 主机的数量

每个类别的最大主机数量各不相同。(不包含网络号)

  1. A 类拥有 16,777,214 个可用主机(224 - 2)

  2. B 类具有 65,534 个可用主机(216 - 2)

  3. C 类具有 254 个可用主机(28 -2)

减 2 是因为去掉网络地址和广播地址

# 保留(Reserved)地址

  1. 网络地址:在地址的主机部分中以二进制 0 结尾的 IP 地址

    1. A 类网络地址示例:113.0.0.0

    2. 网络上的主机只有具有相同网络 ID 的其他主机才能直接通信。(用来确定是不是在一个网段里面)

  2. 广播地址:用于将数据发送到网络上的所有设备。(一般是一个网段之间的)

    1. 广播 IP 地址在地址的主机部分中以二进制 1 结尾

    2. B 类地址的广播地址的示例:176.10.255.255(decimal 255 = binary 11111111)

  3. 私有地址(Private IP Address)是用于局域网内部的地址,不能在公网上直接路由。私有地址的范围如下:即 10, 192.168, 172.16~172.31

    • 10.0.0.0 到 10.255.255.255(10.0.0.0/8)

    • 172.16.0.0 到 172.31.255.255(172.16.0.0/12)

    • 192.168.0.0 到 192.168.255.255(192.168.0.0/16)

# 子网划分

从 Host 中借位进行子网划分

image.png

# 基本概念

子网减小了广播域,提供寻址灵活性

第五版书和 6f 已经不知道用了多少年的 ppt:子网最少借用位数为 2,因为全 0 和全 1 不可用。当然现在用 CIDR 无所谓这个了。

可以借用的最大位数可以是保留至少 2 位主机号的任何数字(给 Host 至少保留 2 位,因为 1 位的话,要么一个是 NET 无法使用,要么一个是广播地址)

# 子网划分的副产品:地址浪费

我们必须在所需的子网数,每个子网可接受的主机以及地址的浪费之间取得平衡(strike a balance)。

  1. hostID 里面的全 0 和全 1 不能使用

  2. subnet 不可以使用全 0 和全 1

  3. 借用 4 位是最高效率的,提升了划分灵活性,影响了效率

# 子网掩码

把网络位全赋值为 1,host 位全部赋值为 0,这样我们就明白哪些位上面是 net,哪些位上面是 host

# 计算子网

首先确定:全 0 / 全 1 的子网和主机都不可用。

如果你要划分 13 个子网,13+2=15,你需要借 4 位。

借用后看主机个数是否满足要求。如果不满足要求可能还要划分多个子网给它

子网的网络地址:将借用位改成对应的子网编号,后面主机位全 0.

举例:将 C 类地址 192.168.1.0 划分出两个子网。

借用 2 位,分别为 01/10

00000000 → 01000000

00000000 → 10000000

所以两个子网地址为 192.168.1.64 1992.168.1.128

# 第三层设备

# 路由器发送过程

从 A 网段发送到 B 网段,帧和报文发送到路由器,路由器理解报文后检查路由表,找到目的地对应端口,进行转发,形成了新的帧,其 mac 地址变成了 B 网段目标机器的 mac 地址。

# 路由器端口示例

路由器端口记录了网段的 IP 地址(和连接的地方是相同的)

  1. 接口是路由器连接到网络的附件,在 IP 路由中也可以称为端口。

  2. 这个 IP 地址往往被作为这个网络的网关

  3. 每个接口必须具有一个单独的唯一网络地址

    1. 比如上图中 S1 和 S2 不能是相同的 IP 地址

    2. 路由器的连接的网段一定要是不同的

# IP 地址分配

  • 静态地址分配

  • 动态地址分配

# ARP 协议

Address Resolution Protocol 地址解析协议

ARP 使计算机能够查找与 IP 地址关联的计算机的 MAC 地址。

目的方 IP 地址 -> 目的方 MAC 地址

# ARP 的操作

# ARP Request

源设备使用广播的方式发送一个 ARP 请求

  1. 向目的方请求 MAC 地址,即 ARP 请求

  2. 命令如图:就是找谁是这个主机,你的 MAC 地址是啥

  3. 将 MAC 地址设置为全 1,作为广播发送

# ARP Checking

接收到广播请求后:

  1. 若不是自己的 ip 地址,解析结束,但会记录下发送方的 MAC 地址

  2. 若是自己的 ip 地址,则进行 ARP Reply,同时也会记下发送方的 MAC 地址

# ARP Reply

单播,给发送方返回自己的 MAC 地址

# ARP Caching

发送方将对应条目写入 ARP Table 中

然后再次形成一个数据帧发送出去即可

ARP 请求是本网段形成的,是一个广播就可以。如果目的主机不在本网段中,那么不能跨网段进行广播

# 网络交流

如何与不在同一物理网段上的设备通信?

  1. Default gateway 默认网关

  2. Proxy ARP 代理 ARP

# 默认网关

默认网关是路由器上连接到源主机所在网段的接口的 IP 地址。

为了使设备将数据发送到另一个网段上的设备的地址,源设备将数据发送到默认网关

发送报文到另一个网段,需要路由器把对应端口的网关的 MAC 告诉你,然后通过网关进行转发

# 代理 ARP

如果源主机未配置默认网关,发送 ARP 请求,然后路由器给你一个 ARP 的 reply,告诉你 MAC 地址(一般为路由器端口本网段的 IP 地址

# 网络层服务

IP 是无连接系统IP 就是提供无连接的网络服务 Connetionless network

使用报文交换(Packet Switched)

  1. 将原始数据分为很多的子报文(单位),每个子报文(单位)自己选择路径进行发送。

  2. 大部分的 Connetionless network 都是基于 packet switched 进行实现,控制网络拥塞。

  3. 出现问题时候,我们只需要重传对应部分的报文就可以(不用重传全部数据)

# 网络协议操作

# 路由协议的分类

  1. 静态路由:网络管理员在路由器中手动输入路由信息。

  2. 动态路由

    1. 路由器可以在运行过程中互相学习信息。

    2. 使用路由协议更新路由信息。

    3. RIP, IGRP, EIGRP, OSPF …

    4. 人工维护的代价比较大

# 静态路由和动态路由的区别

  1. 静态路由

    1. 用于隐藏部分网络。安全(不必进行路由表的交换)

    2. 测试网络中的特定链接。

    3. 用于仅在到达目标网络的路径时维护路由表。

  2. 动态路由

    1. 维护路由表。

    2. 以路由更新的形式及时分发信息。

    3. 依靠路由协议共享知识。

    4. 路由器可以调整以适应不断变化的网络状况。

    5. 打开后会启动进程,按照不同的协议,和网上的不同设备学习信息,然后根据算法生成路由表

# 动态路由协议的分类

内部网关协议和外部网关协议

  • 内部网关协议 IGP(Interior Gateway Protocols,RIP,IGRP,EIGRP,OSPF)

  • 外部网关协议 EGP(Exterior Gateway Protocols,EGP,BGP)

# 内部网关协议的分类:DVP and LSP

  • 距离矢量协议 DVP(Distance-Vector Protocols,RIP, IGRP)

    • 邻居的角度查看网络拓扑

    • 经常定期(periodic)更新

  • 链路状态协议 LSP(Link State Protocols, OSPF)

    • 获取整个网络拓扑的通用视图

    • 事件触发的更新。如果没有事件发生那么就不会更新

# 距离矢量协议(DVP)

# RIP(Routing Information Protocol)路由信息协议

  1. 基于距离矢量的内部网关协议。

  2. 唯一的指标是跳数。

  3. 最大跳数为 15。(评判依据简单,是一个短板)

  4. 每 30 秒更新一次(广播),可以修改。

  5. 并非总是选择最快的路径(而是走跳数最短的路径)。

# 链路状态协议(LSP)

# OSPF(Open Shortest Path First)最短路径优先协议

  1. 指标由带宽,速度,流量,可靠性和安全性组成,本科阶段只考虑带宽的。

  2. 事件触发时更新。

# IGRP(Interior Gateway Routing Protocol) and EIGRP(Enhanced IGRP)

# 可变长度子网掩码 VLSM

可变长度子网掩码(Variable Length Subnet Mask,VLSM)

  1. VLSM 只是一项功能,它允许单个自治系统的网络具有不同的子网掩码。

  2. 有效的解决网络号浪费的问题

  3. 使用 VLSM,网络管理员可以在主机少的网络上使用长掩码,而在主机多的子网上使用短掩码。(提供了很高的灵活性)

子网全 0 可以使用。全 1 不行

# 支持 VLSM 的路由协议

  1. 开放式最短路径优先(OSPF)

  2. Integrated Intermediate System to Intermediate System(Integrated IS-IS) 集成中间系统到中间系统(集成 IS-IS)

  3. 增强型内部网关路由协议(EIGRP)

  4. RIP v2

  5. 静态路由

# VLSM 的表示法

image.png

  1. 斜杠的含义是指前面多少位保留给网络位

  2. 此时也就是 / 30 就可以满足路由器之间的网络连通所需(减少浪费),剩下的网络地址可以在以后网络进行扩展

# VLSM 的例子

# 例子总结

  1. 重要的是要记住,只有未使用的子网才能进一步划分子网。

  2. 如果使用了子网中的任何地址,则该子网不能再进行子网划分。

  3. 一般是从主机多到主机少(路由间网络)进行划分

# 划分背景

  1. 已分配 192.168.10.0/24 的 C 类地址。

    1. 珀斯需要 60 个主机

    2. KL 需要 28 个主机

    3. 悉尼和新加坡分别需要 12 位主机。

    4. 珀斯,悉尼和新加坡与吉隆坡建立 WAN 连接。(各需要 2 个网络号 / 主机)

  2. 先划分成大的子网,然后进一步进行划分,然后在慢慢进行细化

  3. 为了计算 VLSM 子网,各个主机首先从地址范围分配最大的需求。需求级别应从最大到最小列出。

  • 划分过程

    # 第一步:满足珀斯的主机需求

    1. 在此示例中,珀斯需要 60 个主机号。

    2. 使用 6 位,因为 26 - 2 = 62 个可用主机地址。因此,将从第四个八位位组开始使用 2 位来表示 / 26 的扩展网络前缀,其余 6 位将用于主机地址。

    3. 在地址 192.168.10.0/24 上应用 VLSM 可得到:

      1. 192.168.10.00 hh hhhh /26

      2. 255.255.255.192(1100 0000)

    https://eaglebear2002.github.io/18756/53.png

    1. 第一个给 Perth 使用,剩下的用作保留未使用的

    # 第二步:为吉隆坡划分子网

    1. 吉隆坡需要 28 台主机号。192.168.10.63/26 之后的下一个可用地址是 192.168.10.64/26。

    2. 由于需要 28 个主机,因此主机地址需要 5 位,即 32-2 = 30 个可用主机地址。

    3. 因此,将需要 5 位来表示主机,而将使用 3 位来表示扩展网络前缀 / 27

    4. 在地址 192.168.10.64/26 上应用 VLSM 可得到:

      1. 192.168.10.010 hhhhh /27

      2. 255.255.255.224(1110 0000)

      3. 三个子网再借用一位

    https://eaglebear2002.github.io/18756/54.png

    # 第三步:为悉尼和新加坡进行分配地址

    1. 现在,悉尼和新加坡分别需要 12 位主机号。 下一个可用地址从 192.168.10.96/27 开始。

    2. 由于需要 12 个主机,因此主机地址需要 4 位,即 24 = 16、16 - 2 = 14 个可用地址。

    3. 因此,需要 4 位来表示主机,对于 / 28 的扩展网络前缀需要 4 位。

    4. 在地址 192.168.10.96/27 上应用 VLSM 可得到:

      1. 192.168.10.0110 hhhh /28

      2. 255.255.255.240(1111 0000)

    https://eaglebear2002.github.io/18756/55.png

    # 第四步:为之间的路由地址进行划分

    1. 现在为 WAN 连接分配地址。请记住,每个 WAN 连接都需要两个 IP 地址。下一个可用的子网是 192.168.10.128/28。

    2. 由于每个 WAN 链路需要 2 个网络地址,因此主机地址需要 2 位,即 22 -2 = 2 个可用地址。

    3. 因此,需要 2 位来表示链接,并需要 6 位来表示扩展网络前缀 / 30。

    4. 在 192.168.10.128/28 上应用 VLSM 可得到:

      1. 192.168.10.011000 hh /30

      2. 255.255.255.252(1111 1100)

    https://eaglebear2002.github.io/18756/56.png

    https://eaglebear2002.github.io/18756/image-20220625101016298.png

    1. 通过上述方法,从主机需求量大的部分入手,到主机需求量小的部分是很好的方法。

# 路由聚集(Route Aggregation)

无类域间路由(CIDR,Classless InterDomain Routing)

  1. 使用无类域间路由(CIDR,Classless InterDomain Routing)和 VLSM 不仅可以防止地址浪费,而且还可以促进路由聚合或汇总。

  2. 多个路由条目汇聚成小的路由条目

  3. 比如如下图就是讲 3 个 / 24 的子网合并成一个 / 16 的网络高速远端

image.png

# 如何进行路由聚集

https://eaglebear2002.github.io/18756/image-20230721111736898.png

如何进行计算:将尽可能多的位进行聚集,将之后的不通过的位置,作为 Host 位,就得到了上图的结果

就是把前面相同的部分合并作为网络号,后面是主机号。

  1. 全 0 子网会在题目中说是否可用

  2. 全 1 子网尽量不要使用

# 因特网控制报文协议 ICMP

ICMP(Internet Control Message Protocol)因特网控制报文协议

  1. ICMP(Internet Control Message Protocol):为了提高 IP 数据报交付成功的机会(消息管理和协商)

  2. ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告

  3. ICMP 只是 IP 层的协议

  4. ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去

  5. 一般路由器在丢弃报文的时候(处理之前已经提到的情况),都会返回一个 ICMP 差错报文

两种 ICMP 报文:

  1. 查询报文:一般这种情况不是很多

  2. 差错报告报文:一般这种类型会多一些

# PING(Packet InterNet Groper)

  1. PING 是用 ICMP 的 "Echo request “和” Echo reply" 消息来实现的

  2. PING 用来测试两个主机之间的连通性,一般是用来检查局域网的连通性:PING 不通,不仅仅是发送不过去,有可能是应答不回来。

  3. PING 使用了 ICMP 回送请求与回送回答报文

  4. PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或 UDP

# 附:冲突域和广播域

冲突域(Collision Domain)广播域(Broadcast Domain) 是网络中的两个重要概念,它们分别描述了网络中设备之间如何通过物理或逻辑结构进行通信、发生冲突或广播的范围。

# 1. 冲突域(Collision Domain)

冲突域 是指在同一个网络环境中,多个设备在同一时间发送数据时,可能会发生 数据冲突(Collision)的区域。简单来说,冲突域是指如果两个或多个设备在同一时刻同时发送数据,它们的信号可能会相互干扰,导致数据无法正确接收并需要重新发送。

# 特点:

  • 冲突的发生:冲突发生时,数据会丢失,设备必须重新发送。这个问题发生在共享媒介(如集线器或无线网络)中。

  • 影响范围:冲突域的范围通常是 共享介质(如集线器、同轴电缆)的连接部分。

  • 减少冲突:通过使用 交换机(Switch)路由器(Router),可以减少冲突,因为它们可以在物理层或数据链路层隔离不同的冲突域。

# 示例:

  • 在一个使用 集线器(Hub) 的网络中,所有通过集线器连接的设备都在同一个冲突域内。如果两台设备同时发送数据,它们会发生冲突。

  • 在一个使用 交换机(Switch) 的网络中,每个端口代表一个独立的冲突域,不同端口之间的数据传输不会发生冲突。

# 冲突域与设备:

  • 集线器(Hub):将所有连接到它的设备置于同一冲突域。

  • 网桥 (Bridge):每个端口形成一个独立的冲突域。

  • 交换机(Switch):每个端口形成一个独立的冲突域。

  • 路由器(Router):不会导致冲突域的形成,它们位于不同的网络之间,隔离了不同的冲突域。

# 2. 广播域(Broadcast Domain)

广播域 是指在一个局域网内,通过 广播(Broadcast)方式发送的数据包可以被所有设备接收到的区域。广播数据包会被网络中所有设备接收,除非该数据包遇到一个 路由器VLAN(虚拟局域网) 等设备将其隔离。

# 特点:

  • 广播的范围:广播域的范围通常是由 路由器VLAN 划分的,所有在同一个广播域中的设备都可以接收到广播数据包。

  • 广播风暴:如果广播域过大,可能会发生 广播风暴,即大量的广播包占用网络带宽,影响正常的通信。

  • 隔离广播域:通过使用 路由器(Router)VLAN(虚拟局域网),可以将一个广播域划分为多个子广播域,减少广播带来的负担。

# 示例:

  • 在一个 交换机(Switch) 网络中,如果没有使用 VLAN,所有通过交换机连接的设备都在同一个广播域内。一个设备发送的广播数据包会被同一广播域内的所有设备接收到。

  • 如果通过 路由器(Router)VLAN 进行隔离,不同的广播域之间的设备无法接收到彼此的广播。

# 广播域与设备:

  • 路由器(Router):用于将不同的广播域隔离开。广播数据包不能通过路由器转发,因此路由器可以有效地隔离不同的广播域。

  • VLAN:通过 VLAN 配置,可以将一个交换机划分为多个逻辑上的广播域。不同的 VLAN 之间的广播包不会相互传递。

# 3. 冲突域与广播域的区别

  • 冲突域:指设备之间通过共享介质通信时可能会发生冲突的范围,发生冲突时,数据丢失需要重发。冲突域一般由物理设备(如集线器、交换机端口等)划分。

  • 广播域:指广播数据包传播的范围,广播包会被同一广播域内的所有设备接收。广播域通常由路由器、VLAN 等设备划分。

# 4. 如何减少冲突域和广播域的范围

  • 减少冲突域

    • 使用 交换机(Switch):交换机会将每个端口划分为独立的冲突域,避免多个设备在同一时刻发生冲突。

    • 使用 全双工(Full Duplex)技术:在现代以太网中,大多数网络设备支持全双工通信,这样就可以避免冲突,因为数据可以在两个方向同时传输。

  • 减少广播域

    • 使用 路由器(Router):路由器会将不同的广播域隔开,使得广播包无法跨越路由器进行传播。

    • 使用 VLAN:VLAN 可以将一个物理交换机划分为多个逻辑广播域,从而有效减少广播的范围。

# 5. 冲突域与广播域的实际应用

  • 在大型网络中,合理划分冲突域和广播域有助于提升网络性能和效率。例如,在企业网络中,通常使用 交换机 来减少冲突域,使用 路由器VLAN 来划分广播域,从而有效减少广播风暴和冲突的发生。

总结来说:

  • 冲突域 是指设备之间可能发生数据冲突的区域,冲突通常发生在共享媒介中。

  • 广播域 是指广播数据包可以传播的区域,广播域通常由路由器或 VLAN 进行隔离。

image.png

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

北沐清 微信支付

微信支付

北沐清 支付宝

支付宝