当前位置: 首页 > news >正文

网络层的角色与重要性:互联网通信的关键

本章讨论网络层及网络互连问题,也就是讨论多个网络通过路由器互连成为一个互连网络的各种问题。在介绍网络层提供的两种不同服务后,我们开始讲解本章的核心内容——网际协议(IP),这是本书的一项重点内容。只有较深入地掌握了网际协议的相关知识,才能理解互联网是怎样工作的。本章讨论互联网几种常用的路由选择协议、网络层的关键设备路由器及虚拟专用网(VPN)和网络地址转换(NAT),介绍IP多播、移动IP、下一代网际协议IPv6和IP增强技术MPLS,最后简单介绍当前网络领域最热门和最具发展前途的技术之一——软件定义网络(SDN)的基本思想。

本章最重要的内容如下:

  1. 虚拟互连网络的概念。
  2. IP地址的编址方式,以及IP地址与物理地址的关系。
  3. IP数据报的转发流程。
  4. 路由选择协议的工作原理。

网络层概述

网络层关注的是如何将分组从源主机沿着网络路径送达目的主机。为了将分组送达目的主机,可能沿路要经过许多跳(Hop)中间路由器。为此,网络层必须知道整个网络的拓扑结构,并且在拓扑结构中选择适当的转发路径。同时,网络层还必须仔细地选择路由器,以避免发生某些通信链路或路由器负载过重,而其他链路和路由器空闲的情况。因此,网络中的每台主机和路由器都必须具有网络层功能,而网络层最核心的功能就是分组转发和路由选择。

分组转发和路由选择

网络层的主要任务就是将分组从源主机传送到目的主机,可以将该任务细分为网络层的两种重要的功能:

  1. 分组转发:当一个分组到达某路由器的一条输入链路时,该路由器必须将该分组转发到适当的输出链路。为此,每个路由器中需要有一个转发表(Forwarding Table),路由器在转发分组时,要根据到达分组首部中的转发标识在转发表中查询。查询该转发表的结果指出了该分组将被转发的路由器的链路接口。分组首部中的转发标识可能是该分组的目的地址或该分组所属连接的指示,这取决于具体的网络层协议。

  2. 路由选择:当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路由或路径,这就是路由选择(Routing)。路由选择的结果就是生成供分组转发使用的转发表。图4-1揭示了路由选择和分组转发的重要关系。
    在这里插入图片描述

    路由选择可以是集中式的也可以是分布式的。路由选择可以是人工的(由网络操作员直接配置转发表),也可以是自动的。分布式自动路由选择要求在每台路由器上运行路由选择协议,每台路由器互相交换路由信息并各自计算路由。实际上,路由选择直接生成的是路由表(Routing Table),然后由路由表生成最终的转发表。路由表和转发表在用途和实现细节上有些不同,但我们在讨论路由选择的原理时不进行区分。

我们可以把网络层在逻辑上分解为两个互相作用的部分,即数据平面(也常被称为转发平面)和控制平面。分组转发直接作用于传输的数据,属于数据平面,而路由选择是用来控制路由器的转发决策,属于控制平面

虚电路和数据报服务

网络层可以为用户提供面向连接的服务,也可以提供无连接的服务。在迄今为止的所有主要的计算机网络体系结构中,网络层或提供主机到主机的无连接服务,或提供主机到主机的面向连接服务,而不同时提供这两种服务。在网络层提供面向连接服务的计算机网络被称为虚电路网络(Virtual-Circuit Network),而在网络层提供无连接服务的计算机网络被称为数据报网络(Datagram Network)。
在这里插入图片描述

  1. 虚电路网络:在虚电路网络中,网络层提供面向连接的服务。虚电路网络的实现需要在通信前建立一条虚电路。所有沿着虚电路传输的分组都沿着这条逻辑连接按照存储转发方式传送。图4-2(a)是虚电路网络提供面向连接服务的示意图。
  2. 数据报网络:在数据报网络中,网络层提供无连接的服务。每一个分组(IP数据报)独立发送,与其前后的分组无关。数据报网络不提供服务质量(QoS)的承诺,所传送的分组可能出错、丢失、重复和失序。图4-2(b)给出了数据报网络提供无连接服务的示意图。

