计算机网络之网络层

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: 1 IP地址与MAC地址的关系MAC是身份证号码,用来识别网络设备本身IP地址是居住地2 ARP协议的作用,地址解析的过程ARP协议作用将主机的IP地址解析为相应的链路层的MAC地址不管网络层使用的是什么协议,在实际网络的链...

1 IP地址与MAC地址的关系

MAC是身份证号码,用来识别网络设备本身
IP地址是居住地

2 ARP协议的作用,地址解析的过程

img_2552e9c2019405f58c5ee4f051eaa86f.png
ARP协议作用

将主机的IP地址解析为相应的链路层的MAC地址

  • 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用MAC地址
  • 每一个主机都设有一个 ARP 高速缓存,里面有所在的局域网上的各主机和路由器的 IP 地址到MAC地址的映射表
  • 当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址.如有,就可查出其对应的MAC地址,再将此MAC地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此MAC地址.


    img_354ff6d0cbf5f3b19fa804fd2ed521cf.png

ARP 高速缓存的作用

  • 为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组
  • 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。

3 IP地址的分类,每类地址的范围,给定IP地址能够判断属于哪一类

3.1 分类

每一类地址都由两个固定长度的字段组成

  • 其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,
  • 而另一个字段则是主机号 host-id,它标志该主机(或路由器)

两级的 IP 地址可以记为:
IP 地址 ::= { <网络号>, <主机号>}


img_62f561c34213bf6cbaee016ae916a884.png
IP 地址中的网络号字段和主机号字段
img_35c273e31c9a9e95e43fe4836954b021.png
点分十进制记法

3.2 范围

img_0cf9da05b79136e7d0954d8cc83548c3.png
常用的三种类别的IP 地址的使用范围

4 IP数据报分片

4.1 数据报格式

  • 一个 IP 数据报由首部和数据两部分组成
  • 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的
  • 在首部固定部分的后面是可选字段,长度可变


    img_8d594a2f4d2cbbe1edfbf1f7219693bd.png
img_85852251cf6f68d4a383e31b4b79ae71.png
  • 版本——占 4 位,指 IP 协议的版本,目前的 IP 协议版本号为 4 (即 IPv4)
  • 首部长度——占 4 位,可表示的最大数值,是 15 个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是 60 字节
  • 区分服务——占 8 位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过。1998 年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段
  • 总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU
img_25e0186c07a3bf9cdeb5b704e98a2918.png
最大传送单元 MTU
img_6e8f42d85fbcc9a71bc590e223e676cf.png
IP 数据报分片
  • 生存时间(8 位)记为 TTL (Time To Live)数据报在网络中可通过的路由器数的最大值
  • 协议(8 位)字段指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给哪个处理过程


    img_713aa5fe4dac6eb700d39f91bd6189fc.png
    协议字段作用
  • 首部检验和(16 位)字段只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法


    img_0661f6bfa9787e6133bc3c7d2066fd14.png
    image.png
  • 源地址和目的地址都各占 4 字节

4.2 IP分片(重点)与重组

大IP分组向较小MTU链路转发时,可以被“分片” (fragmented)

  • 1个IP分组分为多片IP分组
  • IP分片到达目的主机后进行“重组” (reassembled)

