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

【网络通信基础与实践第二讲】包括互联网概述、互联网发展的三个阶段、互联网的组成、计算机网络的体系结构

一、互联网概述

计算机网络是由若干节点(node)和连接这些节点的链路(link)组成。

网络之间还可以通过路由器互联起来,这就构成了一个覆盖范围更大的计算机网络。这样的网络称为互联网。

网络把许多计算机连接在一起,而互联网则把许多网络通过路由器连接在一起。与网络相连的计算机常称为主机。

二、互联网结构发展的三个阶段

从宏观上人们都在追求更快更高效更可靠的信息传输方式

5d20decc44eb47bfb634270e2bb7007d.png

(1)第一个阶段

从单个网络ARPANET向互联网发展的过程

(2)第二个阶段

特点是建成了三级结构的互联网:主干网、地区网、校园网(企业网)

(3)第三个阶段

特点是逐渐形成了多层次ISP(互联网服务提供者Internet Service Provider)结构的互联网。从上个世纪九十年代开始,美国政府资助的NSFNET逐渐被若干个商用的互联网主干网取代,政府不再负责互联网的运营,互联网管理机构不零售IP给个人,而是把一批IP地址有偿租赁给审查合格的拥有通信线路和路由设备的机构,这样的机构称为ISP。任何机构或者个人只需要向某个ISP缴纳规定的费用,就可以从该ISP获得IP的使用权,并通过该ISP接入互联网,即实现“上网”。

52214589dda34b80ae61d08e09f0e32c.png

根据提供服务的覆盖面积以及所拥有的IP地址数目的不同,ISP也分为不同层次的ISP:主干ISP、地区ISP和本地ISP

随着互联网上数据流量的急剧增长,人们开始研究如何更快地转发分组,以及如何更加有效地利用网络资源,于是互联网交换点IXP(Internet exchange point)就应运而生了。

互联网交换点IXP的主要作用就是允许两个网络直接连接并交换分组,而不需要再通过第三个网络来转发分组,自然提高了信息传输的效率和速度。

典型的IXP由一个或者多个网络交换机组成,许多的ISP再连接到这些网络交换机的相关端口上。ISP通常采用工作在数据链路层的网络交换机,这些网络交换机都用局域网互联起来。

三、互联网的组成

317ce7cbc5a5462585dbca76e75ed7de.png

从工作方式上分为边缘部分和核心部分

(1)边缘部分

由所有连接在互联网上的主机组成,这部分是用户直接使用的,用来进行通信和资源共享

(2)核心部分

由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)

1、边缘部分

处在互联网边缘的部分就是连接在互联网上的所有的主机,这些主机又称为端系统(end system)。在网络边缘的端系统之间的通信方式通常可以划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)。

(1)客户-服务器方式(C/S)

69015f0610d54392b45b1a125d66a201.png

客户是服务请求方,服务器是服务提供方,客户与服务器建立通信关系后是双向的,二者都可以发送和接收数据

客户程序:被用户调用后运行,在通信时主动向远地服务器发起通信。客户程序必须知道服务器程序的地址;不需要特殊的硬件和很复杂的操作系统

服务器程序:可以同时处理多个远地或者本地的客户的请求;系统启动后即自动调用并一直不断的运行着,被动地等待并接受来自各地的客户的通信请求;一般需要 强大的硬件和复杂的操作系统支持

(2)对等连接方式(peer-to-peer)

6570f3ab1cdd4a76932f1c90dc43f20e.png

主要是指两台主机在通信时不区分哪一个是服务请求方哪一个是服务提供方。只要两台主机都运行了对等连接软件,它们就可以进行平等的对等连接通信。

P2P也是区块链系统连接各对等节点的网络组成技术,结合图示也可以发现一个很显著的特点是去中心化,利用存储、计算能力等网络边缘资源,使其具有分布性。

2、核心部分

在网络核心部分起特殊作用的是路由器。路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。

(1)电话交换

f0e918ab19644facb5db91eb01f61093.png

在通话的全部时间内,通话的两个用户始终占用端到端的通信资源 

(2) 分组交换(package switching)

bc4474e9f642447b976e1b1f46c72db5.png

(i)基本原理

分组交换采用存储转发技术(store-and-forward)。通常我们把要发送的整块数据称为一个报文。在发送报文之前,先把较长的报文划分为一个个更小的等长数据段。在每一个数据段前面,加上一些由必要的控制信息组成的首部后,就构成了一个分组。分组又被称为包,而分组的首部也可称为包头。

分组交换的本质是数据通信过程中动态分配带宽的策略,在传送数据之前不必先占用一条端到端的链路的通信资源。只有当需要传输数据时,才会占用网络带宽。当没有数据传输时,链路可以为其他用户的分组服务。这种动态分配带宽的策略能够充分利用网络资源,而不会像电路交换那样,预留一条专用链路占用资源,导致浪费。比如如果网络中有多个分组在同一时间到达一个交换节点,这个节点会根据当前的网络情况动态决定优先转发哪个分组,并将其他分组暂时存储起来,等待下一次转发机会。

86e69bda77444358913526c300c3d2de.png

