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

网络层介绍

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

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

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

数据面(Data plane)

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

控制面(Control plane)

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

两种控制面实现方法

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

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

可能的网络服务

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

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

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

路由器的组成

路由器的两个主要功能

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

输入端口功能

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

在这里插入图片描述

交换结构

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

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

三种类型的交换结构

在这里插入图片描述

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

在这里插入图片描述

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

输出端口功能

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

在这里插入图片描述

网络层处理:

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

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

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

输入端口排队与丢包

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

排队带来的问题:

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

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

在这里插入图片描述

输出端口排队与丢包

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

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

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

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

在这里插入图片描述

分组丢弃

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

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

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

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

工作原理:

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

信创云之天翼云:引领信创云时代的先锋力量

数据显示,2024年中国云服务市场规模已达到4242.5亿元,显示出各行业对信息技术软硬件的依赖程度不断加深。在国家政策的持续支持下,数字化转型为云服务行业带来了前所未有的发展机遇。预计到2025年,中国云服务市场规模将突破4795.4…

Elasticsearch:基础概念

一、什么是Elasticsearch Elasticsearch是基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展数据存储和矢量数据库。它针对生产规模工作负载的速度和相关性进行了优化。使用 Elasticsearch 可以近乎实时地搜索、索引、存储和分析各种形状和大小的数据。Elasticsearch 是…

智慧工地解决方案 1

建设背景与挑战 工地施工现场环境复杂,人员管理难度大,多工种交叉作业导致管理混乱,事故频发。传统管理方式难以实现科学、有效、集中式的管理,特别是在环境复杂、地点分散的情况下,监管困难,取证复杂。施…

若依中Feign调用的具体使用(若依微服务版自身已集成openfeign依赖,并在此基础上定义了自己的注解)

