网络层
网络层¶
网络层的功能¶
- 异构性指的是传输介质、数据编码方式、链路控制协议及不同的数据单元格式和转发机制,这些特点分别在物理层协议和数据链路层协议中定义。
- 虚电路详情见书P128
- 虚电路中分组到达顺序与发出顺序是相同的。
- 虚电路是一种分组交换技术,它可以采用存储转发的方式工作。
- 虚电路不只是临时性的,他一共的服务包括永久性虚电路和交换型虚电路,后者是一种临时性的连接。
- TCP/IP模型的网络层提供的是无连接不可靠的数据报服务。
- SDN是一种新型网络体系结构,是一种设计、构建和管理网络的新方法,不是一种新型物理网络结构。ps:详情见书p130
- SDN对上层开发者提供的编程接口称为北向接口,而南向接口则负责控制平面和数据平面间的通信,所以SDN控制器向数据平面的SDN交换机下发流表时使用南向接口。
- 路由器是网络层设备,向传输层及以上层隐藏下层的具体实现,所以物理层、数据链路层、网络层协议可以不同。使用特定的路由器连接IPv4和IPv6网络,就是典型的网络层协议不同而实现互连的例子。

IPv4¶
- IP首部前两个字节往往以0x45开头,解题时可用于定位IP数据报的开始位置。
IPv4分组¶
- MTU(最大传送单元):一个链路层数据帧能承载的最大数据量。如以太网的MTU = 1500B。
- TTL(生存时间):数据报在网络中可通过的路由器数量最大值。
- 校验和字段检查的范围是IP数据报的首部,不包括数据部分。
- 若分组长度超过MTU时,并且DF = 1,则丢弃该分组,并且要用ICMP(终点不可达报文)向源主机报告差错。
- 注意!!要求一个帧的数据部分长度必须是8B的整数倍,并且不能超过MTU - 首部大小。
- 片偏移部分以8B为偏移单位。418,首总偏
- 传输层封装为网路层时无坑,不需要考虑MTU,只有当网络层要封装成MAC帧时才需要考虑进行分片。
- 若传输层使用TCP,则大概率网络层到链路层时是不需要进行分片的,因为会进行协商根据MTU反推MSS;若用UDP,则有可能发生分片。
- 一个IP数据报被分片后可能还会发生分片,这取决于每段链路所规定的MTU,是对分完片后的片再进行分片,而不是以原始IP数据报为基础以新的MTU进行分片。重组仅在目的主机进行。
- 片偏移字段是针对原始数据报的,并非基于父片。



校验和计算方法:先把IP数据报的首部划分为许多16bit的序列,用反码算术运算把所有16bit相加后,将得到的和的反码写入校验和字段。
网络层发现首部校验和错误会直接丢弃,并不会发送ICMP差错报文。


IP地址 + 整章串讲¶
- 如何记忆:固定前八位确定种类,第一次填0,每次在开头填充1,也就是A类有126个(128 - 全零 - (127))。只看最高八位,每次可分配的越来越少,A - 126、B - 63、C - 31 、D - 15.只记A类有两个特殊全零和全一不能取,以及B类开始和结束是128 - 191,其他的现推



子网划分和子网掩码¶



无分类编址CIDR¶
- 路由聚合是CIDR的强大功能。
- 在CIDR发明前就能够实现子网的划分,也就是定长子网掩码。


路由聚合¶

网络地址转换NAT¶
- 在没有给出具体 NAT 转换表的情况下,NAT 路由器默认会使用其连接外部网络的接口 IP 地址作为转换后的外网源 IP。
- 在408考试范围内,这里以Web服务器为例,在客户端一侧的NAT路由器中,通常不进行手动配置,而在服务器一端的NAT路由器通常需要手动配置上外网IP和端口对应的内网IP和端口,否则外来数据无法找到服务器;客户端一侧通常在数据想外传的时候自动记录,而且客户端的端口号是随机分配的,因此不能手动记录。
- 外网访问内网服务器,必须有“静态预设”。也就是假设内网内有一台Web服务器,外网主机想要请求内网服务器,需要静态配置内网服务器的内外网IP,以及内外网的端口号。


地址解析协议ARP¶
- 通过ARP知道了对方的MAC地址是否还需要通过默认网关转发:
同子网:凭对方 MAC 直发,无需网关;
跨子网:无论是否知道目标 MAC,二层只能发给网关 MAC,必须经过网关转发。
-
路由器的每个端口都独立拥有一份ARP表
-
默认网关的MAC地址也放在ARP表里。


