韩立刚计算机网络——第四章:网络层

Posted 想文艺一点的程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了韩立刚计算机网络——第四章:网络层相关的知识,希望对你有一定的参考价值。


提示:这一章内容非常多。
在思科网络工程认证当中,这一章被分为四部分:

  • IP地址
  • 子网划分
  • 静态路由、动态路由
  • 网络地址转换(NAT)、VPN

指引:
网络层提供的两种服务
网际协议IP
网际控制报文协议ICMP
因特网的路由选择协议
IP多播
虚拟专用网VPN和网络地址转换NAT

1、网络层提供的两种服务

思考:可靠交付交给谁来负责? 网络还是端系统?

举例:网上购物的可靠交付由谁来负责?
1、商家下单之后,交给快递之后,商家就不管了。过几天我们没有拿到,或者拿到的东西坏了。然后我们找厂家。
2、这个过程中,快递公司是不管东西好坏的,直接运输的。
3、可靠交付交给 端系统,就是用户和商家
4、如果交给 快递公司 的话,每一站快递都得拆开看看到底有没有错误。(这样效率会很低)

同理:我们在互联网上面,我们将可靠交付 交给端系统,网络不管这个事情,网络只管发送

在这里插入图片描述
虚电路服务

  • 网络管理员,需要提前配置一条线路。
  • 如果当中有一个路由器坏了,那么传输就会被打断。因为网络管理员,不能提前设置另外的线路。
  • 虚电路服务,理论上来说可以不写地址,因为已经固定好了2个通信端

在这里插入图片描述

数据报服务:目前网络当中就是采用这种模式

