计算机网络•自顶向下方法:网络层介绍、路由器的组成

网络层介绍

网络层服务:网络层为传输层提供主机到主机的通信服务

每一台主机和路由器都运行网络层协议

  • 发送终端:将传输层报文段封装到网络层分组中,发送给边缘路由器
  • 路由器:将分组从输入链路转发到输出链路
  • 接收终端:从边缘路由器接收分组,取出报文段交付给传输层
网络层的功能
  • 选路:确定去往目的路由器的路由
  • 转发:路由器根据选定的路由,将分组从输入端口转移到输出端口
选路和转发的关系
  • 转发表:记录分组头中某个字段与路由器输出端口之间的映射关系
  • 选路:计算转发表
  • 转发:根据转发表转运分组
数据面和控制面

数据面(Data plane)

  • 执行数据传输的功能属于数据面
  • 转发是数据面功能,在路由器内部实施分组转运
  • 是路由器本地功能

控制面(Control plane)

  • 控制数据传输的功能属于数据面于控制面
  • 选路是控制面功能,确定分组如何去往目的节点
  • 是网络范围的功能

两种控制面实现方法

  • 传统寻路算法:在路由器中实现
  • 软件定义网络:在服务器中实现
网络服务模型

定义了分组在发送终端与接收终端之间的传输特性

可能的网络服务

  • 保证交付
  • 具有时延上界的保证交付
  • 有序分组交付
  • 保证最小带宽
  • 安全性

不同架构的网络提供的网络层服务可能不同

同一个网络也可以提供不同的网络层服务

路由器的组成

路由器的两个主要功能

  • 选路:运行选路协议,计算转发表
  • 转发:依据转发表,从输入链路到输出链路转发数据报

输入端口功能

  • 物理接口:负责连接到物理链路(例如,以太网端口、光纤端口等),通过物理媒体(如电缆、光纤)接收数据。
  • 数据链路层处理:负责接收并处理从数据链路层(如以太网帧)接收到的数据包,检查是否有差错、解析MAC地址等。
  • 接收缓存:当数据包进入路由器时,它们首先会存储在输入端口的缓存中,以待进一步处理。

在这里插入图片描述

交换结构

路由器中的互联网络,用于在输入端口、输出端口和选路处理器之间转运分组

交换速率:通常是输入/输出链路速率的若干倍

三种类型的交换结构

在这里插入图片描述

通过内存交换
  • 传统计算机,在CPU的直接控制下完成交换
  • 数据包拷贝到系统内存中进行交换
  • 交换速率受限于内存带宽:每个数据包穿过系统总线2次

在这里插入图片描述

通过总线交换
  • 数据包通过一条共享总线,从输入端口缓存转移到输出端口缓存
  • 每个输入和输出端口通过一个接口硬件连接到总线上,每个端口被分配一个内部标签
  • 交换速率受限于总线带宽
  • 总线竞争
    • 总线协议防止多个端口同时传输,比如,采用时分多路复用的方法
    • 各个输入端口在总线上轮流广播分组,每个输出端口根据分组携带的内部标签接收发给本端口的分组
通过互联网络交换
  • 交换结构控制器通过控制交叉点的开、闭,在输入端口与输出端口间建立内部专用电路
  • 多对端口间可以并行传输
  • 分阻塞型与非阻塞型,阻塞型互联网络会产生阻塞

输出端口功能

  • 物理接口:负责将数据通过物理链路发送到目标设备。
  • 数据链路层处理:在数据包从路由器发送到目标时,处理数据链路层的相关操作(例如,封装数据包、添加校验和等)。
  • 发送缓存:在将数据包发送到目标设备之前,输出端口会将数据包存储在缓存中,以确保数据顺利传输。

在这里插入图片描述

网络层处理:

  • 组装:若需要,将交换结构输出的信元组装成分组
  • 排队:若输出端口来不及发送,分组在此排队
  • 调度:输出端口每次选择一个分组发送

链路层处理:执行链路层协议,封装

物理层处理:将比特流转换成物理信号

输入端口排队与丢包

当交换结构不能及时将输入端口的分组转移到输出端口时,输入端口处形成排队

排队带来的问题:

  • 队头阻塞: 队头分组阻塞其后分组的转发
  • 丢包:当输入队列溢出时,发生丢包

当交换结构速率至少为端口速率的n倍时(n为输入端口数),可以消除输入端口的排队,但路由器成本提高了

在这里插入图片描述

输出端口排队与丢包

多个输入端口同时向一个输出端口发送时,在输出端口形成排队

当输出队列满时,发生丢包