动态主机配置协议DHCP¶
- UDP端口号不是随便分配的,特定的端口号是给特殊的需要用的,就比说DHCP客户端进程的端口号等等。
- 对于圈三REQUEST报文,为什么网络层还是个广播帧:因为可能存在多个DHCP服务器,最终主机接受的是谁分配的IP是不得而知的,所以需要广播出去。
- 如何记忆DHCP的报文:DORA(朵拉,Discover、Offer、Request、Acknowledge)

ICMP网际控制报文协议¶

!!!上图有误!!!差错报告报文中参数问题里“或首部校验出错”是错误的,删去即可。网络层发现首部校验和错误会直接丢弃,并不会发送ICMP差错报文。
IPv6¶
- IPv6中不允许在中间路由器进行分片。因此,若路由器发现到来的数据报太大而不能转发到链路上,则丢弃该数据报,并向发送方发送一个指示分组太大的ICMP报文。
IPv6 的主要特点
IPv6 基本首部与 IPv4 的对比
上述见书P179

路由算法与路由协议¶
路由算法¶

分层次的路由协议¶

RIP(Routing Information Protocol路由信息协议)¶
- 通过相同下一跳达到目的网络,无论RIP距离变大还是变小,都要进行更新,因为这是最新消息。
RIP的基本概念¶


RIP的工作示例¶


OSPF(Open Shortest Path First,开放最短路径优先协议)¶
- LSDB(Link-State Datebase) -- 链路状态数据库



-
区域包含在自治系统(AS)中。
-
每个路由器只知道如何将分组路由到自己区区域的目标地址,而不知道如何路由到其他区域。
-
上图中,缺少了一种路由器:主干路由器。
-
在 OSPF 中,Area 0 是主干区域,所有其他区域(Area 1, 2 等)的数据互通,必须经过 Area 0 中转。
-
定义: 只要一台路由器至少有一个接口属于 Area 0,它就是主干路由器。
-
作用: 它的主要职责就是参与主干区域内部的路由信息交换,充当不同区域之间数据通信的“高速公路骨干节点”。
-
绝对绑定的关系(必然重叠):
-
区域边界路由器 (ABR) 必然是 主干路由器 (BR): 因为 ABR 的使命就是“连接非主干区域和主干区域”,这意味着它必须有一只脚(接口)踩在 Area 0 里。所以,所有的 ABR 都是 BR,但 BR 不一定是 ABR。
- 纯主干区域的内部路由器,既是 IR 也是 BR: 如果一台路由器的所有接口都在 Area 0 里。根据定义,所有接口在同一区域叫内部路由器(IR),有接口在 Area 0 叫主干路由器(BR)。所以它同时是 IR 和 BR。
百搭的关系(随时可能重叠):
- 自治系统边界路由器 (ASBR) 是“百搭”的: ASBR 的唯一判定标准是“是否引入了 OSPF 外部的路由”(比如连接了其他公司的网络,或者连接了 RIP、BGP 协议)。这与它在 OSPF 内部的哪个区域毫无关系。
- 它如果待在 Area 1 内部,它就是 IR + ASBR。
- 它如果待在 Area 0 内部,它就是 BR + IR + ASBR。
- 它如果正好卡在 Area 0 和 Area 1 边界,同时又连接了外网,那它就是 ABR + BR + ASBR(三位一体,最累的路由器)。
绝对互斥的关系(不可能重叠):
-
区域内部路由器 (IR) 和 区域边界路由器 (ABR) 绝对互斥: IR 的定义是“所有接口都在同一个区域”,而 ABR 的定义是“接口连接了不同的区域”。这两个条件在物理上是直接冲突的,绝不可能同时存在。
-
如果一个AS只有一个区域,ABR 这个角色根本就不存在。


数据库描述因为是存放在IP数据报内,因此可能也会被分片,也就如上图发送了两次数据库描述。
BGP(边界网关协议)¶
- BGP 宏观上是处理 AS 之间的协议,但为了打通数据在 AS 内部的传输链路,AS 内部必然存在 BGP 路由器并运行 iBGP。





上述这四种基础报文在 AS 内部(IBGP)和 AS 外部(EBGP)完全通用
IP多播¶
- 多播IP地址映射为多播MAC就是前25位固定,后23位是IP的后24位首位换成0