(ii)具体过程

如上图(b)所示,我们往往把单个的网络简化为一条链路,而路由器成为核心部分的结点。如上图所示比如要将数据包从H1-->H5:

如果信息量较小,选择A-C-E线路即可,先将一个一个的短分组沿着链路由A-->C,暂时存储在C路由器的内存,然后查找转发表,比如查找到转发到E,则继续通过C-E链路传输出去。分组在输出时就这样一段一段地断续占用通信资源,省去了建立连接和释放连接的开销。

如果信息量较大 ,那么路由器A可以选择把分组沿着另一个路由传送,可以先转发到路由器B,再转发到路由器E,最后再将分组送到主机H5。

(iii)路由器的存储与转发

当一个分组(数据包)通过网络链路到达节点时,节点首先会通过其接收接口来捕获这个分组。这个接收接口可能是有线网卡、无线网卡等。分组到达后,会被临时存储在节点的缓冲区中。节点会开始解析分组的头部信息(如IP包头、TCP/UDP包头等),从中提取关键信息,包括目的地址、源地址、协议类型、数据长度等。这个过程主要是为了确定接下来如何处理分组。解析完分组的头部信息后,路由器会根据其目的地址来查找路由表,决定该分组的下一跳应该是哪个节点,以及通过哪个接口转发。当分组准备就绪并且接口空闲,节点会从缓冲区中取出分组,通过对应的接口将分组发送到下一个节点(下一跳)。一旦分组成功发出,该分组就会从缓冲区中删除,释放存储空间供后续的分组使用。

在分组交换中,根据分组的目的地址决定下一步该将分组转发到哪条路径上的过程称为 路由选择(Routing)。网络设备(如路由器或交换机)会根据路由表和路由协议的机制,选择最合适的路径将分组传输到下一个节点,直到最终到达目的地。路由表(routng table)最基础的包括目标网络地址和下一跳地址(Next Hop)即分组应该转发到的下一个路由器或节点的地址。

为了提高分组交换网络的可靠性,互联网的核心部分采用了网络拓扑结构,当结点或者链路发生故障时路由器可以灵活地改变转发路由不至于引起通信中断和全网瘫痪。同时还有路由选择协议也可以在发生故障时选择路径。

(iv)分组交换的问题

(1)分组在路由器存储时需要排队,造成一定的时延

(2)乱序问题即一个消息被拆分成多个分组(即数据包)发送后,这些分组在到达目的地时,可能会按照与发送时不同的顺序抵达。

(3)各分组必须携带的控制信息也造成了一定的开销,整个分组交换网络还需要专门的管理和控制机制

(3)报文交换

整个报文先传送到相邻节点,全部存储下来后查找转发表,转发到下一个节点。

四、计算机网络的性能

 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延

 

五、计算机网络的体系结构

 

 

 

相关文章:

【网络通信基础与实践第二讲】包括互联网概述、互联网发展的三个阶段、互联网的组成、计算机网络的体系结构

一、互联网概述 计算机网络是由若干节点(node)和连接这些节点的链路(link)组成。 网络之间还可以通过路由器互联起来,这就构成了一个覆盖范围更大的计算机网络。这样的网络称为互联网。 网络把许多计算机连接在一起…...

CentOS7下安装Ruby3.2.4的实施路径

一、CentOS版本 [userzt ~]$ cat /etc/os-release NAME"CentOS Linux" VERSION"7 (Core)" ID"centos" ID_LIKE"rhel fedora" VERSION_ID"7" PRETTY_NAME"CentOS Linux 7 (Core)" ANSI_COLOR"0;31" CPE…...

Redis 实现原理或机制

Redis 是一个高性能的、基于内存的键值对存储系统,广泛用于缓存、会话管理、排行榜和消息队列等场景。它的高效性得益于其独特的实现原理和机制,Redis支持丰富的数据结构和多种持久化、复制、集群和发布/订阅功能,提供了灵活性和高可用性。 …...

使用程序方式获取与处理MySQL表数据

8.1  执行多条语句获取 MySQL 表数据 8.1.1  MySQL 中的常量 8.1.2  MySQL 中的变量 1.用户变量 用户可以在表达式中使用自己定义的变量,这样的变量称为用户变量。 用户变量在使用前必须定义和初始化,如果使用没有初始化的变量&#x…...

计算机网络(五) —— 自定义协议简单网络程序

目录 一,关于“协议” 1.1 结构化数据 1.2 序列化和反序列化 二,网络版计算器实现准备 2.1 套用旧头文件 2.2 封装sock API 三,自定义协议 3.1 关于自定义协议 3.2 实现序列化和反序列化 3.3 测试 三,服务器实现 3.1…...

开源模型应用落地-qwen2-7b-instruct-LoRA微调-unsloth(让微调起飞)-单机单卡-V100(十七)

一、前言 本篇文章将在v100单卡服务器上,使用unsloth去高效微调QWen2系列模型,通过阅读本文,您将能够更好地掌握这些关键技术,理解其中的关键技术要点,并应用于自己的项目中。 使用unsloth能够使模型的微调速度提高 2 - 5 倍。在处理大规模数据或对时间要求较高的场景下,…...