输出端口排队是不可避免的,设置多大的输出队列是一个问题:

  • 增大输出队列:可以减少丢包的发生,但会增加内存消耗,并增大分组延迟,延迟太大的分组最终被重传,浪费资源
  • 输出队列并不是越长越好!

在这里插入图片描述

分组丢弃

分组丢弃策略:当队列满时丢弃哪个分组?

  • 弃尾:丢弃到来的分组
  • 按照优先级丢弃:低优先级分组
  • 随机丢弃:随机选择一个分组丢弃,如Ramdom Early Detection (RED)

随机早期检测(RED,Random Early Detection)

RED 是一种基于队列长度的主动丢包策略,旨在避免拥塞的发生,并且在网络负载增加时及时做出反应。

工作原理:

  • 当队列的长度超过某个预设的阈值时,RED 会开始以随机的方式丢弃一些进入队列的数据包,而不是等到队列满了才丢弃。
  • RED 会根据队列的当前长度和网络的负载动态调整丢包的概率,队列长度越长,丢包的概率就越高。
  • 该策略通过在网络出现拥塞之前丢弃一些包,来减少网络的整体负载,从而避免网络进入严重拥塞的状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/64569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt监控系统放大招/历经十几年迭代完善/多屏幕辅屏预览/多层级设备树/网络登录和回放

一、前言说明 近期对视频监控系统做了比较大的更新升级,主要就是三点,第一点就是增加了辅屏预览,这个也是好多个客户需要的功能,海康的iVMS-4200客户端就有这个功能,方便在多个屏幕打开不同的视频进行查看&#xff0c…

网络原理(六): UDP 协议

目录 1. UDP 协议 1.1 协议特点 1.2 协议报文格式 1.2.1 UDP 长度 1.2.2 校验和 1. UDP 协议 在进行网络编程时, 我们已经对 UDP 协议进行了简单了解. 并且应用层的很多操作, 需要调用传输层的提供的接口, 基于 socket api 来进行完成的. 1.1 协议特点 UDP 协议具有以…

前端页面展示本电脑的摄像头,并使用js获取摄像头列表

可以通过 JavaScript 使用 navigator.mediaDevices.enumerateDevices() 获取电脑上的摄像头列表。以下是一个示例代码&#xff0c;可以展示摄像头列表并选择进行预览。 HTML JavaScript 实现摄像头列表展示和预览 <!DOCTYPE html> <html lang"zh-CN">…

【漫话机器学习系列】028.CP

Mallows’ Cp&#xff1a;标准化公式解析与应用 Mallows’ Cp 是一种常用的模型选择工具&#xff0c;用于在一系列候选模型中权衡拟合度和复杂性&#xff0c;帮助我们选择性能最优的模型。本文将基于其标准化公式展开详细解析&#xff0c;并探讨其应用场景、实现方法、优点与局…

Visual Studio 中增加的AI功能

前言&#xff1a; 人工智能的发展&#xff0c;在现在&#xff0c;编程技术的IDE里面也融合了AI的基本操做。本例&#xff0c;以微软的Visual Studio中的人工智能的功能介绍例子。 本例的环境&#xff1a; Visual Studio 17.12 1 AI 智能变量检测&#xff1a; 上图展示了一…

江科大学习笔记之——HAL库点亮一个LED灯

HAL三步走&#xff1a;1.建工程。2.设配置。3.写代码 一.建立工程 HAL库写法 点击FinIsh 2.配置时钟 2 、设置配置参数 把模块.C.h单独设置文件 生产代码 三写代码 控制GPIO就三步 1.RCC时钟使能 2.结构体配置GPIO寄存器 3.控制GPIO值 上面的步骤已经把前两步的配置完成了接下…

Spring MVC (下)小项目实战

1. 加法计算器 需求分析: 客户端输入俩个数,服务端进行相加然后返回结果. 约定前后端交互接口: 接口的概念: 接口⼜叫API&#xff08;ApplicationProgrammingInterface),我们⼀般讲到 接口或者API&#xff0c;指的都是同⼀个东西.是指应⽤程序对外提供的服务的描述,⽤于交换信…

【OpenGL ES】GLSL基础语法

1 前言 本文将介绍 GLSL 中数据类型、数组、结构体、宏、运算符、向量运算、矩阵运算、函数、流程控制、精度限定符、变量限定符&#xff08;in、out、inout&#xff09;、函数参数限定符等内容&#xff0c;另外提供了一个 include 工具&#xff0c;方便多文件管理 glsl 代码&a…

RPA系列-uipath 学习笔记4

