【计算机网络笔记】网络层服务模型——虚电路网络

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)——速率、带宽、延迟
计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)
Cookie技术
Web缓存/代理服务器技术
传输层服务概述、传输层 vs. 网络层
传输层——多路复用和多路分用
传输层——UDP简介
传输层——可靠数据传输原理之Rdt协议
传输层——可靠数据传输之流水线机制与滑动窗口协议
传输层——TCP特点与段结构
传输层——TCP的可靠数据传输
TCP连接管理(图解三次握手和四次挥手)
传输层——拥塞控制原理与解决方法
TCP的拥塞控制机制
网络层服务与核心功能


  • 系列文章目录
  • 网络层服务模型
  • 虚电路网络
    • 虚电路(VC)
    • 虚电路(VC)的具体实现
    • 虚电路信令协议(signaling protocols)


网络层服务模型

网络层实际上是为发送端的端主机到接收端的端主机之间提供一个数据报传输的“通道”。那网络为传输层提供了怎样的服务模型(service model)?

不同的网络提供的服务模型是不同的。比如Internet网络提供的服务很简单,叫做“best effort”即尽力而为服务。也就是什么都不保障。所以在这个模型中,带宽、丢包率、有序性、时间都保障不了。同时也不提用拥塞控制的反馈。

概括地来说,有两类典型的服务:

  • 无连接服务(connection-less service):

    • 不事先为系列分组的传输确定传输路径
    • 每个分组独立确定传输路径
    • 不同分组可能传输路径不同。由网络设备根据当前的网络状态来选择路径。这就有可能导致发送的一组顺序的分组在到达的时候顺序就不一样了
    • 最具有代表性的称为数据报网络(datagram network )
  • 连接服务(connection service):

    • 首先为系列分组的传输确定从源到目的经过的路径 (建立连接)
    • 然后沿该路径(连接)传输系列分组
    • 系列分组传输路径相同。这样分组的传输顺序基本可以得到保障
    • 传输结束后拆除连接
    • 比较有代表性的一类网络叫做虚电路网络(virtual-circuit network )

数据报(datagram)网络虚电路(virtual-circuit)网络是典型的两类分组交换网络。数据报网络提供网络层无连接服务,虚电路网络提供网络层连接服务。类似于传输层的无连接服务(UDP)和面向连接服务(TCP),但是网络层服务提供的是主机到主机的服务,最关键的实现由网络核心完成。

这篇文章主要介绍虚电路网络。


虚电路网络

虚电路(VC)

虚电路是从电路交换网络借用过来的一种思想。虚电路是一条从源主机到目的主机,建立起逻辑连接,类似于电路的路径。

虚电路与电路交换网络中的电路的区别在于:

  • 是分组交换。在分组交换中,每个分组的传输利用链路的全部带宽。而电路在某些链路上使用多路复用技术,只占用这条链路的一部分资源。
  • 源到目的路径经过的网络层设备共同完成虚电路功能。

虚电路在通信过程中与电路交换网络有相似之处:呼叫建立(call setup)→数据传输 →拆除呼叫。(这里用的是呼叫,也是借用了电路交换网络中的术语)。在虚电路建立的时候,会为这条虚电路分配一个标识(VC ID,通常来说是一个编号),然后当希望沿着这条虚电路传输一系列分组的时候,那么就让这些分组携带虚电路标识(VC ID),这样就能确定一个分组是在哪个虚电路上进行传输的。虚电路经过的每个网络设备 (如路由器),都需要维护这条虚电路的连接状态。

作为虚电路网络,它集成了电路交换和分组交换这两类网络的优点。它可以借助电路交换网络的特点,链路、网络设备资源(如带宽 、缓存等)可以面向虚电路(VC)进行预分配,来实现可预期的服务性能。


虚电路(VC)的具体实现

