Loading... # 网络层(一) ## 网络层概述 每台主机和路由器中都有一个网络层部分,路由器负责检查所有经过它的IP报文头部区域 **两大重要功能:** * 转发(forwarding):将分组从路由器的输入链路移动到合适的输出链路 * 路由(routing):决定分组所采用的路由或路径(计算路径的算法——**路由选择算法**) 每台路由器有一个转发表,检查抵达分组的头部,使用这些头部值在其转发表里索引,来转发分组 ![image-20220511224316307.png](http://xherlock.top/usr/uploads/2022/05/676052334.png) 第三种重要功能:**建立连接**(eg:ATM、frame relay、X.25、MPLS),两个终端主机,同时路由器也参与 ### 网络服务模型 定义了分组在发送与接收端系统之间端到端运输特性: * 确保交付 * 具有时延上界的确保交付 * 有序分组交付 * 确保最小带宽 * 安全性 【**尽力而为服务**】 ![image-20220511225347354.png](http://xherlock.top/usr/uploads/2022/05/2691193644.png) ## 虚拟电路和数据报网络 **分组交换的两种网络** * 数据报网络:eg:Internet,提供网络层无连接服务 * 虚拟电路网络:eg:ATM、frame delay、X.25、MPLS,提供网络层连接服务 和运输层不同的地方: | 对比 | 运输层 | 网络层 | | ---------- | -------------------- | -------------------- | | 服务 | process-to-process | host-to-host | | 没有选择 | 连接和无连接可同时 | 连接或无连接 | | 应用于 | 终端系统 | 网络核心和终端系统 | ### 虚拟电路网络 组成: * 源主机和目的主机之间的路径 * VC编号,每个路径连接有一个编号 * 路由器中沿路径转发表中的条目 每个虚拟电路的分组都携带VC编号,而不是IP地址,VC编号在每条链路上会改变(由转发表决定) ![image-20220512085310174.png](http://xherlock.top/usr/uploads/2022/05/3636440575.png) 虚电路中三个明显不同的阶段:虚电路建立、数据传送、虚电路拆除 **虚拟电路的建立** ![image-20220512085518654.png](http://xherlock.top/usr/uploads/2022/05/40834577.png) * 信令报文(signaling message):终端系统发送到网络中来初始化或结束VC的报文、路由器间传输来建立VC的报文 * 信令协议:用来交换报文 和传输层建立连接不同点在于网络层VC的建立连接不仅包含两个终端,还包含了路由器 ### 数据报网络 * 没有呼叫建立连接 * 路由器不保持端对端的连接状态 * 路由器中分组的转发使用目的主机地址(相同源-目的对的分组可能会走不同的路径) 因为IP地址很多,所以转发表里列出的是**一系列范围地址而不是单个的** ![image-20220512090806301.png](http://xherlock.top/usr/uploads/2022/05/3486958673.png) 具体范围实例 ![image-20220512090849238.png](http://xherlock.top/usr/uploads/2022/05/475815072.png) 路由器使用分组目的地址的前缀与该表中的表项进行匹配,存在多个匹配时,采用**最长前缀匹配** 从上图中提取前缀如下 ![image-20220512091151061.png](http://xherlock.top/usr/uploads/2022/05/1810359646.png) 当目的地址=11001000 00010111 00010**110 10100001** 使用0接口 当目的地址=11001000 00010111 00011000 **10101010** 使用1接口(由最长匹配知不匹配接口2) Datagram:边缘复杂、核心简单 ## IP:网络协议 ![image-20220512093836504.png](http://xherlock.top/usr/uploads/2022/05/1455827619.png) ### **IP数据报格式(IPv4)** ![43C1726C97A3FC882096118B28AE3097.png](http://xherlock.top/usr/uploads/2022/05/3497389830.png) 关键字段: * 版本号:4比特 * 首部长度:不包含可变选项时,通常由20字节的首部,4比特 * 服务类型:8比特 * 数据包长度:首部+数据(很少超过1500字节),16比特 * 标识、标志、片偏移:与IP分片、重组有关 * 寿命(TTL,time-to-live):确保数据不会永远在网络中循环,每经一台路由器处理,TTL-1,减为0时丢弃该数据报 * 上层协议:指明IP数据报的数据部分应交给哪个特定的运输层协议(eg:6→TCP,17→UDP) * 首部检验和:首部每两个字节当作一个数,反码求和;在每个路由器处都要重新计算(TTL字段值变化),检测到错误路由器通常会丢弃分组 【运输层不是已经差错检测了吗,为啥还要网络层差错检测?①IP层只是对IP首部计算检验和,而TCP/UDP是对整个报文段进行检测;②TCP/UDP和IP不一定属于同一个协议栈】 * 源和目的IP地址:32位 * 选项:时间戳、记录采用的路由、确认访问的路由器列表 ### IP分片 并不是所有链路层协议都能承载相同长度的网络层分组,链路层能承载的最大数据量为**最大传送单元**(maximum transmission unit,**MTU**) 问题:在不同链路层协议中MTU不同,可能会碰到大于MTU的IP分组,这时候需要用到分片,分开后在目的地重组 ![image-20220512100445017.png](http://xherlock.top/usr/uploads/2022/05/1519445239.png) 【**重点**】 ![image-20220512100615930.png](http://xherlock.top/usr/uploads/2022/05/494450686.png) 最后修改:2022 年 06 月 16 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