计算机网络——概述
计算机网络——概述
- 计算机网络的定义
- 互连网(internet)
- 互联网(Internet)
- 互联网基础结构发展的三个阶段
- 第一个阶段——APPANET
- 第二阶段——商业化和三级架构
- 第三阶段——全球范围多层次的ISP结构
- ISP的作用
- 终端
- 互联网的组成
- 边缘部分工作方式
- 核心部分工作方式
- 电路交换,报文交换,分组交换
- 分组交换
- 路由器
- 电路交换,报文交换,分组交换的特点
我们今天进入计网的第一章——概述,主要给我们大家普及一些计网的基础知识。
计算机网络的定义
根据书上的定义:由若干结点和连接这些节点的链路组成:
互连网(internet)
多个计算机网络相连形成互连网:
互联网(Internet)
理解的简单一点:就是一个超级大的全球互连网:
互联网是一个由全球性计算机网络组成的庞大网络系统,通过各种标准化协议和技术相互连接。它是由成千上万的私人、公共、学术、商业和政府网络组成的网络集合体。互联网使得这些网络能够以统一的方式进行通信和交流,无论它们的地理位置或硬件设备如何。
以下是互联网的一些关键特征和定义要点:
全球性网络: 互联网不受地理位置的限制,可以连接世界上任何地方的计算机和网络设备。
分布式结构: 互联网是由许多相互连接的网络组成的,这些网络可以是任何规模的,从个人家庭网络到跨国公司的企业网络。
标准化协议: 互联网通信使用一系列标准化协议来确保不同设备和系统之间的兼容性和互操作性。例如,TCP/IP(传输控制协议/互联网协议)是互联网上数据传输的主要协议。
开放性和可扩展性: 互联网的基本原则之一是开放性,它允许任何人都能够连接到互联网,并以自由的方式共享信息和资源。此外,互联网的架构设计具有很高的可扩展性,可以轻松地添加新的网络和设备。
多样化的服务: 互联网不仅仅是一个信息交换的平台,还提供了各种各样的服务,包括电子邮件、网页浏览、文件共享、实时通信(如即时消息和视频通话)、在线购物、社交媒体等等。
这里注意一下互联网不等于互连网。从定义我们也可以知道。
互联网基础结构发展的三个阶段
第一个阶段——APPANET
这个阶段就是美国国防部高级研究计划局(ARPA,后来更名为DARPA)资助的ARPANET项目,这个就是互联网的前身:
早期阶段(1960年代至1990年代初): 这一阶段的互联网发展主要集中在建立基础网络架构和通信协议上。其中最著名的是美国国防部高级研究计划局(ARPA,后来更名为DARPA)资助的ARPANET项目,于1969年建成并运行。ARPANET是世界上第一个分组交换网络,它采用了包括TCP/IP在内的许多基本技术和协议。在1970年代和1980年代,ARPANET逐渐发展成为一个国际性的网络,连接了美国的大学、研究机构和政府部门。除了ARPANET之外,其他一些类似的网络也在世界范围内建立起来,最终形成了互联网的雏形。
第二阶段——商业化和三级架构
从1985年开始,NSF就围绕六个大型计算机中心建设网络,即NSFNET,分为三级主干网,地区网和校园网。同时,美国政府决定把互联网的主干网交给私人来运营:
商业化和大众化阶段(1990年代初至2000年代中期): 在这一阶段,互联网开始向商业化和大众化方向迈进。1990年代初,蒂姆·伯纳斯-李(Tim Berners-Lee)发明了万维网(World Wide Web)的核心技术,包括HTML(超文本标记语言)、HTTP(超文本传输协议)和第一个网页浏览器。这些技术的出现促进了信息的易用性和可访问性,使互联网成为一个广泛使用的信息和娱乐平台。此外,1990年代中期,商业互联网服务提供商(ISP)开始提供广泛的上网服务,使更多的人能够接入互联网。随着互联网的普及,电子邮件、网上购物、社交网络等各种网络应用也开始蓬勃发展。
第三阶段——全球范围多层次的ISP结构
从193年开始,由美国政府资助的NSFNET逐渐被若干个商用的互联网主干网所替代,政府不再负责互联网的运营。在这种情况下,出现了一个名词:互联网服务提供者。(比如中国的中国移动,中国联通,中国电信等)
ISP的作用
ISP的作用就是向缴纳规定费用的的个人或组织机构提供网络服务,缴费之后,就可以向该ISP获取所需的IP地址的租用权,并通过ISP接入互联网。
根据提供服务的覆盖面积的大小以及拥有的IP地址数目的不同,ISP也分不同的层次:
主干ISP:由几个专门的公司维护,服务面积最大
地区ISP:是一些较小的ISP
本地ISP:给用户提供直接的服务(有时也被称为端用户)
上面的图表示三层结构是如何为用户提供服务的,中间的IXP主要功能就是允许两个ISP网络直接相连并交换分组,而不需要第三个网络来转发分组。
终端
终端:是主机的⼀个远程的输⼊/输出设备(不是一个自治系统)。
互联网的组成
互联网的组成主要有两部分:边缘部分和核心部分:
边缘部分:有所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信的。
核心部分:由大量的网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的。
边缘部分工作方式
边缘部分的工作方式:客服——服务器方式和对等连接方式,这个部分之后会有提及,这里简单提一下。
核心部分工作方式
电路交换,报文交换,分组交换
电路交换,简单来说就想象两部电话通过一根线进行通话,这个进行交互的前提就是要有线:
但如果,电话多了起来,两两相连,线的数量会剧增:
而报文交换则是把消息进行切分:
报文交换是一种网络通信的方式,其中通信的数据被划分为消息单元,称为报文。在报文交换中,通信的每一阶段,整个报文必须发送完毕才能进行下一步操作。
报文交换的基本流程通常包括以下步骤:
报文生成: 数据源生成要传输的报文,报文可以是文本、图像、音频或视频等形式的数据。
报文分割: 如果报文的大小超过了通信协议所规定的最大传输单元(MTU),则报文需要被分割成多个较小的数据块,每个数据块称为一个分段。
报文传输: 报文的分段或整个报文被传输到目标节点。在报文传输过程中,可能会使用各种通信协议和网络设备来确保数据的可靠传输。
报文重组: 如果报文被分割传输,目标节点接收到分段后需要将它们按照顺序重组成完整的报文。
报文处理: 接收端对收到的报文进行解析、处理和响应,根据通信协议的要求进行相应的操作。
我们接下来重点介绍分组交换:
分组交换
路由器
在介绍分组交换之前我们的先了解一下路由器:
路由器是一种网络设备,用于在计算机网络中传输数据包时进行路由和转发。它是连接不同网络的设备,负责在这些网络之间传递数据,确保数据包从源节点到目标节点的有效传输。路由器在互联网和局域网等网络中发挥着关键作用。
以下是路由器的主要功能和特点:
路由功能: 路由器能够根据目标地址,决定数据包应该通过哪条路径传输。这涉及到路由表的使用,路由表存储了关于不同网络和其对应的下一跳路由器信息。
转发功能: 一旦路由器决定了数据包的传输路径,它就负责将数据包从一个接口接收并通过正确的接口转发到下一跳。这是通过查找目标地址并使用数据链路层协议(如Ethernet)进行数据包的封装和传输来实现的。
连接不同网络: 路由器常被用于连接不同的网络,例如将局域网与互联网连接起来。它能够处理不同网络之间的协议转换和数据交换。
分割广播域: 路由器可以帮助分割广播域,防止广播风暴对整个网络的影响。这有助于提高网络的稳定性和性能。
网络地址转换(NAT): 在一些场景下,路由器可能执行网络地址转换,将私有网络内部的IP地址映射为公共IP地址,以便更有效地使用有限的IPv4地址空间。
安全功能: 路由器通常包含一些安全功能,如防火墙、虚拟专用网络(VPN)支持等,以增强网络的安全性。
负载均衡: 一些高级路由器支持负载均衡功能,能够平衡数据流量,确保网络资源得到有效利用,提高整个网络的性能。
路由器在构建复杂的网络拓扑和连接不同类型网络时发挥着至关重要的作用,是现代计算机网络中不可或缺的组成部分。
了解上面的路由器之后,我们再来看分组交换:
上面的图片就是分组交换的原理,核心部分也是通过分组交换实现的:
电路交换,报文交换,分组交换的特点
电路交换、报文交换和分组交换是网络通信中常见的三种基本交换方式,它们各有特点:
电路交换:
特点:在通信开始之前,建立起源和目的地之间的专用物理连接。一旦建立了连接,整个通信会话期间,这条连接会一直被保持。
优点:通信稳定,传输数据的时延较小,适用于需要保证实时性和稳定性的应用,如电话通信。
缺点:资源利用率低,因为连接在通信期间一直被保持,即使在通信时没有数据传输也占用资源。
报文交换:
特点:通信的数据被划分为报文,在通信的每一阶段,整个报文都必须发送完毕才能进行下一步操作。
优点:通信过程中可灵活控制,不需要建立连接,适用于短消息通信等不需要长时间连接的场景。
缺点:由于需要整个报文发送完毕才能进行下一步操作,可能会导致较大的时延,尤其是在发送大量数据时。
分组交换:
特点:通信的数据被划分为多个较小的数据包(分组),每个数据包在传输过程中独立处理,不需要建立持久连接。
优点:资源利用率高,灵活性强,适用于多种应用场景,包括因特网等大规模网络。
缺点:可能会出现分组丢失、延迟抖动等问题,需要一定的错误处理和重传机制来保证数据的可靠传输。
总的来说,电路交换适用于实时性要求高的应用,报文交换适用于短消息通信等不需要长时间连接的场景,而分组交换适用于大规模网络和灵活性要求较高的场景。选择适当的交换方式取决于具体的应用需求和通信环境。
相关文章:

