ch4网络层---计算机网络期末复习(持续更新中)
网络层概述
将分组从发送方主机传送到接收方主机

发送方将运输层数据段封装成分组
接收方将分组解封装后将数据段递交给运输层
网络层协议存在于每台主机和路由器上
路由器检查所有经过它的IP分组的分组头
注意路由器只有3层(网络层、链路层、物理层)
网络层提供的服务
一、网络层为单个数据分组(a packet)提供的服务:
确保交付:确保分组到达目的地
具有时延上界的确保交付: 比如100ms内到达
二、网络层为分组的流(a flow of packets)提供的服务:
有序分组递交
确保最小带宽
确保最大时延抖动
安全性服务

Internet服务质量不如ATM,但从实际应用上来说,Internet更符合实际需要
转发和选路
转发(转发)当数据包到达路由器的输入链路时,路由器必须将数据包移动到相应的输出链路
路由器收到数据报后查找路由表将数据报转发
查看IP首部(首部中的值指的是数据报的目的地址),查转发表,转发表中有输出链路,由选路算法决定的。

选路(路由)确定数据包从发送方流向接收方时所采用的路由或路径
虚电路和数据报网络
网络层有连接服务和无连接服务
数据报网络在网络层中提供无连接服务
虚电路在网络层中提供有连接服务(ATM采用虚电路)
与运输层服务有相似之处,但也有很大不同:
服务: 主机到主机(运输层:进程到进程)
服务选择:网络层仅提供以上有连接或无连接服务中的一种 (运输层:可同时提供TCP和UDP)
实现: 在端系统及网络核心同时实现(运输层:只在端系统中实现)
虚电路

VC是源端到目的端的路径,正如普通电话线路
性能可靠
网络行为沿网络路径发生
数据传输前建立虚电路,传输完毕后拆除虚电路
每个分组携带 VC 标识(并非目的地址)
在源-目的路径上每个路由器要维护每个连结的状态信息
链路、路由器资源(带宽、缓冲区)可能分配给VC
一条 VC 的组成:
源和目的主机间的路径
VC号,沿着该路径中的每段链路一个号码 ,沿着该路径的每台路由器中的转发表项
VC上传送的分组携带有VC号
每台中间路由器用一个新的VC号取代原来的VC号
新的VC 号从转发表中获得
入口接口+入口VC会选定出接口,同时,将VC改为出口VC。

虚电路信令协议:用来建立,维护及拆除虚电路
也有建立连接的过程
在虚电路网络中只要虚电路建立好了,同一个源目的主机中的分组走同样的路径

数据报网络
网络层:没有呼叫建立
路由器:对于端到端的连接无需维护状态信息
分组使用目的主机地址进行转发
没有上面建立连接的过程,直接发送到链路上!

转发表(最长前缀匹配)
利用目的地址的前缀(prefix)简化。查转发表时,也是前缀匹配就行。


路由器工作原理
路由器主要功能:
选路:运行路由算法/协议 (RIP, OSPF, BGP)---全局
转发:将分组从输入链路转发到适当的输出链路
分散式转发:
根据分组中的目的地址, 在输入端口的缓存中查找转发表得出适当的输出端口
目标: 输入端口的处理速度(查询转发表时间)能够达到线路速度(line speed,接收分组速度)
排队: 若其他输入端口的分组正在使用交换结构,则分组会阻塞并排队等待调度
如果队列排满路由器会丢弃后续数据报
输入端口排队
原因:当交换速度比所有输入端口的组合速度慢时,输入端口产生排队
线路前部(Head-of-the-Line,HOL)阻塞:队列前面的分组阻止其后的分组的交换到输出端口
排队延迟: 输入队列排队导致延迟,缓存溢出将引起分组丢失!
三种交换结构:

输出端口
缓存:当分组从交换结构到达的速率快于输出链路速率时,需要缓存、排队传输
排队延迟:排队造成延迟 ,输出端口缓冲区溢出时引起分组丢失
调度:在等待传输的排队分组中进行选择发送,比如FCFS
网际协议:

RIP、OSPF、BGP用于生成转发表
IP数据报格式


链路层协议能承载的网络层分组长度是有限制的
比如,以太网不超过1500字节,广域网不超过576字节
最大传输单元(MTU):网络链路层能承载的最大数据量
不同的链路类型有不同的MTUs
若某链路的MTU比IP数据报的长度小该怎么办呢?分片
分片:大的 IP 数据报由路由器划分成几个小的数据报
重组:小的分片数据报在端系统中重新组装
IP首部的标识、标志和片偏移实现数据报重组

以字节为单位,所以要除以8
IP首部:20字节

