【小白入计网】第一章_计算机网络概述
【计算机网络】第二章_物理层(基本概念轻松拿下!)
【计算机网络】第三章_数据链路层(五千字详细易懂!)【计算机网络】第五章_运输层(详解TCP)
【计算机网络】第六章_应用层
以上都是计网学习过程中做的其他几个章节笔记,传送门放这里啦!!
文章目录
学习参考视频:计算机网络微课堂-湖科大
第四章 网络层
4.1 网络层概述
网络层是OSI参考模型中的第三层,介于传输层和数据链路层之间,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务。
网络层的目的是实现两个端系统之间的数据透明技术,具体功能包括寻址和路由选择等。他提供的服务使传输层不需要了解网络中的数据传输和交换技术。
4.2 网络层提供的两种服务
-
面向连接的虚电路服务
简单来说就是发送分组前,通信双方建立网络层的连接(虚电路),通信时双方沿着已经建立好的虚电路发送分组。
注意:目的主机的地址只在建立连接时使用,后来传输时每个分组的首部只需携带一个虚电路编号即可。
-
无连接的数据报服务
无需建立连接,每个分组可以走不同的路径,但可靠传输由双方主机保证,分组首部必须携带目的地址。
TCP/IP参考模型的网络层就是提供的无连接的不可靠传输服务。
4.3 IPv4地址及其应用
4.3.1 IPv4地址概述
IPv4地址就是给因特网上的每一台主机的每一个接口分配在全世界范围内的唯一的32比特的标识符。
-
我们平时所见的IP地址是以下这种形式:
10.159.182.102
这种形式叫点分十进制表示,更方便人们阅读。00001010 10011111 10110110 01100110
这种形式为二进制表示,应用在计算机中。 -
下面三个小节是IPv4编址的三个历史阶段。
4.3.2 分类编址的IPv4地址
- 地址分以下几类
-
A、B、C类网络可以分配给网络中的主机和路由器的各接口
-
主机号全为
0
代表该网络地址,主机号全为1
代表该网络地址,不能分配给其他主机 -
最小网络号为0,但保留不使用
按照以上规则来计算
- 第一个A类网络号为
1.0.0.0
- 第一个A类网络的第一个主机是
1.0.0.1
- 一个A类网可以分配给主机的地址由 2 24 − 2 2^{24}-2 224−2
- 第一个A类网络号为
4.3.3 划分子网的IPv4地址
我们一个路由器肯定不止只连接一个网络,如果还要扩展网络,又不想申请新的网络号该怎么办呢?
这时就用到我们的子网掩码了:
-
32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号
- 使用1来对应网络号的子网号,使用0来对应主机号
举例如下:
目前有网络号如下:
00001010 00000000 00000000 00000000
<–网络号现将这一个网络分为两个网络,需要用到子网掩码:
11111111 10000000 00000000 00000000
<–子网掩码如下就分配完成了网络1和网络2:
00001010 00000000 00000000 00000000
<–网络100001010 10000000 00000000 00000000
<–网络2
4.3.4 无分类编址的IPv4地址
划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因其地址空间太小并没有得到充分使用,而因特网的地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。
因此,发布了无分类域间路由选择CIDR
-
CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念;
-
CIDR可以更加有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前允许因特网的规模继续增加。
4.3.5 IPv4地址的应用规划
-
定长的子网掩码FLSM
- 使用同一个子网掩码来划分子网
- 每个子网所分配的IP地址数量相同,很容易造成Ip地址的浪费
-
变长的子网掩码VLSM
- 使用不同的子网掩码来划分子网
- 每个子网所分配的Ip地址数量可以不同,尽可能减少对Ip地址的浪费
举例
假如说现在我们有申请到的C类网络号:
218.75.230.0
,现在要求给使用子网掩码给以下网络中各设备分配Ip地址有两种办法:
- 使用定长掩码
-
使用变长掩码
一经比对后是否发现变长掩码避免了一部分地址的浪费
4.4 IP数据报的发送和转发过程
在介绍这两个过程之前,先说明路由器中也有和交换机的交换表类似的,称作路由表。这个路由表我们现在只需要知道他存在就好了,关于是怎么形成的,之后会解释。
IP数据报的发送和转发分为以下两个部分:
-
主机发送数据报
如上图A->B发送数据报,在一个网络中传输,如何判断在一个网络中传输?
主机IP地址和子网掩码在二进制的情况下做与运算,结果发现为网络地址,这样就迎刃而解了,然后交给交换机转发
-
路由器转发数据报
如上图A->D发送数据包,不在一个网络中传输,如何交给路由器处理呢?
在我们的ip配置中发现有一个默认网关,它对应这个网络中的路由器接口,也就是通过这个路由器进行转发。此路由器经过检查IP数据报首部有无出错和查找对应路由表进行转发,如果有错或路由表中不存在目的地址,则就丢弃。
4.5 静态路由配置及其可能产生的路由环路问题
静态路由配置就是人工配置路由器的路由表。这种方式虽然简单开销小,但是只适用于小规模的网络中而且也不灵活。
-
配置错误
-
聚合了不存在的网络
-
网络故障
当配置时出现以上问题,会导致出现路由环路这种问题。
若给路由器的各接口正确配置IP地址和子网掩码,在不启用任何路由选择协议的情况下,路由器可以自动得出到达各直连网络的路由。
4.6 路由选择协议
4.6.1 路由选择协议概述
当两台非直接连接的计算机需要经过几个网络通信时,通常就需要路由器。路由器提供一种方法来开辟通过一个网状联结的路径。这种网状网络提供了冗余路径以调整通信负载或倒行链路,通常有一条路径由于费用、速度或避开拥挤等理由优选于其它路径。
路由选择协议的任务是,为路由器提供他们建立通过网状网络最佳路径所需要的相互共享的路由信息。
路由选择协议按类型来划分,分为两类:
-
静态路由选择
由人工配置的网络路由、默认路由、特定主机路由、黑洞路由等都属于静态路由;
这种人工配置方式简单、开销小,但不能及时适应网络状态(流量、拓扑等)的变化;
一般只在小规模网络中采用。
-
动态路由选择
路由器通过路由选择协议自动获取路由信息;
比较复杂、开销比较大。能较好的适应网络状态的变化;
使用于大规模网络。
如果按照如下图(分层次)所示来划分
可分为以下几种协议:
4.6.2 路由信息协议RIP的基本工作原理
路由信息选择协议RIP是内部网关协议IGP最先得到广泛使用的协议之一。
RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由,专业来讲就是跳数(Hop Count)来衡量到达目的网络的距离。
使用RIP协议的路由器,工作流程如下:
-
路由器刚开始工作时,只知道直连路由器(距离为1)的信息。
-
然后各个路由器之间周期性的交换路由表中的信息,交换详情如下:
-
经过若干次交换后,每个路由器都知道本AS内各网络的最短距离和下一跳地址称为收敛。
这里需要注意的是
-
当路由器表发生变化时就立即发送更新报文,而不仅是周期发送
-
为了避免路由环路,RIP设置了最大路径距离15,如果距离
=16
表明不可达 -
在路由器转发IP数据报时,每一次转发跳数都会
+1
,到16会被丢弃
所以RIP不适用于大型网络。
4.6.3 开放最短路径优先OSPF的基本工作原理
为克服RIP的缺点,在1989年开发出来了开放最短路径优先OSPF。
-
使用OSPF的好处是:
- OSPF是基于链路状态,是指本路由器和哪些路由器相连,以及相应的链路的“代价”(代价表示费用、距离、时延、宽带等等,这些都由网络管理员来决定)。
- OSPF采用最短路径优先算法,不会产生路由环路问题。
- OSPF不限制网络规模,更新效率高,收敛速度快
-
工作流程:
- 相邻路由器之间通过交互问候分组,建立和维护邻居关系。
-
然后每个路由器都会产生链路状态通告LSA,LSA被封装在链路状态更新分组LSU中,采用洪泛发送。
- 链路状态通告LSA包括直连网络的状态信息和邻居路由器的链路状态信息。
-
使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA,再各个路由器接收到其他所有路由器的LSA后,LSDB最终将达到一致
-
然后路由器会根据链路状态数据库生成带权有向图,如下所示
-
最终,每个路由器根据自身位置和带权有向图,产生到达各个路由器的最短路径,如下图所示。
当在以下多点接入网络情况中,转发问候分组会大大增加
为解决这种问题,采用了选举指定路由器DR和备用的指定路由器BDR;所有的非DR/BDR只与DR/BDR建立邻居关系,通过DR/BDR交换信息,结构如下所示:
- 为了使OSPF能够用于规模很大的网络,OSPF吧一个自治系统再划分为若干个更小的范围,叫做区域。
4.6.4 边界网关协议BGP的基本工作原理
4.7 IPv4数据报的首部格式
-
版本
表示IP协议的版本;通信双方使用的版本必须一致,目前广泛使用的IP协议版本号为4(IPv4)。
-
首部长度
表示IP数据报首部的长度,以4字节为单位,也就是说最低位1表示4字节。
-
区分服务
该字段的不同数值可提供不同等级的服务,一般情况下不使用该字段。
-
总长度
是指IP数据报的总长度(首部和数据载荷),以字节为单位。
-
标识、标志、片偏移
这三个字段用于IP数据报分片。当IPv4数据报长度超过MTU时,无法封装,需要进行分片。
-
生存时间
现在以跳数为单位,路由器转发时跳数
-1
,若不为0转发,否则丢弃。 -
协议
如
-
首部检验和
用来检测IP数据报的首部在传输过程中是否出现差错;
IP数据报每经过一个路由器转发,它的字段(生存时间、标识、标志、片偏移)都可能发生变化, 所以要重新计算。
本身IP层不提供可靠传输服务,计算此字段很麻烦,因此在IPv6中不再计算此字段,从而更快的转发。
4.8 网际控制报文协议ICMP
为了更有效地转发Ip数据报和提高交付成功的机会,在网际层使用了网际控制协议ICMP。
主机或路由器使用ICMP来发送差错报告报文和询问报文。(ICMP被封装在IP数据报中发送)
-
差错报告报文分为终点不可达、源点抑制、时间超过、参数问题、改变路由(重定向)。
-
常用的ICMP询问报文有以下两种:
-
回送请求和回答
用来测试目的站是否可到达。是由主机或路由器向指定目的主机发出询问,收到此报文的必须给源主机发送ICMP回送回答报文。
-
时间戳请求和回答
用来进行时钟同步和测量时间。是请某个主机或路由器回答当前的日期和时间。
-