计算机网络——概述
计算机网络——概述 计算机网络的定义互连网(internet)互联网(Internet)互联网基础结构发展的三个阶段第一个阶段——APPANET第二阶段——商业化和三级架构第三阶段——全球范围多层次的ISP结构 ISP的作用终端互联网的组成边缘部分…...
kafka Interceptors and Listeners
Interceptors ProducerInterceptor https://www.cnblogs.com/huxi2b/p/7072447.html Producer拦截器(interceptor)是个相当新的功能,它和consumer端interceptor是在Kafka 0.10版本被引入的,主要用于实现clients端的定制化控制逻辑。 对于producer而言&…...
【面试题】mysql常见面试题及答案总结
事务中的ACID原则是什么? Mysql是如何实现或者保障ACID的? ACID原则是数据库事务管理中必须满足的四个基本属性,确保了数据库事务的可靠性和数据完整性。 简写全称解释实现A原子性(Atomicity)一个事务被视为一个不可分割的操作序列&#…...
C++ 类的前向声明的用法
我们知道C的类应当是先定义,然后使用。但在处理相对复杂的问题、考虑类的组合时,很可能遇到俩个类相互引用的情况,这种情况称为循环依赖。 例如: class A { public:void f(B b);//以B类对象b为形参的成员函数//这里编译错位&…...

二分查找(c语言)
二分查找 一.什么是二分查找二.代码实现 一.什么是二分查找 在⼀个升序的数组中查找制定的数字n,很容易想到的⽅法就是遍历数组,但是这种⽅法效率⽐较低, ⽐如我买了⼀双鞋,你好奇问我多少钱,我说不超过300元。你还是好…...
【记录31】elementUI el-tree 虚线、右键、拖拽
父组件 <eltree :treeData"treeData"></eltree>import eltree from "../../components/tree.vue"; export default {name: ,components: { // org_tree ,eltree},watch: {},data() {return {orgFormchoose: {},orgForm: { type: 0, limits: 1…...

【C++】函数重载
🦄个人主页:修修修也 🎏所属专栏:C ⚙️操作环境:Visual Studio 2022 目录 📌函数重载的定义 📌函数重载的三种类型 🎏参数个数不同 🎏参数类型不同 🎏参数类型顺序不同 📌重载…...
【深度学习模型】6_3 语言模型数据集
注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 6.3 语言模型数据集(周杰伦专辑歌词) 本节将介绍如何预处理一个语言模型数据集,并将其转换成字符级…...

技术选型思考:分库分表和分布式DB(TiDB/OceanBase) 的权衡与抉择
码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在当今数据爆炸的时代,数据库作为存储和管理数据的核心组件,其性能和扩展性成为了企业关注的重点。随着业…...

React改变数据【案例】
State传统方式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>React Demo</title> <!--…...

ChatGPT Plus 自动扣费失败,如何续订
ChatGPT Plus 自动扣费失败,如何续订 如果您的 ChatGPT Plus 订阅过期或扣费失败,本教程将指导您如何重新订阅。 本周更新 ChatGPT Plus 是一种每月20美元的订阅服务。扣费会自动进行,如果您的账户余额不足,OpenAI 将在一次扣费…...
Rust: Channel 代码示例
在 Rust 中,通道(Channel)通常使用 std::sync::mpsc(多生产者单消费者)或 tokio::sync::mpsc(在异步编程中,特别是使用 Tokio 运行时)来创建。下面是一个使用 std::sync::mpsc 的简单…...

基于华为atlas的unet分割模型探索
Unet模型使用官方基于kaggle Carvana Image Masking Challenge数据集训练的模型。 模型输入为572*572*3,输出为572*572*2。分割目标分别为,0:背景,1:汽车。 Pytorch的pth模型转化onnx模型: import torchf…...

机器学习--循环神经网络(RNN)1
一、简介 循环神经网络(Recurrent Neural Network)是深度学习领域中一种非常经典的网络结构,在现实生活中有着广泛的应用。以槽填充(slot filling)为例,如下图所示,假设订票系统听到用户说&…...

基于java+springboot+vue实现的学生信息管理系统(文末源码+Lw+ppt)23-54
摘 要 人类现已进入21世纪,科技日新月异,经济、信息等方面都取得了长足的进步,特别是信息网络技术的飞速发展,对政治、经济、军事、文化等方面都产生了很大的影响。 利用计算机网络的便利,开发一套基于java的大学生…...

【漏洞复现】Linksys E2000 position.js 身份验证绕过漏洞(CVE-2024-27497)
0x01 产品简介 Linksys E2000是一款由思科(Cisco)品牌推出的无线路由器,它是一款支持2.4GHz和5GHz双频段的无线路由器,用户可以避开拥挤的2.4GHz频段,独自享受5GHz频段的高速无线生活。 0x02 漏洞概述 Linksys E200…...

小白跟做江科大51单片机之DS1302可调时钟
原理部分 1.DS1302可调时钟介绍 单片机定时器主要占用CPU时间,掉电不能继续运行 图1 2.原理 图2 内部有寄存器,寄存的时候以时分秒寄存,以通信协议实现数据交互,就可以实现对数据进行访问和读写 3.主要寄存器定义 CE芯片使能…...

2024蓝桥杯每日一题(归并排序)
一、第一题:火柴排队 解题思路:归并排序 重点在于想清楚是对哪个数组进行归并排序求逆序对 【Python程序代码】 from math import * n int(input()) a list(map(int,input().split())) b list(map(int,input().split())) na,nb [],[] for …...

生成对抗网络 (GAN)
生成对抗网络(Generative Adversarial Networks,GAN)是由Ian Goodfellow等人在2014年提出的一种深度学习模型。GAN由两部分组成:一个生成器(Generator)和一个判别器(Discriminator)&…...

QGridLayout网格布局和QVBoxLayout垂直布局有着非常大的差别
QGridLayout网格布局:1.把这块控件划分成一个个的 单元格 2.把你的控件填充进入 单元格 3.这些有关限制大小的函数接口统统失效 setMaximumWidth() setMinimumWidth() setPolicySize()图示:我是用的网格布局,左边放QT…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...