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

一、互联网概述

计算机网络是由若干节点(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)报文交换

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

四、计算机网络的性能

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

 

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

 

 

 

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

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

相关文章

汽车行业智能化:驶向未来的快车道

在科技日新月异的今天,汽车行业正以前所未有的速度迈向智能化时代。从自动驾驶技术的不断升级,到智能座舱的丰富功能,再到车联网的广泛应用,汽车智能化的发展趋势正深刻地改变着我们的出行方式和生活。 一、自动驾驶:…

Etcd权限认证管理

1 查看是否开启权限认证 ctl auth status 2 开启权限认证 ctl auth enable。开启后每一条命令都要加上用户 --userroot:root(root默认最高权限) 3 创建其他用户 ctl user add user1 --user用户名:密码 4 创建角色 ctl role add testR --user 5 为角色添加权限 ctl role g…

Submariner 部署全过程

Submariner 部署全过程 部署集群配置 broker 集群: pod-cidr:11.244.0.0/16 service-cidr 11.96.0.0/12 broker 172.100.0.109 node 172.100.0.108 集群 1( pve3 ): pod-cidr:10.244.0.0/16 service-…

数字自然资源领域的实现路径

在数字化浪潮的推动下,自然资源的管理与利用正经历着前所未有的变革。本文将从测绘地理信息与遥感专业的角度,深度分析数字自然资源领域的实现路径。 1. 基础数据的数字化 数字自然资源的构建,首先需要实现基础数据的数字化。这包括地形地貌…

【南方科技大学】CS315 Computer Security 【Lab2 Buffer Overflow】

目录 引言软件要求启动虚拟机环境设置禁用地址空间布局随机化(ASLR)设置编译器标志以禁用安全功能 概述BOF.ctestShellCode.c解释 createBadfile.c 开始利用漏洞在堆栈上查找返回地址 实验2的作业 之前有写过一个 博客,大家可以先看看栈溢出…

为什么是华为最先做出三折叠?这些黑科技硬核门槛缺一不可

一款起售价19999的手机,预约人数竟达到了600万,全球首款三折叠手机Mate XT到底有什么魔力,可以做到还未上市就引爆市场?看完这篇文章,你就知道何谓“科技新物种”。 9月7日12:08,华为Mate XT非凡大师开启预…

智谱清影 -CogVideoX-2b-部署与使用,带你揭秘生成6s视频的极致体验!

文章目录 1 效果展示2 CogVideoX 前世今生3 CogVideoX 部署实践流程3.1 创建丹摩实例3.2 配置环境和依赖3.3 模型与配置文件3.4 运行4 遇到问题 1 效果展示 A street artist, clad in a worn-out denim jacket and a colorful bandana, stands before a vast concrete wall in …

.Net Gacutil工具(全局程序集缓存工具)使用教程

GAC介绍: GAC(Global Assembly Cache)全局程序集缓存,是用于存放.Net应用程序共享的程序集。 像平常我们在Visual Studio中引用系统程序集时,这些程序集便来自于GAC。 GAC默认位置为:%windir%\Microsoft…

react之jsx基础(1)概念和本质

文章目录 JSX 的基本概念1. **语法**2. **表达式**3. **属性**4. **子元素** JSX 的编译过程1. **转换成 JavaScript**2. **React 元素** JSX 的实际应用1. **组件定义**2. **组件嵌套** 总结 当然,以下是对 JSX 的详细讲解,包括其基本概念、语法、编译过…

Linux线程基础

🌎 Linux线程 文章目录: Linux线程 线程概念       线程的理解 再谈地址空间 线程控制       线程等待       线程资源共享       线程退出       线程异常       线程分离       理解线程tid 线程切换 线程…

gdb 前端:kdbg 安装使用

文章目录 1. 前言2. kdbg 安装使用2.1 安装 kdbg2.2 使用 kdbg 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. kdbg 安装使用 2.1 安装 kdbg kdbg 是 gdb 的图形化界面的前端,在 …

大数据时代:历史、发展与未来

文章目录 引言1980年:大数据的先声2006年:云计算与大数据的诞生2008年:大数据的科学探索2009年:大数据成为行业热词2011年:大数据的商业价值2013年:世界大数据元年结语 引言 在信息技术飞速发展的今天&…

VulnHub-Bilu_b0x靶机笔记

Bilu_b0x 靶机 概述 Vulnhub 的一个靶机,包含了 sql 注入,文件包含,代码审计,内核提权。整体也是比较简单的内容,和大家一起学习 Billu_b0x.zip 靶机地址: https://pan.baidu.com/s/1VWazR7tpm2xJZIGUS…

农产品交易平台的设计与实现

🌿作品简介 : 该农产品交易平台为作者原创作品,成功获得优秀毕设。项目整体分为用户端(小程序)和后台管理系统(管理端),二者均为前后端分离开发。 🍀项目技术栈 : 小程序框架、Vue、Vant、Element-UI、Axios、Java、…

【白话树】之 二叉树

快速导航 一、二叉树的基本概念1、 二叉树定义2、常见术语3、基本操作1)创建:2)插入与删除: 4、常见类型1)满二叉树(完美二叉树)2)完全二叉树3)完满二叉树4)平…

支付宝开发者✖️「蚂小财」——AgentUniverse专业多智能体框架在严谨产业中的应用实践

正在直播:点击进入直播间互动拿蚂蚁保温杯 直播 

【Android Studio】使用雷电模拟器调试

文章目录 进入开发者模式使雷电模拟器adb连接PC 进入开发者模式 多次点击版本号 -开区USB调试 使雷电模拟器adb连接PC 写cmd脚本 雷电模拟器端口为5555 ,脚本内容如下: adb.exe connect 127.0.0.1:5555默认使用powershell的建议为: .\a…

uniapp中使用picker-view选择时间

picker-view 是 UniApp 中用于展示和选择数据的组件。它适用于创建多列选择器&#xff0c;类似于 iOS 和 Android 系统中的选择器视图。以下是 picker-view 的详细介绍&#xff0c;包括用法、属性和事件。 一 用法 <template><view><picker-view :value"…

HarmonyOS使用LocationButton获取地理位置

LocationButton LocationKit getAddressesFromLocation方法 步骤&#xff1a; 整合 LocationButton并获取经纬度通过 LocationKit 将经纬度转为地址信息将地址信息渲染到页面上处理异常情况&#xff08;闪退&#xff09; LocationButton({ icon: LocationIconStyle.LINE…

Java lambda表达式的变量捕获

有人看到这个lambda表达式能够访问isQuit这个变量而且还是可以被修改的变量&#xff0c;就发出疑问了&#xff0c;之前不是说lambda不能不或变量吗&#xff1f; 1.规则 java的lambda表达式变量捕获规则只是针对于外部作用域的局部变量来说的&#xff01;&#xff01;&#xf…