在这里插入图片描述

  • 数据包当中要包含IP地址、MAC地址。
  • 我们并不能知道数据包走哪一条路,而是交给路由器自己选择
  • 每个数据包的路线可能都不相同
  • 数据包的接收顺序,并不一定是按照发送的数据过来的。(每个数据包有编号
    在这里插入图片描述

虚电路与数据包服务比较:
在这里插入图片描述

2、国际协议 IP

网络互联的设备

分层设备作用
物理层转发器以太网的范围不应该大于 100米,但是增加一个 Hub,距离就可以扩大为 200米。
数据链路层网桥或交换机
网络层路由器
网络层以上网关一般用本网段的第一个地址,位于路由器的某个端口

数据的发送过程:
电脑网卡 ——> 路由器网关 ——> 路由器转发 ——> 互联网

  • 计算机想要访问其他网段地址,先将数据交给网关,再有网关进行转发。
  • 如果我们没有设置网关,我们的数据就发送不出去,只能访问本网段的计算机

在这里插入图片描述
网络层要解决的问题:
主机怎么找到第一个路由器、
第一个路由器怎么找到第二个路由器、
在这里插入图片描述
互联网与虚拟互联网:

  • 互联网:当中其实非常复杂。
  • 虚拟互联网:将互联网当中的细节进行屏蔽,只要有 IP 地址就够了。
    在这里插入图片描述

(1)网络层协议

网络层有四个协议

  • IP协议
  • ARP、RARP协议 :解析 MAC 地址
  • ICMP协议:报告网络故障的协议。(超时?不可到达?)
  • IGMP协议:
    在这里插入图片描述

在这里插入图片描述
注意:可以看出 ARP 协议的地位相对低一点, IPv4 协议也要依靠 ARP 来进行实现。

(2)IP 地址

在设置 IPv4 的协议,并没有想到互联网可以发展这么快,所以将 IPv4 设置为 32位,怎么也想不到可以将这 32 位用完。

在这里插入图片描述
分析

  • 路由器根本不用关心数据到哪个具体的地址,只需要关心到哪个网段的路由器

IP地址的分类
在这里插入图片描述
由上图可以看出IP地址由两部分组成,即网络地址主机地址,二者是主从关系。

  • 网络地址表示其属于互联网的哪一个网络
  • 主机地址表示其属于该网络中的哪一台主机

A类地址、B类地址、C类地址,都有自己固定的开头

在这里插入图片描述
分析:

  • A类地址:当中能用的是 1-126127.0.0.1 :作为本地回环测试。
    (ping 127.0.0.1 的时候,其实就是在 ping 本主机的IP)
    在这里插入图片描述

子网掩码的作用:

  • 子网掩码(subnet mask) 又叫网络掩码、地址掩码,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网。
  • 子网掩码不能单独存在,它必须结合IP地址一起使用。

在这里插入图片描述

(3)子网划分

比如一个地区只有 5 台计算机,我不可能给它分一个可以包含 254 个主机的 C 类地址,太浪费了

如何实现:将原来的主机号,分出一部分用作子网号
在这里插入图片描述


例题1:某主机IP地址为 210.33. 5.68 ,子网掩码为255. 255. 255.128。求其网段地址?

解析:将IP地址与子网掩码直接相与即可

  • 要清楚255是八个一,所以与其相与一定是它本身,也就是 210.33.5 是不变的
  • 只需要看68的二进制与128的二进制即可

在这里插入图片描述


例题2:某A类网络 20. 0. 0. 0 的子网掩码为 255.224. 0. 0 ,请确定可以划分的子网个数,写出每个子网的子网号。

解析:因为是A类网络,子网掩码默认为255.0.0.0

  • 所以多出来的224就是子网号,也就是11100000
  • 子网号就是占了前三个号,2的3次方,也就是八个子网个数
  • 至于每个的子网号,

000 00000
001 00000
010 00000

  • 可使用的主机号:本子网当中,除去主机号全0 (子网地址),主机号全 1 (广播地址),之外都可以作为主机号。

000 00000 :子网地址
000 11111 :本子网的广播地址。
在这两个之间的 IP 地址都可以用。

在这里插入图片描述


例题3:将某C网 200. 161. 30. 0 划分成4个子网,请计算出每个子网的有效的主机IP地址范围对应的子网掩码

解析:4个子网,需要2个bit 位来进行区分。

  • C网的默认子网掩码为 255.255.255.0,加上四个子网之后就是:255,255,255,192(11 000000)
  • 有效主机 IP 范围:排除 0 和 1 的主机地址。
    在这里插入图片描述

例题4:某公司申请到的网络地址为 192. 3.2.0 ,现要划分5个子公司,最大的一个子公司有28台计算机,每个子公司在一个子网中,则
(1)子网掩码应为多少?
(2) 5个子公司的网络地址分别是什么?

分析:

  • 子网号:要划分 5 个子公司,所以最少需要 3 位bit,用作子网号。(3bit 最多可以分 8 个子网)
  • 主机号:最大的一个子公司有28台计算机, 最少需要 5个bit 用作主机号。(5bit最多放 32 个主机)
    在这里插入图片描述

(4)IP 地址和 MAC 地址

提问:既然每个网卡的 MAC 地址是唯一的,那么我们直接使用 MAC 用来标识就好了,为什么还需要 IP 地址呢?
在这里插入图片描述

计算机 A 和计算机B 通信过程当中:

  • IP地址是不发生变化的MAC 地址在转发当中就会发生变化
  • 计算机 A 给计算机 B 发送数据的时候,进行与操作,发现不是自己网段的数据,所以要将数据发给路由器
  • 第一个阶段,数据帧添加的MAC 地址是下一个路由器的MAC地址,不是计算机B的MAC 地址。

(5)ARP 和 RARP 协议

在这里插入图片描述

ARP协议 :负责将 IP 地址 解析成MAC地址
解析原理:依靠广播 ,所以对于网络传输来说,广播是不可避免的。

ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

  • 在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址
  • 在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。
  • 但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。
  • 所谓“地址解析”就是主机在发送帧前,将目标IP地址转换成目标MAC地址的过程。

ARP 欺骗的应用
在这里插入图片描述
在这里插入图片描述
所以主机1 就可以实现网速分配的效果

总结:
1、当访问外网段IP地址的时候,我们主机这时候需要添加本网关的MAC 地址
2、本网关的MAC 地址:就是本网段路由器,当中的一个端口的MAC地址
3、网关的MAC地址,即可以有路由器自动返回,也可以由用户自己设定,也可以被本网段的其他计算机发送。


(6) IP 数据报格式

数据在传输过程中的一步一分封装
在这里插入图片描述

我们现在分析网络层前面加的东西(叫做 IP数据报)。

一个IP数据报由 首部数据两部分组成。

  • 首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的
  • 在首部的固定部分的后面是一些可选字段,其长度是可变的。

在这里插入图片描述

位置名称作用
0-3bit版本区别当前IP协议是 IPv4 还是IPv6
4-7bit首部长度因为首部有一部分是可以变化的,所以在这里要明确标注长度
8-15bit区分服务标记数据包的优先级,哪一个先传输。(下面会补充)
16-31bit总长度总长度指首部和数据之和的长度,单位为字节。(最大长度为2^16-1=65535字节)
32-47bit标识IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。
48-50bit标志占3位,但只有2位有意义,告诉数据包是否需要分片?
50-63bit片偏移表示分片之后,各个数据包的偏移值(下面会有补充)
64-71bit生存时间不同操作系统的默认 TTL值 不同 (下面会有补充)
72-79bit协议标明数据内容当中的上层协议是什么 (下面会有补充)
80-95bit首部校验和验证数据报首部是否完整 ,担心传输过程当中消失
源地址发送端的IP地址
目的地址接收端的IP地址
可变部分用来支持排错、测量以及安全等措施

(1)怎么理解数据包的优先级?
我们在 QQ 视频的同时,对方同时给我们传递文件,此时视频的数据包就比传文件的数据包重要

(2)数据包分片:
以太网的数据一般来说都是 1500字节以下,有的计算机发包的时候,发送了 3800 个字节。此时路由器看到这些大包就没有办法处理了,这时候这些路由器将这些大包进行分片

  • 每片小包重新添加首部
  • 片偏移只有在数据包进行分片之后才会不为0。
    在这里插入图片描述
    (3)生存时间:
    我们的计算机发送一个数据包之后,都会给他一个 TTL 值,数据包经过一个路由器,TTL 就会减一。如果 TTL 减到0,这个数据包就停止传输,直接丢弃。

为什么要设置生存时间呢?
如果没有生存时间,如果我们网络一直不断电,这个数据包就一直不会消失,就会一直消耗我们的带宽
在这里插入图片描述
(4)协议号:(可以搜索协议号大全)
在这里插入图片描述


使用抓包工具来分析,抓到的数据:

  • 数据链路层:目标MAC地址, 源MAC地址, 网络层协议类型

在这里插入图片描述

  • 网络层:(上面表格当中我们有进行分析过)
    在这里插入图片描述
    版本:IPv4
    首部长度:20字节
    区分服务:优先级为0
    数据包总长度:1054
    标识计数器 22555, 下一个数据包就会是 22556.
    分片标记:没有分片
    TTL :128
    协议:传输层使用TCP 协议
    校验和:correct ,正确
    源地址:
    目的地址:

(4)IP转发分组流程(最重要)

需要了解的几个问题:

1、什么叫做 IP 转发? (什么叫做数据路由)
答:路由器在不同网段转发数据包。 跨越网段通讯的都是路由。

2、网络畅通的条件是什么?数据包能去能回的条件是什么?
答:沿途的路由器传输的时候,必须知道到,数据包到接收端需要给哪个接口返回发送端又需要给哪一个接口

分析下面的案例:
在这里插入图片描述

1、这个图里面有几个网段?
答:有五个:192.168.0172.16.0172.16.1172.16.2192.168.1

2、各个路由器知道什么?
答:路由器 A ,知道 192.168.0172.16.0 在哪两个端口,但是他不知道 192.168.0192.168.1 在哪两个端口。


a、静态路由

解决办法:添加静态路由,即给路由器指定不同IP地址需要发送的端口。

3、那么对于 0 号路由器来说,如果遇到 192.168.1 ,到底该走哪一个接口呢?
答:人为的添加路由表,对于 A 路由器来说,我们要告诉它 172.16.1172.16.2192.168.1 遇到这三个网段的 IP ,都要送给 B 这个接口。

4、同理对于 1 号路由器来说,需要分配什么样的路由表呢?
答:192.168.0 给 C 端口, 172.16.2192.168.1 给 E 接口。


b、动态路由协议

RIP 协议:互联网上最早的动态路由协议。它的工作特点

  • 周期性将自己知道的网段信息,广播给各个路由器,告诉相邻的路由器自己连着哪些网段
  • 每隔 30 s 广播一次。
  • 最多是16 跳

分析:路由器为什么要周期性的要进行广播?
假设在工作当中,当中有一个路由器坏了,如果只广播一次,那就完了,就不能通信了。
周期性的广播,如果有路由器坏掉的话,我们就可以选择其他路线来进行传输


OSPF :内部网关协议 0SPF (Open Shortest Path First)

1、向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法
2、发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
3、只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。


外部网关协议BGP:
1、BGP是不同自治系统的路由器之间交换路由信息的协议,BGP 较新版本是BGP -4。
2、边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
3、每一个自治系统的管理员要选择至少-个路由器作为该自治系统的“BGP发言人”。


3、网际控制报文协议 ICMP

在这里插入图片描述
为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP (Internet Control Message Protocol)。

  • ICMP作用:探测网络有没有故障。
  • ICMP不是高层协议,而是IP层的协议
  • ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。

ICMP 协议的报文格式:
在这里插入图片描述
在这里插入图片描述

类型:标识生成的错误报文,它是ICMP报文中的第一个字段;
代码:进一步地限定生成ICMP报文。该字段用来查找产生错误的原因;
校验和:存储了ICMP所使用的校验和值。

名称作用
类型有询问报文、和差错报文
代码该字段用来查找产生错误的原因
校验和存储了ICMP所使用的校验和值。

上面这个三个字段,每种类型的 ICMP 报文都有,下面的有的类型有,有的类型没有(与第一个字段的类型有关

(1)ICMP 报文类型:
询问报文:回送请求(ping命令)和回答报文、时间戳请求和回答报文。
差错报文:(报告错误的报文)终点不可到达、源点抑制、时间超过、参数问题、改变路由。
在这里插入图片描述
ping 命令的过程:
(1)A 给 B 发送的时候是,询问报文
(2)B 给 A 返回的时候是,差错报文
在这里插入图片描述

pathping 命令,可以检测到数据包到哪里断了。
不仅可以显示在哪里断了,还可以显示每个网段的丢包率。
在这里插入图片描述

看视频一卡一卡的,其实就是有数据包丢失了。 通过 pathping 可以分析出哪里丢包比较多。
在这里插入图片描述


4、IP 多播、组播(IGMP)

IP 多播又叫做IP 组播
目的:为了更好的支持一对多的通信,一个地方发送数据,可以有肯多地方接收数据

回顾数据链路层学过的:

模式作用
单播一对一
多播一对多
广播一对全体

多播采用的背景是什么呢?
有 90 个用户,有一个视频服务器,这个视频服务器给这 90 个用户发送数据。

  • 如果采用单播:这个视频服务器就得将这个视频,发送90次,带宽会很高。
  • 采用多播,会有一个多播路由器 ,服务器将数据发给多播路由器,路由器再进行转发。这样带宽就降成了1分。

在这里插入图片描述

(1)多播IP地址

首先它是一个 D 类地址。他只能用作目的地址,不能用作源地址。
在这里插入图片描述

(2)多播数据报

在这里插入图片描述

(3)硬件组播

在这里插入图片描述
我们软件组播,最后都要转化为硬件组播
在这里插入图片描述

(4)IGMP 协议

在这里插入图片描述
在这里插入图片描述


5、VPN 技术

VPN :虚拟专用网络(virtual private network)
在这里插入图片描述

为了弥补IPV4地址日益枯竭的矛盾,在A、B、C类地址中专门划出一小块地址,作为全世界各地建设局域网使用,这些划出来专门作为局域网内网使用的IP地址称为私有网络地址(或称为私网地址,内网地址)。

一般为学校、政府单位 使用私网 IP 。

私网地址不能在公网上出现只能用在内部网路中,所有路由器都不能发送目标地址为私网地址的数据报。

标准规定的私网地址有:
A类私网地址:10.0.0.0~10.255.255.255
B类私网地址:172.16.0.0~172.31.255.255
C类私网地址:192.168.0.0~192.168.255.255

举例情况:学校的服务器是一个私网 IP ,我们不使用校园网不可以进行访问。如果我们回家了,不能使用校园网,但是这时候想要访问学校的服务器,该怎么办?
在这里插入图片描述

用户想要直接访问内网服务器,这是不可能通的。 但是中间添加了一个服务器
步骤:
(1)将目标IP地址,和伪造的源IP地址,作为数据包的一部分。
(2)在帧头当中,目的地址换为一个公网的IP地址。
(3)在经过 RAS 服务器的时候,将前一步的源IP 和 目标IP 去掉。
(4)这时候外网 IP 被伪造成一个内网IP。


vpn 的另外一种用途:
1、在中国我们有一些网址是不能访问的,(我们暂且将这些网址看作是内网),但是这些网址在美国可以进行访问。
2、我们在美国搭建一个中国可以访问的服务器, 然后我们先去访问这个服务器,然后这个服务器做 vpn 操作。
3、就相当于是美国的服务器在访问这个网址。


比如:如家酒店的账户信息需要进行交互,但是如家酒店遍布全球各地,这时候通过 VPN 技术,就可以将各个城市的局域网连起来。
在这里插入图片描述
在这里插入图片描述


6、NAT 技术

网络地址转换NAT (Network Address Translation)

C类私网地址:192.168.0.0~192.168.255.255, 我们宿舍的ip网段为 192.168.1.0 ,也是一个私网地址

所以一开始,互联网上面是找不到我们宿舍的 私网地址的。找不到就不能上网。
有一个服务器,会将我们私网地址,替换为公网地址。

在这里插入图片描述

在这里插入图片描述
举例:比如我们在互联网上面发了一个帖子,公安局可以找到 100.81.64.1 这个公网地址,然后就可以找到是在我们学校,但是要想找到是哪个学生发的,那就不太好找了。

有个问题:我们所有在学校的电脑都被替换成了100.81.64.1,服务器给我们进行返回数据的时候,也是返回给这个 100.81.64.1 这个地址。那么这个地址如何区分到底转发给哪台计算机呢?

100.81.64.1 这个服务器,通过端口号,来进行区分是哪一台计算机发送的信息。


(1)NAT和PAT 的区别

NAT
  192.168.0.2:4444 ----〉202.116.100.5:4444
  192.168.0.3:5555 ----〉202.116.100.6:5555
  192.168.0.10:1233 —〉202.116.100.5:1233
PAT
  192.168.0.2:4444 ----〉202.116.100.5:50003
  192.168.0.3:5555----〉202.116.100.5:50004
  192.168.0.10:1233 —〉202.116.100.5:50005
  简单来说,PAT:多对1,nat:多对多

在这里插入图片描述

(2)NAT 端口映射

NAT 端口映射和NAT 穿透的区别:

1、NAT:网络地址转换方法

2、端口映射:NAT的一种外网主机的IP地址的端口映射到内部网络中的机器上,以提供相应的服务。

以上是关于韩立刚计算机网络——第四章:网络层的主要内容,如果未能解决你的问题,请参考以下文章

韩立刚计算机网络——第三章:数据链路层

韩立刚计算机网络——第八章:无线网络

韩立刚计算机网络——第五章:应用层

韩立刚计算机网络——第七章:Internet 上面的音频和视频

团购巨划算韩立刚老师门徒级学习专题,只此一次的超大优惠福利

韩立刚17年学习资料399元一网打尽