使用Uipath 处理hover的问题 备注&#xff1a;使用uipath stversion&#xff1a;2024.10.6,所有学习来源自uipath Academy 首先&#xff0c;打开uipath给我们提供的一个网站 ACME,这个网站呢&#xff0c;需要提前注册一下的哈。 今天呢&#xff0c;就是记录一下&#xff0c;怎…

Linux:进程概念

1.冯诺依曼体系结构 结论&#xff1a; --- CPU不和外设直接打交道&#xff0c;和内存直接打交道。 --- 所有的外设&#xff0c;有数据需要收入&#xff0c;只能载入到内存中&#xff1b;内存写出&#xff0c;也一定是写道外设中。 --- 为什么程序要运行必须加载到内存&#xf…

活动预告 | Microsoft Azure 在线技术公开课:使用 Azure OpenAI 服务构建生成式应用

课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课&#xff0c;掌握创造新机遇所需的技能&#xff0c;加快对 Microsoft Cloud 技术的了解。参加我们举办的“使用 Azure OpenAI 服务构建生成式应用”活动&#xff0c;了解如何使用包括 GPT 在内的强大的…

Flutter:打包apk,详细图文介绍

困扰了一天&#xff0c;终于能正常打包apk安装了&#xff0c;记录下打包的流程。建议参考我这篇文章时&#xff0c;同时看下官网的构建说明。 官网构建并发布 Android 应用详情 1、AS创建Flutter项目 2、cmd执行命令 生成一个sunluyi.jks的文件&#xff0c;可以自行把sunluyi替…

【服务器学习专栏 1.2 -- 带外管理】

请阅读 嵌入式学习必备专栏 文章目录 Overview服务器带外管理BMC 介绍BMC 特点BMC 工作原理 Overview 从技术的角度&#xff0c;网络管理可分为带外管理&#xff08;out-of-band&#xff09;和带内管理&#xff08;in-band&#xff09;两种管理模式。 带内管理&#xff0c;是指…

南京市建邺区南苑街道一行莅临园区考察交流

2024年8月28日&#xff0c;南京市建邺区南苑街道办事处副主任董兵、南苑街道发展服务办公室一级主任科员王洪政、建邺区国资集团科创公司经理杲畅&#xff0c;在树莓集团华东区负责人田林和陈强经理的陪同下&#xff0c;莅临集团总部-国际数字影像产业园考察交流。 树莓科技&am…

docker中使用nginx

宿主机和docker中nginx做映射 宿主机中nginx 映射目录 /root/myDockerData/devnginx 在容器中相关位置分别是&#xff1a; 配置文件位置&#xff1a;/etc/nginx/ 日志位置&#xff1a;/var/log/nginx/ 项目位置&#xff1a;/usr/share/nginx/html 如下配置启动命令行&#x…

Casino Royale靶场wp

0x00 下载安装 https://download.vulnhub.com/casinoroyale/CasinoRoyale.ova 导入vmware启动 0x01 主机信息收集 0x02目录扫描 index.php 获取到一个域名 修改本地hosts 添加一行 路径&#xff1a;C:\Windows\System32\drivers\etc 192.168.2.20 casino-royale.local 点击…

智能家居体验大变革 博联 AI 方案让智能不再繁琐

1. 全球AI技术发展背景及智能家居市场趋势 人工智能&#xff08;AI&#xff09;技术的飞速发展正在推动全球各行业的数字化转型。国际电信联盟与德勤联合发布《人工智能向善影响》报告指出&#xff0c;全球94%的商界领袖认为&#xff0c;人工智能技术对于其企业在未来5年内的发…

鸿蒙开发(27)案例今日任务

案例为纯前端实现&#xff0c;总结案例。 主页面代码 import { TaskStatisties } from ../view/TaskStatisties import { TaskItem } from ../view/TaskItem import CreateTaskModel, {TaskModel} from ../viewmodel/TaskModel import { router } from kit.ArkUI// xxx.ets En…

WPF编程excel表格操作

WPF编程excel表格操作 摘要NPOI安装封装代码测试代码 摘要 Excel操作几种方式 使用开源库NPOI(常用&#xff0c;操作丰富)使用Microsoft.Office.Interop.Excel COM组件(兼容性问题)使用OpenXml(效率高)使用OleDb(过时) NPOI安装 封装代码 using System; using System.IO; u…

音视频采集推流时间戳记录方案

音视频同步更多文章 深入理解音视频pts&#xff0c;dts&#xff0c;time_base以及时间数学公式_视频pts计算-CSDN博客 ffplay音视频同步分析_ffplay 音视频同步-CSDN博客 音视频采集打时间戳设计 实时音视频数据的采集和处理场景。具体来说: 采集阶段: 在音视频数据采集过…