移动IP¶
移动 IP 的核心逻辑其实就是“异地邮件代收转寄”。当你的设备(移动站)离开原来的网络到了新环境,你想保持原有的 IP 地址不变,从而让正在进行的通信(比如游戏连接)不断开。
我们用“寄快递”来一一对应图里的核心概念:
- 永久地址: 你的老家住址(永远不变,别人找你都按这个地址寄)。
- 归属代理 (本地代理): 留守老家的管家(负责替你收老家地址的包裹,并给你转寄)。
- 外地代理: 你出差入住的酒店前台。
- 转交地址: 酒店前台的地址(临时地址,管家只认这个地址)。
核心通信过程(408 核心考点):
- 登记报备(到达外地网络): 你到了酒店,告诉酒店前台(外地代理),前台负责打电话告诉你家管家(归属代理)你现在的酒店地址(转交地址)。
- 别人给你发消息(接收 IP 分组): 别人不知道你出差了,还是把包裹寄到你老家(目的 IP = 永久地址)。管家收到后,找个更大的纸箱把原包裹装进去(IP-in-IP 套娃封装),贴上酒店的地址(外层目的 IP = 转交地址)寄出。酒店前台收到后,拆掉外面的大纸箱,把里面的原始包裹交给你。
- 你给别人发消息(发送 IP 分组): 你想给别人寄包裹,直接把包裹交给酒店前台寄出即可,包裹直接发往目的地。重点:你不需要先把包裹寄回老家让管家代发!(这是 408 常考的“三角路由”特点:接收数据要绕老家一圈,发送数据直接走)。
结合图里的流程,408 经常在这里挖一个坑:你在外地给别人发送数据时,图里明确写了 源 IP 必须填“永久地址”。

网络层设备¶
-
路由器的每个物理端口都连接(或对应)一个独立的广播域(即独立的子网/局域网)。 端口IP必须“不同网段”
-
关于路由器之间的点对点链路是不需要通过ARP来知道另一个端点的MAC地址的。
-
路由器主要实现物理层、数据链路层、网络层的功能
-
对于求询问哪段链路可能会发生拥塞:汇聚到某个路由器的特定方向流量之和 > 该方向下一跳链路的带宽,这个路由器就会发生数据包积压,进而引发拥塞。
-
“多端口的网桥”正是交换机(Switch,也叫以太网交换机)。
什么是网桥(Bridge)? 网桥是工作在数据链路层(OSI 模型第二层)的早期网络设备,主要用于连接两个独立的局域网(LAN)网段。

习题笔记¶
- 允许一台主机有两个或两个以上的IP地址,若一台主机有两个或两个以上IP地址,则说明这台主机属于两个或两个以上的网络。
-
超级杀招:
是否还在烦恼这类题目:

奇思妙想:想象在切蛋糕,蛋糕的面积是单位1,以此题为例,划分为四块蛋糕,可以有两种分法:
题目里给了一个蛋糕,这里只写出最后8bit,10 00 0010,取了前两位作为子网号
-
均分:四等分,剩下的蛋糕为00、01、11
-
不均分:
以选项A举例:0 000 0000,占了二分之一的蛋糕,只剩下了四分之一蛋糕,那就分成两块八分之一的蛋糕,也就是取3位,
110->192/27(占 \(1/8\)),111->224/27(占 \(1/8\))。(这正是选项 D)可以发现不重叠,且不引入多余地址。以选项C举例:011 0 0000,占了八分之一的蛋糕,还剩八分之五要分成两块,也就是分成一个二分之一,一个八分之一,但是,这 个 \(1/2\) 的子网(
/25)前缀只能是0或者1:如果前缀是
1,它会和已知题目给的子网10重叠,把题目给的子网包括进去了如果前缀是
0,它会和选项 C011重叠,把后者包括进去了因此选项C分不出四个蛋糕。
-
还需要注意的是,有的题目没有给出明确的IP空间,因此初始蛋糕大小是不一定的。
-
在网络中进行数据交换的时候,源IP地址和目的IP地址通常是不变的。除非,二者存在内网地址
-
点对点链路 (Point-to-Point Link):仅连接两个设备(路由器接口)的独立线路。
/30 掩码专供:主机位 2 位,可用 IP 数量刚好为 2 个(4 - 2 = 2),完美分配给链路两端,杜绝公网 IP 浪费。
/30 IP 极限推导:已知一端 IP,即可锁死另一端 IP。例如本题中,一端接口为 201.1.3.9,推导出网络号为 .8/30,则对端接口 IP 必定是 201.1.3.10。

- 路由器对收到的IP分组头进行差错校验,丢弃有差错首部的报文,但不保证IP分组不丢失。
- 若转发目的网络IP地址是一个互联网且没有给出具体的IP地址时(通常也无法给出,因为互联网包括了无数的网络集合,不可能再路由表中一一列出),通常只能采用默认路由的方式,也就是目的地址为0.0.0.0,子网掩码为0.0.0.0
- 若要求找一特定的IP地址时,子网掩码要取255.255.255.255。
- 对于记忆直接封装RIP、OSPF、BGP报文的协议分别为:BGP - TCP(BT)、RIP - UDP 、OSPF - IP(OI)