文章目录
网络层
网络层功能概述
- 主要任务是把
分组从源端传到目的端, 为分组交换网络上的不同主机之间提供通信任务. 网络层的传输单位是数据报(数据报进行分割, 成若干个分组) - 路由选择 和 分组转发 (最佳路径)
- 异构网络互联 (4G, wifi, 手机, 电脑)
- 拥塞控制 : 由于网络负荷过大, 分组迟迟到不了目标节点, 需要采取一定措施缓解网络负荷(全局性)
- 开环控制 : 静态, 拥塞之前就做好防止拥塞的准备
- 闭环控制 : 动态 拥塞发生时动态调整
数据交换方式
电路交换
- eg : 电话网络
- 电路交换的阶段 : 建立链接 , 通信, 释放连接
- 如果电路带宽非常大, 却只有一个人打电话, 就会有浪费, 可以采用
多路复用(频分服用, 码分服用, 时分服用, 波分服用)的方法对电路进行划分, 就可以有多人同时电话. 但是是独占资源的 - 优点 : 通信时延小, 有序传输, 没有冲突, 实时性强
- 缺点 : 建立连接时间长; 线路独占, 使用率低; 灵活性差; 无差错控制能力
报文交换
- 报文 : 源应用发送的信息整体(应用层的数据单元)
- 交换设备 : 存储转发, 收到报文后并不是立即发送出去, 而是先存储, 等待电路空闲时选择最佳路径
- 优点 :
- 无需建立连接;
- 存储转发, 动态分配线路;
- 线路可靠性高;
- 线路利用率高.
- 多目标服务
- 缺点
- 有存储转发时延
- 报文大小不定, 需要网络节点有较大缓存空间
分组交换
- 分组 : 把大的数据块分割成小的数据块
- 优点
- 无需建立连接
- 存储转发, 动态分配线路
- 线路可靠性高
- 线路利用率高
- 相对报文交换, 存储管理更容易
- 缺点
- 存储转发时延
- 需要传输额外的信息量
- 乱序到目的主机时, 要对分组排序重组
- 分组交换数独比报文交换更快, 一个是流水线并行传输, 一个是串行传输
三种数据交换
数据报方式 & 虚电路方式 (都属于分组交换)
- 数据报方式 : 为网络层提供
无连接服务- 不事先为分组确定传输路径, 每个分组独立确定传输路径, 不同分组传输路径不同
- 虚电路方式 : 为网络层提供
连接服务- 首先为分组的传输确定传输路径(建立连接), 然后沿该路径传输系列分组. 系列分组的传输路径相同, 传输结束后断开连接 (电路交换 + 分组交换)
几种传输单元名词
- 应用层 : 报文
- 传输层 : 报文段 (TCP协议对其分割)
- 网络层 : 加上源IP和目的IP, 成为数据报 (如果过大, 进行切割, 分组)
- 数据看路层 : 帧 (分组的基础上加头加尾, 帧检验序列和MAC地址)
- 物理层 : 比特流
数据报 (为上层的UDP服务)
- 无连接服务 : 不事先为分组的传输确定传输路径, 每个分组独立确定传输路径. 不同分组传输路径可能不同.
- 每个分组都会携带
源地址和目的地址 - 路由器根据分组的目的地址转发分组 : 基于
路由协议/算法构建转发表;检索转发表; 每个分组独立选路
虚电路 (为上层的TCP服务)
- 将数据报方式和电路方式结合, 发挥两者优点
- 虚电路 : 从源主机到目的主机的一条逻辑连接(类似电路的路径), 路径上所有节点都要维持这条虚电路的建立, 都维持一张虚电路表, 每一项 记录了一个 打开的虚电路 的信息
路由算法和路由协议
- 每个路由器都维护了一张路由表, 用来确定到达某个目的主机的分组应该转发给哪个一个路由设备
路由算法的分类
-
静态路由算法(非自适应路由算法)
- 管理员手工配置路由信息
- 简便, 可靠, 在负荷稳定, 拓扑变化不大的网络中运行效果好
- 路由更新慢, 不适用于大型网络
-
动态路由算法(自适应路由算法)
- 路由器间彼此交换信息, 按照路由算法优化出路由表项
- 路由更新快, 适用于大型网络, 及时相应链路费用或网络拓扑变化
- 算法复杂, 增加网络负担 (频繁交换)
-
动态路由算法
- 全局性: 链路状态路由算法 OSPF
- 所有路由器掌握完整的网络拓扑和链路费用信息
- 分散性 : 距离向量路由算法 RIP
- 路由器只掌握物理相连的邻居及链路费用
- 全局性: 链路状态路由算法 OSPF
分层次的路由选择协议
-
因特网规模很大
-
许多单位不想让外界直到自己的路由选择协议, 但还想连入互联网
-
因此有了自治系统AS, 在单一的技术管理下的一组路由器, 这些路由器使用一种AS内部的路由选择协议和共同的度量确定分组在该AS内的路由. 同时还使用一种AS之间的路由协议确定AS之间的路由.
- (AS内是一种路由协议, 对外界透明 AS间又是另一种路由协议, )
-
路由选择协议
- 内部网关协议 : 一个AS内使用的RIP, OSRF
- 外部网管协议 : AS之间使用的 BGP
IP数据报格式
- 版本 : IP协议的版本
- 首部长度 : 4b, 0-15, 单位是4B, 所以范围是0-60B. 由于IP数据报有20B的固定部分, 所以首部长度要从0101开始
- 区分服务 : 表示期望获得哪种服务, 比如优先发送
- 总长度 :首部长度 + 数据部分 (总长度 - 首部长度 = 数据长度) 2B, 16b, 单位1B, 范围是 0-65535B. 现实中永远不会到最大长度, 因为数据过大会进行分组, 以满足数据链路层MTU的要求
- 生存时间(TTL, Time To Live) : 防止无法交付的数据报无限在网络中遗留.
- 协议 : 数据部分使用的协议
- 首部检验和 : 检验首部是否有差错的字段. 因为数据传输过程中, 每经过一个路由器, IP数据报首部会有一些字段改变, 需要检验是否出差错.
IP数据报分片
- 最大传送单元MTU : 数据链路层每一个数据帧都有可封装数据的上限, 以太网的MTU是1500字节
- IP数据报到了链路层, 整体成了数据帧的数据部分, 它的长度不能超过1500字节
- 如果超过了1500字节, 就要进行分片 (需要数据报的同意)
- 标识 : 用来区别每个分片都是由哪一个数据报分割而来, 方便之后的组合
- 标志 : 有3b, 第一位保留
- 中间位 : DF(Don‘t Fragment)
- DF = 1 : 禁止分片
- DF = 0 : 允许分片
- 最后一位 : MF (More Fragment)
- MF = 1 : 不是最后一个分片, 之后还有分片
- MF = 0 : 代表最后一片, 之后没有分片了
- 只有DF=0, MF才有意义
- 中间位 : DF(Don‘t Fragment)
- 片偏移 : 指出分片在原来数据包中的位置, 方便之后的还原数据报. 8B为单位
- 除了最后一个分片, 其余分片都应该是8B的整数倍
- 除了最后一个分片, 其余分片都应该是8B的整数倍
IPV4
- IP地址 : 全世界唯一的32位/4字节标识符, 用来标识路由器和主机的接口
- IP地址由
网络号主机号两部分组成- 网络号相同, 说明处于同一个网络
- 一般采用点分十进制的方法表示一个IP地址, 每个字节用一个十进制数表示, 字节之间用点分割
- 路由器每个接口都有一个不同的IP地址,
接入不同的网络
- IP地址由
分类的IP地址
- A类 : 第一个十进制数<=126 (2^7-1 127不能使用)
- B类 : 第一个十进制数 >= 128
- C类 : 第一个十进制数 >= 192
- D类 : 第一个十进制数 >= 224
- E类 : 第一个十进制数 >=240
特殊IP地址
- 0.0.0.0: 只能作为源地址, 不能作为目的地址.
表示本主机的所有IPV4地址. (发送数据报时, 如果不知道源地址具体是多少, 就可以填充全0) - 0.0.0.x : 不能作为源地址, 可以作为目的地址, 表示
本网内某个特定主机(存疑) - 255.255.255.255 : 本网广播地址(路由器不会转发, 隔离广播域), 作为目的地址, 表示给本网内所有主机发送数据报
- 主机号为0, 只用网络号表示的是一个网络
- 网络号特定值, 主机号全1: 特定网络的广播地址
- 127*, 主机号非全0或非全1, 比如127.0.0.1: 用于本地软件回还测试, 回还地址. 自己给自己发送数据, 自己接收.
主机号全1用于广播, 0用于本主机
私有IP地址
- 这些IP地址放到互联网上, 路由器是不认识的. 只能在内部网络使用
- A类网络号只有10.*
- B类网络号有16个 172.16* - 172.31
- C类网络有256个 192.168.0* - 192.168.255*
分类的IP地址
网络地址转换(NAT)
- 路由器对私有IP地址的数据报一律不转发
- 那么私有IP地址如何和因特网上的主机进行通信呢?
- 网络地址转换(Network Address Transform, NAT) : 在
专有网连接到因特网的路由器上安装NAT软件, 安装了NAT软件的路由器叫NAT路由器, 它至少有一个有效的外部全球IP地址- NAT路由器有一个NAT转换表, 每一个表项有两个字段, WAN端(广域网端), LAN(局域网端)
- 专有网网络中的设备和外界通信, 都需要使用这个NAT路由器提供的全球IP地址
- 广域网中的设备想和专有网络中的设备通信, 填写的目标IP地址也是这个NAT路由器的IP地址
- NAT转换表
广域网端使用的是不同的端口号来对应局域网端 特定主机上的特定端口(端口映射)
子网划分, 子网掩码
-
子网对外不透明, 子网之间也不透明
-
如何确定IP地址属于哪个子网? 通过子网掩码来确定
- IP地址&子网掩码, 得到的结果就是该IP地址属于的子网, 再加上主机号, 就能在这个子网中确定唯一的主机
- 相同的IP地址, 子网掩码不同, 也会被划分到不同的子网.
-
子网掩码网络号是1, 主机号是0. 点分十进制的表示方法只是方便人们易读而已, 本质上还是一连串的01, 所以不一定网络号都是8位的倍数, 也可能是22位, 后10位是主机号.
-
同样的IP地址, 不同的子网掩码, 是可以获得相同的子网地址的