计算机网络–网络层

目的:实现网络互连

  • 网络层向运输层提交怎样的服务
  • 网络层寻址问题
  • 路由选择问题

  • 可靠通信由 网络来保障

  • 必须建立网络层连接– 虚电路 VC
  • 通信双方沿着建立的虚电路发送分组
  • 通信结束,需要释放之前建立的虚电路

  • 可靠通信由 用户主机来保障

  • 不需要建立网络层连接
  • 每个分组可以走不同的路径
  • 每个分组首部必须携带目的主机完整地址
  • 可能误码、丢失、重复、失序

IPv4

IPv4 地址就是因特网上 每一台主机或路由器的每一个接口分配一个在全世界范围唯一的 32 比特的标识符

  • 采用 点分十进制表示方法

五种类型

  • A 类型: 0 网络号[8] | 主机号[24]
  • 最小网络号 0,保留不指派
  • 最大网络号 127,作为本地回环测试地址,不指派
    • 127.0.0.1
    • 127.255.255.254
  • 可指派数量 (2^{(8-1)} – 2 = 126)
  • B 类型: 10 网络号[16] | 主机号[16]
  • 最小网络号 128.0
  • 最大网络号 191.255
  • 可指派数量(2^{(16-2)} = 16384)
  • C 类型: 110 网络号[24] | 主机号[8]
  • 最小网络号 192.0.0
  • 最大网络号 233.255.255
  • 可指派数量(2^{(24-3)} = 2097152)
  • D 类型: 1110 多播地址
  • E 类型: 1111 保留

  • 只有 A, B, C 类地址可以分配给网络中的主机或路由器的各接口

  • 主机号为”全0″的地址是网络地址,不能分配给主机或路由器的各接口
  • 主机号为”全1″的地址是广播地址,不能分配给主机或路由器的各接口

从主机号借用几个比特作为子网号

子网掩码

  • 使用连续的 1 对应网络号和子网号
  • 使用连续的 0 对应主机号

1993,IETF 发布无分类域间路由选择 CIDR

  • CIDR 消除传统的 A, B, C 类地址,以及子网概念
  • CIDR 可以更有效分配 IPv4 的地址空间

CIDR

  • 使用 斜线记法 在 IPv4 地址后面加 / 在后面写 网络前缀所占的比特数量
  • 将网络前缀都相同的连续 IP 地址组成一个 “CIDR地址块”
  • 地址块的最小地址
  • 地址块的最大地址
  • 地址数量
  • 聚合某类网络数量
  • 地址掩码

路由聚合

  • FLSM 【定长的子网掩码】
  • 使用同一个子网掩码来划分子网
  • 每个子网分配的 IP 地址数量相同,造成 IP 地址的浪费
  • VLSM 【变长的子网掩码】
  • 使用不同的子网掩码来划分子网
  • 每个子网分配的 IP 地址数量可以不相同,尽量减少造成 IP 地址的浪费

路由器可以分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置。所以路由器可以把非TCP/IP网络连接到因特网上。

发送与转发:

  • 主机发送
  • 路由器转发

路由器

  • 中续器和集线器工作在 物理层;不隔离冲突域,不隔离广播域
  • 网桥和交换机【多端口网桥】工作在 数据链路层;可以隔离冲突域,不隔离广播域
  • 路由器工作在 网络层;隔离冲突域,隔离广播域

路由器转发 IP 数据报

  • 检验 IP 数据报是否出错
  • 出错,直接丢弃并通告源主机
  • 根据 IP 数据报的目的地址在路由器中查找匹配的条目
  • 匹配失败,直接丢弃并通告主机

路由条目类型

  • 直连网络
  • 静态路由【人工配置】
  • 动态路由【路由选择协议】

静态路由配置及路由环路问题

  • 静态路由配置 是指定用户或网络管理员使用路由器的相关命令给路由器 人工配置路由表
  • 方式简单、开销小;但不能及时适应网络状态的变化
  • 一般用于小规模网络
  • 静态路由配置可能的错误
  • 配置错误
  • 聚合了不存在的网络 【解决问题:黑洞路由】
  • 网络故障