首先来看看每条虚电路从构成方面包括:

  • 从源主机到目的主机的一条路径
  • 虚电路号(VCID), 沿路每段链路一个编号。一般来说,链路带宽越大,允许建立虚电路的数量就越大。虚电路号是局部化的,也就是说同一段虚电路在每一段链路上的编号可能是不一样的
  • 因此虚电路沿路每个网络层设备(如路由器),利用虚电路转发表记录经过的每条虚电路

因此沿某条虚电路传输的分组,携带对应虚电路的 VCID,而不是目的地址。在这个过程中,需要注意的是,同一条VC ,在经过的每段链路上的VCID可能不同。路由器转发分组时依据转发表改写/替换虚电路号。

比如下面这张图中,这条红色的VC在每段链路上的VCID都不一样。在路由器所维护的转发表中,需要确定虚电路从哪个接口来,它来的时候的虚电路号是多少,它的输出接口是什么,输出的时候它的虚电路号应该替换为多少。通过这样的转发表就可以将不同链路上的VCID联系在一起。

在这里插入图片描述

在这里插入图片描述

虚电路信令协议(signaling protocols)

  • 用于VC的建立、维护与拆除。在建立过程中也同样存在路径选择问题。所以在虚电路网络中同样需要路由协议或算法,只不过是在虚电路建立的时候一次性路由
  • 在虚电路网络中广泛被采纳。如ATM、帧中继(frame-relay)网络等
  • Internet网路不是虚电路网络,所以目前不采用

在这里插入图片描述

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

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

相关文章

frida hook(深入浅出)

Andrax搭建Android渗透测试环境 编译官方frida源码 APP基于Frida脱壳 Frida Hook的使用方法 Frida逆向分析APP实战 魔改frida到绕过检测的思路 配置fridaserver为后台进程 使用frida-net玩转frida-rpc 内置frida hook到Android系统 内置frida-inject工具到手机系统 三…

MySQL基础操作

注:mysql是大小写不敏感的. 1.数据库基础操作(展示) //1.展示当前数据库 show databases;//2.创建数据库 create database 数据库名;//3.使用数据库 use 数据库名;//4.删除数据库 drop database 数据库名;2.SQL中基本类型 2.1 数值类型(整数和浮点型) 注:decimal和numeric…

Spring笔记(三)(Spring整合web环境)

01、Spring整合web环境 1.1 Javaweb三大组件及环境特点 在Java语言范畴内,web层框架都是基于Javaweb基础组件完成的,所以有必要复习一下Javaweb组件的特点 组件作用特点Servlet服务端小程序,负责接收客户端请求并作出响应的单例对象&#…

详解FreeRTOS:系统时钟节拍(进阶篇—8)

在详解FreeRTOS:FreeRTOS时间片调度(进阶篇—7)中我们讲到了时钟节拍这个概念,本篇博文将详细讲解FreeRTOS系统时钟节拍相关知识。 不管是什么系统,运行都需要有个系统时钟节拍,xTickCount 就是FreeRTOS 的系统时钟节拍计数器。每个滴答定时器中断中 xTickCount 就会加一…

Go - 用户服务和Web服务

文章目录 go日志库之zap1. 安装和基本使用2. 写入日志文件 go的配置文件管理-viper1. 介绍2. yaml教程3. 安装4. 将配置文件映射成struct5. 使用 自定义验证器1. 手机号码正则表达式2. 自定义翻译的问题 JWT1. json web token是什么?2. 什么时候你应该用JSON Web To…

虚幻引擎:如何在工程里面添加插件

1.在自己的项目中安装插件 在content目录下创建一个Plugins的文件,将插件文件放进去即可 2.在软件上安装,这样所有创建的项目都会带有此插件 将插件放在自己软件的这个目录下就好了

mediapipe流水线分析 二

目标检测 Graph 一 流水线上游输入处理 1 TfLiteConverterCalculator 将输入的数据转换成tensorflow api 支持的Tensor TfLiteTensor 并初始化相关输入输出节点 ,该类的业务主要通过 interpreter std::unique_ptrtflite::Interpreter interpreter_ nullptr; 实现…