在这里插入图片描述

虚电路网络

互联网是一个数据报网络,然而,许多其他网络体系结构包括ATM网络、帧中继网络和X.25网络都是虚电路网络。这些网络层连接被称为虚电路(Virtual Circuit, VC)。

在这里插入图片描述

一条虚电路的组成如下:

  1. 源主机和目的主机之间的路径(即一系列链路和路由器)。
  2. VC号,该路径上的每段链路的号码。
  3. 该路径上的每台路由器(即虚电路交换机,这里我们统一使用路由器这一名称)中的转发表表项。

虚电路的工作过程

  1. 虚电路建立:在建立阶段,发送方运输层与网络层联系,指定接收方地址,等待该网络建立虚电路。网络层决定发送方与接收方之间的路径,并为沿该路径的每条链路决定一个VC号。在沿该路径的每台路由器的转发表中增加一个表项。
  2. 数据传送:一旦创建了虚电路,分组就可以开始沿该虚电路传送。路由器根据分组首部中的VC号查找转发表,更改分组的VC号并从相应出接口将分组转发出去。
  3. 虚电路拆除:当发送方(或接收方)通知网络层它想终止该虚电路时,网络层将通知网络另一侧的端系统结束呼叫,并更新路径上每台路由器中的转发表,以表明该虚电路已不存在。

虚电路网络中的信令报文:在虚电路建立和拆除过程中,端系统向网络发送的指示虚电路启动与终止的报文,以及路由器之间传递的用于建立虚电路的报文,被称为信令报文,用来交换这些报文的协议常称为信令协议。

总结:网络层通过分组转发和路由选择实现了数据的传输。虚电路网络和数据报网络提供了不同的服务方式,各有优劣。理解这两种服务方式和它们的实现原理,是掌握网络层功能的关键。
图文来源:《计算机网络教程》

相关文章:

网络层的角色与重要性:互联网通信的关键

本章讨论网络层及网络互连问题,也就是讨论多个网络通过路由器互连成为一个互连网络的各种问题。在介绍网络层提供的两种不同服务后,我们开始讲解本章的核心内容——网际协议(IP),这是本书的一项重点内容。只有较深入地…...

Transformer模型:WordEmbedding实现

前言 最近在学Transformer,学了理论的部分之后就开始学代码的实现,这里是跟着b站的up主的视频记的笔记,视频链接:19、Transformer模型Encoder原理精讲及其PyTorch逐行实现_哔哩哔哩_bilibili 正文 首先导入所需要的包:…...

如何压缩pdf文件大小,怎么压缩pdf文件大小

在数字化时代,pdf文件因其稳定的格式和跨平台兼容性,成为了工作与学习中不可或缺的一部分。然而,随着pdf文件内容的丰富,pdf文件的体积也随之增大,给传输和存储带来了不少挑战。本文将深入探讨如何高效压缩pdf文件大小…...

Spring Boot集成Atomix快速入门Demo

1.什么是Atomix? Atomix是一个能用的Java框架,用来构建高可用的分布式系统。它是基于RAFT协议的实现,为用户提供了各种原子数据结构,比如map/set/integer等,这些数据结构都可以在整个集群中共享并保证一致性&#xff…...

Go语言map并发安全,互斥锁和读写锁谁更优?

并发编程是 Go 语言的一大特色,合理地使用锁对于保证数据一致性和提高程序性能至关重要。 在处理并发控制时,sync.Mutex(互斥锁)和 sync.RWMutex(读写锁)是两个常用的工具。理解它们各自的优劣及擅长的场景…...

Java多线程性能调优