特殊静态路由条目

  • 默认路由
  • 目的网络: 0.0.0.0
  • 地址掩码: 0.0.0.0
  • 特点主机路由
  • 目的网络: 特定主机的 IP 地址
  • 地址掩码: 255.255.255.255
  • 黑洞路由【下一跳为 null0 】

特点:

  • 自适应:动态路由选择
  • 分布式:路由器之间交换路由信息
  • 分层次:将整个因特网划分为许多较小的自治系统 AS (Autonomous System)

常见路由协议分类

  • 内部网关协议 IGP
  • 路由信息协议 RIP 基于 距离向量,在因特网最早使用
  • 内部网关路由协议 IGRP 基于 距离向量,是思科早期私有的协议,已经被 EIGRP 取代
  • 增强型内部网关路由协议 EIGRP 思科私有的协议,用于取代 IGRP 协议的 混合型协议
  • 开放式最短路径优先 OSPF 基于 链路状态,在各种网络中广泛使用
  • 中间系统到中间系统 IS-IS 基于 链路状态,集成化 IS-IS 是 ISP 骨干网上最常使用的 IGP 协议
  • 外部网关协议 EGP
  • 边界网关协议 BGP

  • 路由选择部分

  • 分组转发部分

是内部网关协议 IGP 中最先得到广泛使用的协议之一,其标准文档为 RFC 1085

RIP 要求自治系统 AS 内每一个路由器都要维护从它自己到 AS 内其他每一个网关的距离记录称为 距离向量 D-V (Distance-Vector)

使用 跳数作为度量来 衡量达到目的网络的距离

  • 路由器到直连网络的距离定义为 1
  • 路由器到非直连网络的距离定义为所经过的路由器数加 1
  • 允许一条路径最多 15 个路由器, *因此 RIP 只适用于小型互联网

RIP 包含

  • 和谁交换信息 仅和相邻路由器交换信息
  • 交换什么信息 自己的路由表
  • 何时交换信息 周期性交换

基本工作原理

  • 路由器刚开始工作时,只知道自己到直接网络的 距离为 1
  • 每个路由器仅和相邻路由器 周期性地交换并更新路由器信息
  • 若干次交换和更新后,每个路由器都知道达到本 AS 内各网络的 最短距离和下一跳地址,称为 *收敛

更新规则

  • 发现新网络,添加
  • 到达目的网络,相同下一跳,最新消息,更新
  • 到达目的网络,不同下一跳,新路由优势,更新
  • 到达目的网络,不同下一跳,新路由劣势,不更新
  • 到达目的网络,不同下一跳,等价负载均衡

  • 开放,不受某一厂商控制,公开发表

  • 基于链路状态,链路状态是指本路由器都和哪些路由器相邻,以及相应链路的代价
  • 采用 SPF 算法,不会产生路由环路
  • 不限制网络规模,更新效率高,收敛速度快

交互方式

OSPF 相邻路由器之间通过交互 问候分组,建立和维护邻居关系

  • 使用 OSPF 的每个路由器都会产生 链路状态通告LSA
  • 直连网络的链路状态信息
  • 邻居路由器的链路状态信息
  • LSA 封装于 链路状态更新分组LSU,采用洪泛法发送
  • 使用 OSPF 的每个路由器都有一个 链路状态数据库LSDB,用于存储 LSA
  • 通过各路由器洪泛发送封装有 LSA 的 LSU 分组,各路由器的 LSDB 最终将一致

  • 问候分组

  • 数据库描述分组
  • 链路状态请求分组
  • 链路状态更新分组
  • 链路状态确认分组

多点接入网络中路由器邻居关系的建立

  • 选举 指定路由器 DR备用指定路由器 BDR
  • 所有非 DR/BDR 只与 DR/BDR 建立邻居关系

寻找一个比较好的路由

在 自治系统 AS 中至少选取一个路由器作为 “BGP 发言人”

不同自治区的 BGP 发言人要交换路由信息,首先必须建立 TCP 连接,端口号 179

  • 在此 TCP 连接交换 BGP 报文以建立 BGP会话,交换信息
  • BGP 发言 TCP 连接,彼此称为 *邻站