若依中Feign调用具体使用 注意:以下所有步骤实现的前提是需要在启动类上加入注解 EnableRyFeignClients 主要是为开启feign接口扫描 1.创建服务提供者(provider) 导入依赖(我在分析依赖时发现若依本身已经引入openfeign依赖,并在此基础上自定义了自己的EnableRyF…

基于Springboot +Vue 实验课程预约管理系统

基于Springboot Vue 实验课程预约管理系统 前言 在现代教育领域,实验课程预约管理系统扮演着至关重要的角色。随着教学资源的日益紧张和学生需求的多样化,传统的人工管理方式已难以满足高效、透明的课程安排需求。基于SpringBootVue的实验课程预约管理…

CSS2笔记

一、CSS基础 1.CSS简介 2.CSS的编写位置 2.1 行内样式 2.2 内部样式 2.3 外部样式 3.样式表的优先级 4.CSS语法规范 5.CSS代码风格 二、CSS选择器 1.CSS基本选择器 通配选择器元素选择器类选择器id选择器 1.1 通配选择器 1.2 元素选择器 1.3 类选择器 1.4 ID选择器 1.5 基…

【偏好对齐】通过ORM直接推导出PRM

论文地址:https://arxiv.org/pdf/2412.01981 相关博客 【自然语言处理】【大模型】 ΨPO:一个理解人类偏好学习的统一理论框架 【强化学习】PPO:近端策略优化算法 【偏好对齐】PRM应该奖励单个步骤的正确性吗? 【偏好对齐】通过OR…

springmvc--请求参数的绑定

目录 一、创建项目,pom文件 二、web.xml 三、spring-mvc.xml 四、index.jsp 五、实体类 Address类 User类 六、UserController类 七、请求参数解决中文乱码 八、配置tomcat,然后启动tomcat 1. 2. 3. 4. 九、接收Map类型 1.直接接收Map类型 &#x…

第五届电网系统与绿色能源国际学术会议(PGSGE 2025)

2025年第五届电网系统与绿色能源国际学术会议(PGSGE 2025) 定于2025年01月10-12日在吉隆坡召开。 第五届电网系统与绿色能源国际学术会议(PGSGE 2025) 基本信息 会议官网:www.pgsge.org【点击投稿/了解会议详情】 会议时间:202…

CSS——4. 行内样式和内部样式(即CSS引入方式)

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>方法1&#xff1a;行内样式</title></head><body><!--css引入方式&#xff1a;--><!--css的引入的第一种方法叫&#xff1a;行内样式将css代码写…

彩色图像分割—香蕉提取

实验任务 彩色图像分割—香蕉提取 利用香蕉和其它水果及其背景颜色在R,G,B分量上的差异进行识别,根据香 蕉和其它水果在R,G,B分量的二值化处理&#xff0c;获得特征提取的有效区域&#xff0c;然后提取 特征&#xff0c;达到提取香蕉的目的。附&#xff1a;统计各种水果及个数…

【算法】克里金(Kriging)插值原理及Python应用

文章目录 [toc] 前言一、克里金插值原理1.1 概述1.2 基本公式1.2 权重 w i w_i wi​的确定1.3 拟合函数的确定 二、Python建模与可视化2.1 Demo2.1.1 随机生成已知格网点2.1.2 拟合2.1.3 评估内符合精度2.1.3 内插未知格网点2.1.4 画图 2.2 结果图 参考文献 前言 最近学习了一下…

QML自定义滑动条Slider的样式

代码展示 import QtQuick 2.9 import QtQuick.Window 2.2 import QtQuick.Controls 2.1Window {visible: truewidth: 640height: 480title: qsTr("Hello World")Slider {id: controlvalue: 0.5background: Rectangle {x: control.leftPaddingy: control.topPadding …

Android Studio学习笔记

01-课程前面的话 02-Android 发展历程 03-Android 开发机器配置要求 04-Android Studio与SDK下载安装 05-创建工程与创建模拟器 在 Android Studio 中显示 “Device Manager” 有以下几种方法&#xff1a; 通过菜单选项 打开 Android Studio&#xff0c;确保已经打开了一个…

Qt天气预报系统设计界面布局第四部分右边

Qt天气预报系统 1、第四部分右边的第一部分1.1添加控件 2、第四部分右边的第二部分2.1添加控件 3、第四部分右边的第三部分3.1添加控件3.2修改控件名字 1、第四部分右边的第一部分 1.1添加控件 拖入一个widget&#xff0c;改名为widget04r作为第四部分的右边 往widget04r再拖…

Spring boot + Hibernate + MySQL实现用户管理示例

安装MySQL Windows 11 Mysql 安装及常用命令_windows11 mysql-CSDN博客 整体目录 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLS…

Spring Boot 整合 Keycloak

1、概览 本文将带你了解如何设置 Keycloak 服务器&#xff0c;以及如何使用 Spring Security OAuth2.0 将Spring Boot应用连接到 Keycloak 服务器。 2、Keycloak 是什么&#xff1f; Keycloak是针对现代应用和服务的开源身份和访问管理解决方案。 Keycloak 提供了诸如单点登…

【Rust自学】10.2. 泛型

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 题外话&#xff1a;泛型的概念非常非常非常重要&#xff01;&#xff01;&#xff01;整个第10章全都是Rust的重难点&#xff01;&#xf…

51单片机——共阴数码管实验

数码管中有8位数字&#xff0c;从右往左分别为LED1、LED2、...、LED8&#xff0c;如下图所示 如何实现点亮单个数字&#xff0c;用下图中的ABC来实现 P2.2管脚控制A&#xff0c;P2.3管脚控制B&#xff0c;P2.4管脚控制C //定义数码管位选管脚 sbit LSAP2^2; sbit LSBP2^3; s…

SwiftUI 撸码常见错误 2 例漫谈

概述 在 SwiftUI 日常撸码过程中&#xff0c;头发尚且还算茂盛的小码农们经常会犯这样那样的错误。虽然犯这些错的原因都很简单&#xff0c;但有时想要快速准确的定位它们却并不容易。 况且这些错误还可能在模拟器和 Xcode 预览&#xff08;Preview&#xff09;表现的行为不甚…