IPv4编址
相关文章:
ch4网络层---计算机网络期末复习(持续更新中)
网络层概述 将分组从发送方主机传送到接收方主机 发送方将运输层数据段封装成分组 接收方将分组解封装后将数据段递交给运输层网络层协议存在于每台主机和路由器上 路由器检查所有经过它的IP分组的分组头 注意路由器只有3层(网络层、链路层、物理层) 网络层提供的服务 一…...
数据库(12)——DQL聚合查询
常见的聚合函数 将一列数据作为一个整体,进行纵向计算。 函数功能count统计数量max最大值min最小值avg平均值sum求和 语法 SELECT 聚合函数 (字段列表)FROM 表名; 示例 这是我们的原始表: 求人物总数 select count(id) from in…...
MYSQL四大操作——查!查!查!
目录 简洁版: 详解版: SQL通用语法: 分类: 1. DDL —库 1.1 查询: 1.2 创建: 1.3 删除 1.4 使用库 2. DDL—表 2.1 查询 2.1.1 查询当前库的所有表: 2.1.2 查询表结构 : 2.1.…...
Linux静态库与动态库加载
了解库: 关于库相比大家之前肯定使用过,比如C/C里面的标准库,STL里面的各种库,我们在调用STL里的容器时都需要使用库,那么库到底是什么呢? 库的本质就是可执行程序的"半成品" 我们先来回顾一下代…...
Whisper-AT:抗噪语音识别模型(Whisper)实现通用音频事件标记(Audio Tagger)
本文介绍一个统一音频标记(Audio Tagger)和语音识别(ASR)的模型:Whisper-AT,通过冻结Whisper的主干,并在其之上训练一个轻量级的音频标记模型。Whisper-AT在额外计算成本不到1%的情况下…...
K8s:Pod初识
Pod Pod是k8s处理的最基本单元。容器本身不会直接分配到主机上,封装为Pod对象,是由一个或多个关系紧密的容器构成。她们共享 IPC、Network、和UTS namespace pod的特征 包含多个共享IPC、Network和UTC namespace的容器,可直接通过loaclhos…...
HCIP-Datacom-ARST自选题库__MAC【14道题】
一、单选题 1.缺省情况下,以下哪种安全MAC地址类型在设备重启后表项会丢失? 黑洞MAC地址 Sticky MAC地址 安全动态MAC地址 安全静态MAC地址 2.华为交换机MAC地址表中的动态sticky MAC地址的默认老化时间是多少秒? 300 不会老化 400 500 3.华为交换机MA…...
Go基础编程 - 03 - init函数、main函数、_(下划线)
目录 1. init 函数2. main 函数3. init 函数与 main 函数异同4. _ (下划线)示例 1. init 函数 Go语言中,init 函数用于包(package)的初始化。具有以下特征: 1. init 函数用于程序执行前包的初始化,如初始化变量等。2…...
【TensorFlow深度学习】LeNet-5卷积神经网络实战分析
LeNet-5卷积神经网络实战分析 LeNet-5卷积神经网络实战分析:从经典模型到现代实践LeNet-5的历史背景LeNet-5网络架构实战代码解析实战分析结论 LeNet-5卷积神经网络实战分析:从经典模型到现代实践 在深度学习的历程中,LeNet-5无疑是一座里程…...
错误发生在尝试创建一个基于有限元方法的功能空间时
问题: index cell.index(#直接使用从0开始的索引if0<1ndex<10: #正集流体 subdomains_x[cell,index(] 1 fem1 /usr/bin/python3.8 /home/wy/PycharmProjects/pythonProject2/fem1.pyUnknown ufl object type FiniteElementTraceback (aost recent call last)…...
【八股】Hibernate和JPA:理解它们的关系
在Java开发中,持久化框架是至关重要的工具,它们帮助开发者将Java对象与关系数据库中的数据进行映射和管理。Hibernate和JPA(Java Persistence API)是两个广泛使用的持久化框架。那么,Hibernate和JPA之间到底是什么关系…...
C++类型参数技术以及常见的类型擦除容器
文章目录 一、类型擦除的作用二、常见的类型擦除容器1.std::any2.std::function3.std::shared_ptr\<void\>和 std::unique_ptr\<void\>4.总结 三、实现一个any参考 类型擦除(Type Erasure)是一种编程技术,通过它可以在运行时存储…...
SpringBoot如何缓存方法返回值?
Why? 为什么要对方法的返回值进行缓存呢? 简单来说是为了提升后端程序的性能和提高前端程序的访问速度。减小对db和后端应用程序的压力。 一般而言,缓存的内容都是不经常变化的,或者轻微变化对于前端应用程序是可以容忍的。 否…...
C#的web项目ASP.NET
添加实体类和控制器类 using System; using System.Collections.Generic; using System.Linq; using System.Web;namespace WebApplication1.Models {public class Company{public string companyCode { get; set; }public string companyName { get; set; }public string com…...
Spring MVC 源码分析之 DispatcherServlet#getHandlerAdapter 方法
前言: 前面我们分析了 Spring MVC 的工作流程源码,其核心是 DispatcherServlet#doDispatch 方法,我们前面分析了获取 Handler 的方法 DispatcherServlet#getHandler 方法,本篇我们重点分析一下获取当前请求的适配器 HandlerAdapt…...
假设检验学习笔记
1. 假设检验的基本概念 1.1. 原假设(零假设) 对总体的分布所作的假设用表示,并称为原假设或零假设 在总体分布类型已知的情况下,仅仅涉及总体分布中未知参数的统计假设,称为参数假设 在总体分布类型未知的情况下&#…...
vue3 watch学习
watch的侦听数据源类型 watch的第一个参数为侦听数据源,有4种"数据源": ref(包括计算属性) reactive(响应式对象) getter函数 多个数据源组成的数组。 //ref const xref(0)//单个ref watch(x,(newX)>{console.…...
推荐的Pytest插件
推荐的Pytest插件 Pytest的插件生态系统非常丰富,以下是一些特别推荐的Pytest插件: pytest-sugar 这个插件改进了Pytest的默认输出,添加了进度条,并立即显示失败的测试。它不需要额外配置,只需安装即可享受更漂亮、更…...
C语言 | Leetcode C语言题解之第124题二叉树中的最大路径和
题目: 题解: /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ int max; int dfs(struct TreeNode* root){if(!root) return 0;int left dfs(root->left…...
Linux综合实践(Ubuntu)
目录 一、配置任务 1.1 配置该服务器的软件源为中科大软件源 1.2 安装相关软件openssh-server和vim 1.3 设置双网卡,网卡1为NAT模式,网卡2为桥接模式(桥接模式下,使用静态ip,该网卡数据跟实验室主机网络设置相似,除…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