BGP-4 有以下四种报文

  • OPEN 【打开】
  • UPDATE 【更新】
  • KEEPALIVE 【保活】
  • NOTIFICATION 【通知】

IPv4 数据报的首部格式

  • 固定部分 【 20 字节 】
  • 可变部分 【 40 字节 】
  • 版本 【4】 表示 IP 协议的版本,通信双方必须使用版本一致
  • 首部长度 【4】 表示 IP 数据报首部的长度,
  • 最小十进制取值 5 表示 IP 数据报首部只有 20 字节固定部分
  • 最大十进制取值 15 表示 IP 数据报首部只有 20 字节固定部分和最大 40 字节可变部分
  • 可选字段 长度从 1 个字节到 40 字节不等,用于支持排错、测量及安全等措施
  • 填充字段 确保首部长度为 4 的整数倍,使用 0 填充
  • 区分服务 【8】 用于获取更好的服务
  • 总长度 【16】 表示 IP 数据报的总长度 (首部 + 数据载荷);最大 65535

IP 数据报分片

  • 标识 【16】 属于同一个数据报的各分片数据报应该具有相同的标识,由 IP 软件维持一个计数器,每生产一个数据报,计数器值加 1 并将此值赋给标识字段
  • 标志 【3】
  • DF:1 不允许分片;0 允许分片
  • MF:1 后续有分片;0 最后分片
  • 保留位:必须 0
  • 片偏移 【13】 指出分片数据报的数据载荷部分偏移其在原数据报位置有多少个单位 片偏移以 8 字节为单位
  • 生存时间 TTL 【8】 以秒为单位,最大生存周期 255 现在以 “跳数” 为单位
  • 协议 【8】 指明 IPv4 数据报的数据报部分是何种协议数据单元协议名称 ICMP IGMP TCP UDP IPv6 OSPF 协议字段值 1 2 6 17 41 89
  • 首部检验和 【16】 用于检测首部在传输过程中是否出错
  • 源 IP 地址 【32】
  • 目的 IP 地址 【32】

为更好有效转发 IP 数据报和交付成功的机会,在网际层使用网际控制报文协议 ICMP

主机和路由器使用 ICMP 来发送 差错报告报文询问报文

ICMP 报文被封装在 IP 数据报中发送

  • 终点不可达 当路由器或主机不能交付数据报时,就向源点发送
  • 源点抑制 当主机或路由器由于拥塞而丢弃数据报时,就向源点发送,使数据报发送速率放慢
  • 时间超过 生存时间 归 0 丢弃,报错
  • 参数问题 检验和检验不通过,丢弃数据报,就向源点发送报文
  • 改变路由【重定向】 路由器把改变路由报文发送给主机

不发送情况

  • 对 ICMP 差错报文不发送
  • 对于第一个分片的数据报片的后续数据报片不发送
  • 对于具有多播地址的数据报不发送
  • 特殊地址不发送【127.0.0.1】

  • 回送请求和回答 是主机或路由器向特定的目的主机发送询问 作用:测试目的站是否可达及了解其有关状态

  • 时间戳请求和回答 请某一个主机或路由器回答当前的日期和时间 作用:时间同步和测量

  • 分组网间探测 PING

  • 跟踪路由 traceroute

利用公用的因特网作为本机构各专用网之间的通信载体

专用私有地址

  • 10.0.0.0 ~ 10.255.255.255 (10/8 地址块)
  • 172.16.0.0 ~ 172.31.255.255 (172.16/12 地址块)
  • 192.168.0.0 ~ 192.168.255.255 (192.168/16 地址块)

缓解 IPv4 的地址消耗

NAT 是使用大量的内部专用地址共享少量的外部全球地址

一些 P2P 网络应用,需要外网主机与内网主机进行通信,此时,NAT时会遇到问题

NAPT 技术:网络地址结合端口号