【漏洞复现】Apache_Shiro_1.2.4_反序列化漏洞(CVE-2016-4437)

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞分析3、漏洞验证 说明内容漏洞编号CVE-2016-4437漏洞名称Apache_Shiro_1.2.4_反序列化漏洞漏洞评级…

Xmake v2.8.5 发布,支持链接排序和单元测试

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好&#x…

linux下IO模及其特点及select

ftp实现 模拟FTP核心原理:客户端连接服务器后,向服务器发送一个文件。文件名可以通过参数指定,服务器端接收客户端传来的文件(文件名随意),如果文件不存在自动创建文件,如果文件存在&#xff0c…

Discourse 如何在 header 上添加 HTML

虽然现在大部分网站都开始支持使用 CDN 的网站校验了。 但还有些网站在你需要他们提供服务的时候要求使用 header 的 meta 数据校验。 Discourse 是可以轻松的实现上面的功能的。 添加方法 选择你的 Discourse 网站下的自定义。 然后在左侧选择你需要添加的主题。 为了方便…

AD9371 官方例程 NO-OS 主函数 headless 梳理(一)

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方…

【Java 进阶篇】JSTL 详解

Java JSTL(JavaServer Pages Standard Tag Library)是用于简化在 JSP 页面上的开发工作的 Java 标签库。它提供了在 JSP 页面上使用的标准标签,可以帮助开发人员更轻松地访问和操作数据,而无需编写大量的 Java 代码。Java JSTL 是…

工业相机基本知识理解:工业相机IO接口,功耗和供电方式

I-input 相机接收外部信号,可用于触发相机(硬触发),也可用于定制不同的 功能,例如使用不同信号宽度来改变相机的曝光时间。主要用于现场设 备控制相机使用,常常配合各种传感器使用 O-output 相机输出信号&a…

antd-vue + vue3 实现a-table动态增减行,通过a-from实现a-table行内输入验证

一、效果图 图一:校验效果 二、主要代码 注意: 1、form 与 table 绑定的是同一个数据 tableSource 并且是一个数据(ElementUI 需要 对象包数组) 2、form用的是 name 绑定 -> :name"[index, vlan_id]" 3、form-i…

【分布式事务】深入探索 Seata 的四种分布式事务解决方案的原理,优缺点以及在微服务中的实现

文章目录 前言一、XA 模式1.1 XA 模式原理1.2 XA 模式的优缺点及应用场景1.3 Seata XA 模式在微服务中的实现 二、AT 模式2.1 Seata AT 模式原理2.2 AT 模式的脏写问题和写隔离3.3 AT 模式的优缺点3.4 Seata AT 模式在微服务中的实现 三、TCC 模式3.1 TCC 模式原理3.2 Seata 的…

内窥镜项目

★ 手持pad内窥镜项目 项目描述:3D电子内窥镜软件项目是一个基于BS(浏览器服务器)架构的项目,旨在实现对内窥镜设备的远程控制和高级功能操作。该项目允许操作员使用平板电脑手动触摸屏上的按钮、外部按键或脚踏板 来控制内窥镜设…

初阶JavaEE(15)(Cookie 和 Session、理解会话机制 (Session)、实现用户登录网页、上传文件网页、常用的代码片段)

接上次博客:初阶JavaEE(14)表白墙程序-CSDN博客 Cookie 和 Session 你还记得我们之前提到的Cookie吗? Cookie是HTTP请求header中的一个属性,是一种用于在浏览器和服务器之间持久存储数据的机制,允许网站…

【C++】类和对象(一):什么是面向对象,访问限定符有哪些,类定义细节,结构体和类的关系。

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

机组 指令系统

机器指令 机器指令:每一条机器语言的语句 指令系统:全部机器指令的集合 指令的一般格式 指令由操作码和地址码两部分组成 操作码 作用:指明该指令要完成的操作 位数:反映机器的操作种类,即机器允许的指令条数 …