[数据集][目标检测]车油口挡板开关闭合检测数据集VOC+YOLO格式138张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):138 标注数量(xml文件个数):138 标注数量(txt文件个数):138 标注类别…...

Delphi 的 RSA 库 LockBox

LockBox 是用于 Delphi 的一套加密/解密控件 最早是一套商业控件,后来开源了。再后来,又有一个新版本的 LockBox,和旧版本完全不同。 旧版本的 LockBox 叫 LockBox 2;新版本的叫 LockBox 3。 这两个控件,都可以通过…...

element UI学习使用(1)

https://element.eleme.cn/2.6/#/zh-CN/component/container vue模块库&#xff0c;可复制直接使用 1、搜索框、下拉搜索框 <el-form :inline"true" class"demo-form-inline"><el-form-item label"结果搜索"><el-inputplaceho…...

如何搞定日语翻译?试试这四款工具

写一篇字数800-1000字的软文&#xff0c;用翻译新手的角度分享福昕翻译在线、福昕翻译客户端、海鲸AI翻译以及彩云翻译在翻译日语时候的表现&#xff0c;要求口语化表达。 最近对于一些轻小说突然感兴趣了&#xff0c;所以我开始尝试各种翻译工具来帮助我搞定日语翻译。今天&am…...

【STM32】独立看门狗(IWDG)原理详解及编程实践(上)

本篇文章是对STM32单片机“独立看门狗&#xff08;IWDG&#xff09;”的原理进行讲解。希望我的分享对你有所帮助&#xff01; 目录 一、什么是独立看门狗 &#xff08;一&#xff09;简介 &#xff08;二&#xff09;、独立看门狗的原理 &#xff08;三&#xff09;、具体操…...

前端框架大观:探索现代Web开发的基石

目录 引言 一、前端框架概述 二、主流前端框架介绍 2.1 React 2.1.1 简介 2.1.2 特点 2.1.3 代码示例 2.2 Vue.js 2.2.1 简介 2.2.2 特点 2.2.3 代码示例 2.3 Angular 2.3.1 简介 2.3.2 特点 2.3.3 代码示例 三、其他前端框架与库 四、前端框架的选择 五、结…...

16 训练自己语言模型

在很多场景下下&#xff0c;可能微调模型并不能带来一个较好的效果。因为特定领域场景下&#xff0c;通用话模型过于通用&#xff0c;出现多而不精。样样通样样松&#xff1b;本章主要介绍如何在特定的数据上对模型进行预训练&#xff1b; 训练自己的语言模型&#xff08;从头开…...

udp网络通信 socket

套接字是实现进程间通信的编程。IP可以标定主机在全网的唯一性&#xff0c;端口可以标定进程在主机的唯一性&#xff0c;那么socket通过IP端口号就可以让两个在全网唯一标定的进程进行通信。 套接字有三种&#xff1a; 域间套接字&#xff1a;实现主机内部的进程通信的编程 …...

LG AI研究开源EXAONE 3.0:一个7.8B双语语言模型,擅长英语和韩语,在实际应用和复杂推理中表现出色

EXAONE 3.0介绍&#xff1a;愿景与目标 EXAONE 3.0是LG AI研究所在语言模型发展中的一个重要里程碑&#xff0c;特别是在专家级AI领域。 “EXAONE”这个名称源自于“ EX pert A I for Every ONE”&#xff0c;反映了LG AI研究所致力于将专家级别的人工智能能力普及化的承诺。这…...

【mysql】mysql之主从部署以及介绍

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…...

Invoke-Maldaptive:一款针对LDAP SearchFilter的安全分析工具

关于Invoke-Maldaptive MaLDAPtive 是一款针对LDAP SearchFilter的安全分析工具&#xff0c;旨在用于对LDAP SearchFilter 执行安全解析、混淆、反混淆和安全检测。 其基础是 100% 定制的 C# LDAP 解析器&#xff0c;该解析器处理标记化和语法树解析以及众多自定义属性&#x…...

QT 读取Excel表

一、QAxObject 读取excel表的内容&#xff0c;其仅在windows下生效&#xff0c;当然还有其他跨平台的方案。 config qaxcontainer #include <QAxObject>QStringList GetSheets(const QString& strPath) {QAxObject* excel new QAxObject("Excel.Application&…...

深入理解 Vue 组件样式管理:Scoped、Deep 和 !important 的使用20240909

深入理解 Vue 组件样式管理&#xff1a;Scoped、Deep 和 !important 的使用 在前端开发中&#xff0c;样式的管理与组件化开发之间的平衡一直是一个难题。Vue.js 提供了一些强大的工具来帮助开发者在开发复杂的应用时管理样式。这篇文章将详细介绍 Vue 中的 scoped、:deep() 和…...

C语言内存函数(21)

文章目录 前言一、memcpy的使用和模拟实现二、memmove的使用和模拟实现三、memset函数的使用四、memcmp函数的使用总结 前言 正文开始&#xff0c;发车&#xff01; 一、memcpy的使用和模拟实现 函数模型&#xff1a;void* memcpy(void* destination, const void* source, size…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...