Original: https://www.cnblogs.com/shadow-/p/16204612.html
Author: shadow_D
Title: 计算机网络–网络层

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/564496/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • game connect4 java_为我的connect 4数学游戏创建一个积分系统

    我试着在每次用户得到正确答案时加一分,如果在我的”连接4″数学游戏中答错了,我就拿走一分。在游戏中,用户把一个计数器放在想要的地方,问题就会弹出,等待答案,…

    Python 2023年9月25日
    049
  • Python3 DataFrame数据详解

    pandas的DataFrame极大地简化了数据分析过程中一些烦琐操作,它是一个表格型的数据结构, 每一列代表一个变量,而每一行则是一条记录。简答地说,DataFrame是共享同一…

    Python 2023年8月16日
    070
  • 移动平均

    移动平均 一、移动平均的主要分类 * 1. 简单移动平均 2. 加权移动平均 3. 指数移动平均 4. 分形自适应移动平均 5. 赫尔移动平均 二、移动平均使用时的注意点: * 1…

    Python 2023年8月20日
    051
  • mysql随机分层抽样_数据抽样及样本不均衡处理

    一、数据抽样 抽样的组织形式有: (1)简单随机抽样:按等概率原则直接从总体中抽取样本。该方法适用于个体分布均匀的场景。 (2)分层抽样:先对总体分组,再从每组中随机抽样。该方法适…

    Python 2023年8月17日
    086
  • Nacos基本学习

    一、注册中心 1.启动 1.下载nacos 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: GitHub主页:https://gith…

    Python 2023年10月16日
    070
  • Numpy、Matplotlib and Pandas

    一、NumPy 1.创建与访问 1.与列表的区别:数组中所有元素的数据类型是相同的。底层经过充分优化的 C 语言代码,计算性能比高。提供了全面的数学函数可以直接应用在数组上。2.定…

    Python 2023年9月3日
    052
  • python猜拳小游戏

    抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。 Original: https://blo…

    Python 2023年9月25日
    040
  • Pandas基础|生成对应编码的N种方法

    作者:小小明 已知列表[’50万以上’, ’10万以下’, ’10万以下’, ’50万以上&#8…

    Python 2023年8月8日
    071
  • 1. 编程规范和编程安全指南–python

    抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。 Original: https://blo…

    Python 2023年8月14日
    053
  • 计算速度太慢?试试 lru_cache 装饰器

    众所周知,python语言是相当好用的,但是它的执行性能也是相对其他语言比较慢的。还好python提供了一个非常优秀的装饰器来解决这个问题,它就是lru_cache装饰器。lru_…

    Python 2023年5月25日
    071
  • python爬虫爬取国家科技报告服务系统数据,共计30余万条

    python爬虫爬取国家科技报告服务系统数据,共计30余万条 按学科分类【中图分类】 共计三十余万条科技报告数据 爬取的网址:https://www.nstrs.cn/kjbg/n…

    Python 2023年10月31日
    062
  • 在*args, **kwargs上强制规定参数的调用约定

    首先我们要知道任何关于函数调用签名的问题,都和inspect模块有着关系 这个知识点涉及到两个类: Signature、 Parameter创建一个签名对象,这是个重点 outpu…

    Python 2023年10月31日
    045
  • 太空射击第10课: Score (繪畫和文字)

    太空射击第10课: Score (繪畫和文字) 在本课中,我们将开始显示分数,并学习如何在屏幕上显示文本。将使用pygame.freetype模块来完成文本的渲染,模块的详细说明在…

    Python 2023年9月25日
    045
  • Pandas操作dataframe对所有列/行求和 ,对指定列/行求和,对某一列/行求和,并添加新的列/行

    计算各行数据总和并作为新列添加到末尾 计算各列数据总和并作为新行添加到末尾 import pandas as pd t=[[1,2,3],[4,5,6],[7,8,9]] df=p…

    Python 2023年8月8日
    050
  • Python处理Excel 写入,读取和追加

    Python处理Excel 写入,读取和追加 原创 wx5e6caa8b9792d2022-08-01 17:04:52博主文章分类:Python自动化开发 ©著作权 文章标签 数…

    Python 2023年5月24日
    062
  • 微信中使用ChatGPT

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年11月3日
    053
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球