IP首部的相关字段用于标识分片以及确定分片的相对顺序

  • 总长度
  • 标识(identification)字段占 16 位:标识一个IP分组
    IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识
  • 标志位(flag)字段占 3 位,目前只有前两位有意义
    MF (More Fragment)
    DF (Don't Fragment)


    img_351aaf998e26dbcf9f2103e24e1b4631.png
  • 片偏移(13 位)指出:一个IP分组分片封装原IP分组数据的相对偏移量
    • 片偏移字段以8字节为单位

IP分片过程

假设原IP分组总长度为L,待转发链路的MTU为M
若L>M,且DF=0,则需分片
分片时每个分片的标识复制原IP分组的标识
通常分片时,除最后一分片,其他分片均分为MTU允许的最大分片

  • 一个最大分片可封装的数据应该是8的倍数,因此,一个
    最大分片可封装的数据为:


    img_14184f36d743809e06763275b0445e48.png
    image.png

需要的总片数为:


img_cdcea60abc045944a2a718e8d73cae36.png
image.png

img_26216e1d3318181b1cfbd37ede83fcee.png
image.png

img_5bbcd87bcf83ec0677f97d00e4427927.png
image.png

IP编址

IP编址(addressing)

  • IP分组:
    • 源地址(SA)-从哪儿来
    • 目的地址(DA)-到哪儿去
  • 接口(interface): 主机/路由器与物理链路的连接
    • 实现网络层功能
    • 路由器通常有多个接口
    • 主机通常只有一个或两个接口 (e.g.,有线的以太网接口,无线的802.11接口)


      img_585d479742a9abf12aed511b118fda57.png
  • IP地址: 32比特(IPv4)编号标识主机、路由器的接口
  • IP地址与每个接口关联
  • 怎样为接口分配IP地址呢?


    img_e144f36cb7427e1bfa6f19f7e4116bc1.png

IP子网(Subnets)

  • IP地址:
    • 网络号(NetID) – 高位比特
    • 主机号(HostID) – 低位比特


      img_c1ed646b5c9ddca9c1aa613e6ce4409d.png
      image.png
  • IP子网:
    • IP地址具有相同网络号的设
      备接口
    • 不跨越路由器(第三及以上层网络设备)可以彼此物理联通的接口


      img_f0fb1098517c0af860f33308addf57f5.png
      image.png

      img_041ad8ca063b4ff59d468a38a3f8984c.png
      image.png

有类IP地址

IP地址(Addresses)

img_61e823914c31594d71ab0b3d0bc8ad1e.png
image.png

特殊IP地址

img_7aea46a50a7d02b5c492a706edc3064a.png
image.png

私有(Private)IP地址

img_a767b1e4b63dfaf9ad1a679a8f8b07b2.png
image.png

5 IP子网划分与子网掩码(重点)

子网划分(Subnetting)?

如何区分一个IP子网更小范围网络(子网)?

  • 子网划分


    img_77284320352e847f4a6cdeb4a286e435.png
  • IP地址:
    • 网络号(NetID) – 高位比特
    • 子网号(SubID) – 原网络主机号部分比特
    • 主机号(HostID) – 低位比特


      img_5a9b617457b7e2fa9f254f26f504f6b5.png

子网掩码

img_9687c0f66b8702198462df90352ca189.png
image.png

子网划分

img_acda6fab90814dc93da2b21279f65674.png
image.png

子网掩码的应用

img_f62a3af1d16e7b9591a23a130a1f65b2.png
image.png

img_8ffbb294d53b144d41092b917674aa97.png
image.png

5.1 从两级 IP 地址到三级 IP 地址

在 ARPANET 的早期,IP 地址的设计确实不够合理。

  • IP 地址空间的利用率有时很低。
  • 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
  • 两级的 IP 地址不够灵活
  • 从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。这种做法叫作划分子网(subnetting) 。划分子网已成为因特网的正式标准协议。

5.2 基本思路

  • 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
  • 从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。
    IP地址 ::= {<网络号>, <子网号>, <主机号>}
  • 凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。
  • 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。
  • 最后就将 IP 数据报直接交付目的主机。


    img_59c9472bae8155d3a3a0f55f1273383c.png
    一个未划分子网的 B 类网络145.13.0.0

    img_c5e3200a1b16c3d5b359722e657577f4.png
    划分为三个子网后对外仍是一个网络

5.3 划分子网后变成了三级结构

  • 当没有划分子网时,IP 地址是两级结构。
  • 划分子网后 IP 地址就变成了三级结构。
  • 划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id

5.4 子网掩码(subnet mask)

从一个 IP 数据报的首部并无法判断源/目的主机所连接的网络是否进行了子网划分,使用子网掩码可以找出 IP 地址中的子网部分


img_c36c04a967c8a040c0d2a80fb20bf50b.png
IP 地址的各字段和子网掩码

img_5a1dac33e9bedc3e7bd15e018389f475.png
(IP 地址) AND (子网掩码) =�网络地址

img_541423dc0be6496234b298a6ede61ce1.png
默认子网掩码
  • 子网掩码是一个网络或一个子网的重要属性
  • 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器
  • 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码
  • 若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码


    img_de76b01c5bedfde46ab69d569288ec4a.png
    IP 地址141.14.72.24,子网掩码255.255.192.0求网络地址

    img_60068a9e3f6410795041321a02ab2b68.png
    在上例中,子网掩码改为255.255.224.0求网络地址

    不同的子网掩码得出相同的网络地址。
    但不同的掩码的效果是不同的

6 CIDR与路由聚合

img_ee21c1d0142760e5a199d12095862e96.png
CIDR

img_4181af64ac34f4877fb9ee28d6d8fabc.png
CIDR与路由聚合

img_f922e824ec11fa4e0446a1d7ceb841cf.png
路由聚合-上

img_6d0ff41c2096892c1edab4ea08ea5cc0.png
路由聚合-下

img_069c4bbb3bbb898ad5cf4832bba6157f.png
路由聚合

img_c05a1eeb8c2d8045f80956bfeccff933.png
路由聚合

地址聚合,给出一个地址,能够知道其所在地址块,并会计算地址块中地址的个数,最大最小地址;给出一个地址块,能够合理划分子网

DHCP协议

img_0d5461b69a410b090da0beb00b880053.png
如何获得IP地址?-上

img_563aef74f872952f4a711227c5429eb0.png
如何获得IP地址?-下

img_49eec80dacbbb74f0ed0b1c957384ef5.png
动态主机配置协议(DHCP)

img_c90960b5ee0247048a42215b99f4e953.png
DHCP工作过程示例-一

img_b12b5e6ccaeac78692cc8ceb06d94fd3.png
DHCP工作过程示例-二

img_a0d97282977d8a9d096ba26cc90e9d62.png
DHCP工作过程示例-三

网络地址转换(NAT)

img_b492f5757a8a5c87c16ffb163386ec35.png
网络地址转换

img_ab16dd7dc2952f337f0d3afba9e6de14.png
image.png

img_158d2ee8e132f27f2f03ea8c9e5cb08c.png
image.png

img_f6796a30ebb12772c45c75b55e9a212b.png
image.png

img_b4b19a2ba902d6502132242de9becf20.png
image.png

img_2b66df5e23be24f0be629acdf718f046.png
NAT穿透问题

img_f6f905285206d9ca55144c12d2d8d361.png
NAT穿透问题

img_e6055a9afa4cfcc1c50acbd0f5c65c3a.png
NAT穿透问题

7 理解RIP(Routing Information Protocol)及路由表更新过程(重点)

7.1 原理

  • 路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。
  • RIP 是一种分布式的基于距离向量的路由选择协议,优点是简单。
  • RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录

7.2 “距离”的定义

  • 从一路由器到直接连接的网络的距离定义为 1。
  • 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
  • RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
  • 这里的“距离”实际上指的是“最短距离”


    img_34d7da37a6ad769d43b8102f3a9834f7.png
    image.png
  • RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”
  • RIP 允许一条路径最多只能包含 15 个路由器。因此“距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网
  • RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由

7.3 RIP 协议的三个要点

  • 仅和相邻路由器交换信息。
  • 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
  • 按固定的时间间隔交换路由信息,例如,每隔 30 秒

7.4 路由表的建立

  • 路由器在刚刚开始工作时,只知道到直连的网络的距离(此距离定义为1)
  • 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息
  • 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址
  • RIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程

7.5 距离向量算法

收到相邻路由器(其地址为 X)的一个 RIP 报文

  • (1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1
  • (2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
    若项目中的目的网络不在路由表中,则把该项目加到路由表中。
    else if若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目。
    else if若收到项目中的距离小于路由表中的距离,则进行更新
    else什么也不做
  • (3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(16表示不可达)
  • (4) 返回


    img_0b2ab77be0e7b8014987d09f5c86bb94.png
    距离向量算法(例)

7.6 路由器之间交换信息

  • RIP协议让一个自治系统中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)
  • 虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不同,它们的路由表当然也应当是不同的

8 路由器的结构

  • 路由器是一种具有多个输入/出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器
  • 下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止


    img_a7f8570e55ae648ad3e20e4907116c9f.png
    典型的路由器的结构

“转发”和“路由选择”�的区别

  • “转发”(forwarding)就是路由器根据转发表将收到的 IP 数据报从合适的端口转发出去。
  • “路由选择”(routing)则是按照分布式路由算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,构造出整个路由表。
  • 路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
  • 在讨论路由选择的原理时,往往不去区分转发表和路由表的区别

9 IP多播需要哪两种协议

  • 网际组管理协议 IGMP (Internet Group Management Protocol)
    为了使路由器知道多播组成员的信息
  • 多播路由选择协议
    连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
2月前
|
监控 网络协议 安全
|
4月前
|
网络协议 网络安全 网络性能优化
【计算机网络概述】第一章:概论 1.2什么是网络边缘
【计算机网络概述】第一章:概论 1.2什么是网络边缘
|
2月前
|
存储 网络协议 安全
计算机网络-网络层
计算机网络-网络层
|
2月前
|
网络协议 Java 关系型数据库
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
73 2
|
2月前
|
安全 网络协议 网络安全
|
4月前
|
网络协议 Apache 网络架构
计算机网络学习记录 网络的大概认识 Day1(下)
计算机网络学习记录 网络的大概认识 Day1(下)
27 2
|
4月前
|
存储 数据处理 网络架构
计算机网络学习记录 网络的大概认识 Day1(上)
计算机网络学习记录 网络的大概认识 Day1(上)
25 1
|
4月前
|
网络协议 安全 API
计算机网络——基本概念(计算机网络,Internet,网络协议)
计算机网络——基本概念(计算机网络,Internet,网络协议)
73 2
|
3月前
|
网络协议 数据安全/隐私保护 网络架构
计算机网络基础概念与网络通信原理
计算机网络基础概念与网络通信原理
下一篇
无影云桌面