Synchronized同步锁优化方法 1.6之前比较重量级,1.6后经过优化性能大大提升 使用Synchronized实现同步锁住要是两种方式:方法、代码块。 1.代码块 Synchronized在修饰同步代码块时,是由 monitorenter和monitorexit指令来实现同步的。进入mo…...

MacOS 通过Docker安装宝塔面板搭建PHP开发环境

1、docker拉取ubuntu系统 docker pull ubuntu2、运行容器 docker run -i -t -d --name bt -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 -p 3306:3306 -p 6379:6379 --privilegedtrue -v /Users/oi/Sites:/www/wwwroot ubuntu-v 后的 /Users/oi/Sites 代表…...

Unity发布webgl之后修改StreamingAssets 内的配置文件读取到的还是之前的配置文件的解决方案

问题描述 unity发布webgl之后,修改在StreamingAssets 中的配置信息,修改之后读取的还是之前的配置信息 读取配置文件的代码IEnumerator IE_WebGL_LoadWebSocketServerCopnfig(){var uri new System.Uri(Path.Combine(Application.streamingAssetsPath…...

离线语音识别芯片在智能生活中的应用

离线语音识别芯片,这一技术正逐渐渗透到我们日常生活的每一个角落,为众多产品带来前所未有的智能体验。它能够应用到多种产品中,‌包括但不限于:‌ 1、智能音箱:‌语音识别芯片作为智能音箱的核心,‌使用户…...

替换:show-overflow-tooltip=“true“ ,使用插槽tooltip,达到内容可复制

原生的show-overflow-tooltip“true” 不能满足条件&#xff0c;使用插槽自定义编辑&#xff1b; 旧code <el-table-column prop"reason" label"原因" align"center" :show-overflow-tooltip"true" /> <el-table-column pro…...

219.贪心算法:柠檬水找零(力扣)

代码解决 class Solution { public:bool lemonadeChange(vector<int>& bills) {int num50, num100; // 初始化5美元和10美元的计数器for(int i0; i < bills.size(); i) // 遍历所有账单{if(bills[i]5) // 如果账单是5美元{num5; // 增加5美元的计数continue; // …...

通过 Azure OpenAI 服务使用 GPT-35-Turbo and GPT-4(win版)

官方文档 Azure OpenAI 是微软提供的一项云服务&#xff0c;旨在将 OpenAI 的先进人工智能模型与 Azure 的基础设施和服务相结合。通过 Azure OpenAI&#xff0c;开发者和企业可以访问 OpenAI 的各种模型&#xff0c;如 GPT-3、Codex 和 DALL-E 等&#xff0c;并将其集成到自己…...

MySQL 面试真题(带答案)

MySQL 场景面试题 目录 场景1&#xff1a;用户注册和登录系统 1.1 数据库设计1.2 用户注册1.3 用户登录 场景2&#xff1a;订单管理系统 2.1 数据库设计2.2 创建订单2.3 查询订单 场景3&#xff1a;博客系统 3.1 数据库设计3.2 发布文章3.3 评论功能 场景1&#xff1a;用户…...

《A++ 敏捷开发》- 10 二八原则

团队成员协作&#xff0c;利用项目数据&#xff0c;分析根本原因&#xff0c;制定纠正措施&#xff0c;并立马尝试&#xff0c;判断是否有效&#xff0c;是改善的“基本功”。10-12章会探索里面的注意事项&#xff0c;13章会看两家公司的实施情况和常见问题。 如果已经获得高层…...

Spring Boot 框架知识汇总

1、什么是SpringBoot&#xff1f; 通过Spring Boot&#xff0c;可以轻松地创建独立的&#xff0c;基于生产级别的Spring的应用程序&#xff0c;您可以“运行"它们。大多数Spring Boot应用程序需要最少的Spring配置&#xff0c;集成了大量常用的第三方库配置&#xff0c;使…...

国产麒麟、uos在线编辑word文件并控制编辑区域(局部编辑)

windows系统也适用&#xff0c;该插件可同时支持windows和国产系统 在实际项目开发中&#xff0c;以下场景可能会用到Word局部编辑功能&#xff1a; 合同审批公文流转策划设计报告汇签单招投标&#xff08;标书文件&#xff09;其他&#xff0c;有模板且需要不同人员协作编辑…...

Go:基本变量与数据类型

目录 前言 前期准备 Hello World! 一、基本变量 1.1 声明变量 1.2 初始化变量 1.3 变量声明到初始化的过程 1.4 变量值交换 1.5 匿名变量 1.6 变量的作用域 二、数据类型 1.1 整型 1.2 浮点型 1.3 字符串 1.4 布尔类型 1.5 数据类型判断 1.6 数据类型转换 1.…...

计算器原生js

目录 1.HTML 2.CSS 2.JS 4.资源 5.运行截图 6.下载连接 7.注意事项 1.HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-s…...

怎样将aac转换mp3格式?推荐四个aac转MP3的方法

怎样将aac转换mp3格式&#xff1f;当需要将aac格式音频转换为MP3格式时&#xff0c;有几种方法可以轻松实现这一目标。MP3是一种广泛支持的音频格式&#xff0c;几乎所有设备和平台都能播放MP3文件&#xff0c;包括各种音乐播放器、手机、平板电脑和汽车音响系统。而且它也提供…...

MongoDB - 查询操作符:比较查询、逻辑查询、元素查询、数组查询

文章目录 1. 构造数据2. MongoDB 比较查询操作符1. $eq 等于1.1 等于指定值1.2 嵌入式文档中的字段等于某个值1.3 数组元素等于某个值1.4 数组元素等于数组值 2. $ne 不等于3. $gt 大于3.1 匹配文档字段3.2 根据嵌入式文档字段执行更新 4. $gte 大于等于5. $lt 小于6. $lte 小于…...

html5——CSS高级选择器

目录 属性选择器 E[att^"value"] E[att$"http"] E[att*"http"] 关系选择器 子代&#xff1a; 相邻兄弟&#xff1a; 普通兄弟&#xff1a; 结构伪类选择器 链接伪类选择器 伪元素选择器 CSS的继承与层叠 CSS的继承性 CSS的层叠性 …...

Python-数据爬取(爬虫)

~~~理性爬取~~~ 杜绝从入门到入狱 1.简要描述一下Python爬虫的工作原理&#xff0c;并介绍几个常用的Python爬虫库。 Python爬虫的工作原理 发送请求&#xff1a;爬虫向目标网站发送HTTP请求&#xff0c;通常使用GET请求来获取网页内容。解析响应&#xff1a;接收并解析HTTP响…...

虚幻引擎ue5如何调节物体锚点

当发现锚点不在物体上时&#xff0c;如何调节瞄点在物体上。 步骤1&#xff1a;按住鼠标中键拖动锚点&#xff0c;在透视图中多次调节锚点位置。 步骤2:在物体上点击鼠标右键点击-》锚定--》“设置为枢轴偏移”即可。...

Xcode持续集成之道:自动化构建与部署的精粹

标题&#xff1a;Xcode持续集成之道&#xff1a;自动化构建与部署的精粹 在快节奏的软件开发中&#xff0c;持续集成&#xff08;Continuous Integration, CI&#xff09;是提升开发效率和软件质量的关键实践。Xcode作为苹果生态中的核心开发工具&#xff0c;提供了与多种持续…...

Java高频面试基础知识点整理13

干货分享&#xff0c;感谢您的阅读&#xff01;背景​​​​​​高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09; 最全文章见&#xff1a;Java高频面试基础知识点整理 &#xff08;一&#xff09;Java基础高频知识考点 针对人员&#xff1a; 1.全部人员都…...

css画半圆画圆弧

利用border-radius和border完成&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> <style> .semicircle {width: 100px;height: 50px;border-radius: 0 0 50px 50px;background:…...

LeetCode HOT100(四)字串

和为 K 的子数组&#xff08;mid&#xff09; 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2 解法1&#xff1a;前缀和Map 这…...

uniapp引入 uview( HBuilder 和 npm 两种安装方式) #按需引入

方式一、HBuilder 安装 uview 1.1. HBuider安装-链接-》》 1.2. 在uni.scss 中引入 import "uni_modules/uview-ui/theme.scss";1.3. main.js 引入&#xff08;import Vue from ‘vue’ 下面&#xff09; import uView from "uni_modules/uview-ui"; V…...

使用uni-app和Golang开发影音类小程序

在数字化时代&#xff0c;影音内容已成为人们日常生活中不可或缺的一部分。个人开发者如何快速构建一个功能丰富、性能优越的影音类小程序&#xff1f;本文将介绍如何使用uni-app前端框架和Golang后端语言来实现这一目标。 项目概述 本项目旨在开发一个个人影音类小程序&#…...

基于Go1.19的站点模板爬虫详细介绍

构建一个基于Go1.19的站点模板爬虫是一项有趣且具有挑战性的任务。这个爬虫将能够从网站上提取数据&#xff0c;并按照指定的模板进行格式化。以下是详细的介绍和实现步骤。 1. 准备工作 工具和库&#xff1a; Go 1.19colly&#xff1a;一个强大的Go爬虫库goquery&#xff1…...

二维码生成器怎么使用/厦门seo培训

关于under any table/view 权限的解释 用户拥有这个权限之后&#xff0c;对其它用户下的对象如果存在的话会显示 权限不足&#xff0c;而不会显示 表或视图不存在了,废话少说&#xff0c;直接看例子吧: C:\Users\Administrator>sqlplus sys/lhrorclasm as sysdba SQL*Plus:…...

辽宁省网站备案注销/1小时快速搭建网站

项目名称&#xff1a;datagear项目作者&#xff1a;datagear开源许可协议&#xff1a;LGPL-3.0项目地址&#xff1a;https://gitee.com/datagear/datagear项目简介DataGear是一款数据可视化分析平台&#xff0c;使用Java语言开发&#xff0c;采用浏览器/服务器架构&#xff0c;…...

做企业网站主题要自制吗/怎么做网站模板

上班走路摔伤可不可以认定工伤&#xff0c;必须视情况而定。职工进入公司区域后在通往工作岗位的道路上步行&#xff0c;可以被认定为从事与工作有关的预备性工作&#xff0c;若因此而受伤&#xff0c;符合《工伤保险条例》第14条的规定&#xff0c;应属于工伤。 按照《工伤保…...

网站推广怎么做流量大/b2b网站有哪些

在创建自定义ViewGroup前&#xff0c;读者首先需要理解Android绘制视图的方式。我不会涉及过多细节&#xff0c;但是需要读者理解Android开发文档&#xff08;见3.5节&#xff09;中的一段话&#xff0c;这段话解释如何绘制一个布局。内容如下&#xff1a; “绘制布局由两个遍历…...

网站开发备案费用/南京高端品牌网站建设

linux设备驱动程序之简单字符设备驱动 一、linux系统将设备分为3类&#xff1a;字符设备、块设备、网络设备。使用驱动程序&#xff1a; 1、字符设备&#xff1a;是指只能一个字节一个字节读写的设备&#xff0c;不能随机读取设备内存中的某一数据&#xff0c;读取数据需要按照…...

做网站哪家南京做网站/网络舆情分析师

java中的map遍历有多种方法&#xff0c;从最早的Iterator&#xff0c;到java5支持的foreach,再到java8 Lambda&#xff0c;让我们一起来看下具体的用法以及各自的优缺点先初始化一个mappublic class TestMap {public static Map map new HashMap();}keySet values如果只需要ma…...