以下来自湖科大
计算机网络
公开课笔记
一、网络层概述
网络层开始,就是讲网络与网络之间的故事了。
如下是路由器将多个网络N1到N7连接在一起,一个路由器有多个网络端口,每个端口的IP地址都不相同,而且同一个子网下并不只是最后一个数不同:
1.1 网络层主要解决的问题
1.网络层向运输层提供怎样的服务(可靠传输 or 不可靠传输)
2.网络寻址问题
3.路由选择问题
路由器收到数据包之后,是依据路由表来决定将数据从哪个接口转发出去。路由表的构建除了人工设置(只适用于小型且网络拓扑不改变的互联网),大部分时候是由路由器执行路由选择协议中规定的路由选择算法。
有些资料里,把网络层也叫做网际层,网际层的由来:
如上图所示,地址解析协议ARP也属于网际层。
1.2 网络层提供的两种服务
面向连接的虚电路服务、无连接的数据报服务
1)面向连接的虚电路服务
其实因特网没有采用这种设计思路,因此这不是网际层提供的服务(网际层是英特网的网络层)
这种思路其实就是企图在网络中模拟出物理上的点对点通信。
2)无连接的数据报服务
认为可靠通信应该由用户主机来保证,而不是由网络来保证,这样虽然更容易出现误码、丢失、重传和失序(虚电路的服务不会有这些问题),但是这样路由器要做的事情就更少了,因此价格会更便宜。
因特网采用这种设计思想: 将复杂的网络处理功能置于因特网边缘(用户主机和其内部的运输层),而将相对简单的分组交付功能置于因特网核心
这种好处就是:网络造价大大降低、运行方式灵活,能够适应多种应用。
二、IPv4地址与路由器查表转发
这一块课程讲的很细,还是看原课程比较好,本人的笔记记的比较简略。
2.1 IP数据报转发过程
IP地址分成网络号和主机号,主机号那边又被借走前面几位数作为子网号。也就是说:
IP地址 = 网络号 + 主机号 = 网络号 + (子网号 + 子网主机号)
网络号用于区分一个大范围的网络,而子网号区分的就是小范围,如果两个主机IPv4地址的网络号和子网号一样,那说明两者处于同一个局域网内,则不需要路由器来进行跨子网通信,只需要交换机。
而判定两个主机是否处于同一个子网,光看IPv4还是看不出来的,因为子网号是从主机号那借出来的,光看一个IPv4地址,你看不出它借了多少位作为子网号。
所以就需要子网掩码
了,子网掩码就是网络号部分全为1,主机号全为0,将它和IP地址作与运算,那么得到的就是网络地址(因为主机号全为0,IP地址的主机号没被保留),网络地址就是原来那个IP地址网络号保留,然后主机号全为0。同一个网络子网掩码一样,下方图中的主机A,B,C,D,E,F子网掩码都是255.255.255.128
也就是说,将一个主机的IP地址和子网掩码进行与运算,就能得到该主机的网络地址。(网络地址就是前面说的局域网的地址)
在局域网之间通信,如果A主机和B主机不在一个局域网,A主机想发送数据报给主机B,就会对B的主机IP地址和A的子网掩码作与运算,发现B不在A这边的局域网里,那就不能仅靠交换机,必须通过路由器去转发了
但如果A发送的是针对B这边局域网的广播数据报,路由器不会转发广播数据报,因为路由器会隔离广播域,也是为了安全,防范广播风暴。
而且,在上面例子中,主机A怎么知道用哪个路由器去把消息发给主机B呢,其实用户需要在主机上指定一个默认网关 (就是能将该主机对外通信的路由器的IP地址)——也说主机所指定的路由器被称为默认网关。
显然左边这几个主机的默认网关都是一样的,因为他们只连了一个路由器的一个接口。路由器一个接口对应一个IP地址,路由器有多个IP地址
2.2 路由器的查表转发过程
上面说到由子网掩码得到目的主机并不在局域网内,则需要路由器把IP报文转发到目的主机。那么,路由器收到IP数据报后如何转发?
如下:
上图中说到在路由表中查找匹配的条目,即路由器查表转发,其具体过程如下:
路由器的路由表记录多个条目,这些条目来自于:给路由器的接口配置IP地址和子网掩码时,本例中2个接口,所以该路由表是2个条目。
路由器在自己的路由表中查找匹配的路由条目,逐条检查路由条目,将目的地址与路由条目中的地址掩码相与得到目的网络地址,像第一行,目的网络地址与路由条目中的目的网络地址不相同,则这条路有条目不匹配
再检查下一条路由条目,将目的地址与下一条路由条目中的地址掩码相与,得到目的网络地址,该目的网络地址与路由条目中的目的网络地址相同,则这条路由条目就是匹配的路由条目,按照他的下一跳指示,也就是从接口1转发该IP数据报,这样主机D就可以收到路由器转发来的该IP数据报
2.3 IP地址分类与两个特殊地址127.0.0.0、0.0.0.0
IP地址有多种划分方法(分类编址、划分子网和无分类编址),不同历史时期的。他们同时存在着。改进划分方法(无分类编址CIDR)有利于提高IP地址的使用率,减少IP地址的浪费。划分子网的编址方式就是从分类编址的主机号的后几位拿出来作为子网号。
这一部分看湖科大教书匠的视频比较好,内容很详细。
关于127.0.0.1和0.0.0.0
(1)127.0.0.1是最小的本地回环地址,它的由来是前面提到过的分类编址的IPv4地址:
首先这是个A类地址,如图,A类地址的前8位是网络号,网络号的最高位被约定只能为0,即网络号只能0开头,那么A类地址网络号的最大取值只能是0111 1111,即27 - 1 = 127
上述这种网络号的点分十进制为127时,该网络号被用于本地软件环回测试,不能指派
将网络号取最大127,主机号最低位取1,其余主机号位都为0,就可得到最小的本地软件环回测试地址,其点分十进制表示为127.0.0.1
最大的本地软件环回测试地址,点分十进制为127.255.255.254,即主机号的最低位取0,其余位取1
(最低位不取1是因为,主机号全为1的是广播地址,即127.255.255.255)
那么127.0.0.1 ~ 127.255.255.254都是本地环回地址
,用于软件测试。但一般我们主机里lo网卡的ip是127.0.0.1,感觉其余的环回地址平时接触不到。
补充两个知识点:
- 主机号为全0的地址是网络地址,不能分配给主机或路由器的各接口
- 主机号为全1的地址是广播地址,不能分配给主机或路由器的各接口
而A类地址中,若网络号全为0,该网络号也被保留,不能指派
若再加上主机号全为0,即得到0.0.0.0,也是保留地址。
(2)0.0.0.0表示所有无效的,未知的ip地址,或者说是本机上任意ipv4地址
在服务器上,当一台主机还没有被分配一个IP地址的时候,用于表示主机本身
;
在路由器中,0.0.0.0表示的是默认路由
(在静态路由配置一节),即当路由表中没有找到完全匹配的路由的时候所对应的路由。文章来源:https://www.toymoban.com/news/detail-428431.html
无分类编址的IPv4地址
就是像128.14.35.7/20 这种带斜杠的形式,相比之前的分类编址,能更有效的划分IPv4地址:
文章来源地址https://www.toymoban.com/news/detail-428431.html
到了这里,关于计网第四章.网络层—网络层概述、IPv4地址及路由器查表转发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!