计算机网络第一章(概述)【湖科大教书匠】
1. 各种网络
- 网络(
Network)由若干**结点(Node)和连接这些结点的链路(Link)**组成 - 多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(互连网)。因此,互联网是"网络的网络(Network of Networks)"
- **因特网(Internet)**是世界上最大的互连网络【小写
i的internet是通用名词,互连的网络都叫internet】
2. ISP
因特网服务提供者(
Internet Service Provider)
普通用户如何接入因特网?
通过
ISP接入因特网。ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等连网设备,任何机构和个人只要向ISP交纳规定的费用,就可以从ISP得到所需要的IP地址。互联网上的主机都必须有IP地址才能通信

基于ISP的三层结构的因特网
层数越小覆盖越多

3. 因特网的组成
- 边缘部分:由所有连接在因特网上的主机组成,这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享
- 核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)

4. 三种交换方式
①电路交换(Circuit Switching)
1. 电路交换怎么出现的?
电话问世后,人们发现所有电话之间都两两相连是不现实的。因此可以用一个中间设备将讲话接入,根据需要进行转发

2. 什么是电路交换?
电话交换机接通电话线的方式称为电路交换
从通信资源分配角度来看,交换(Switch)就是按照某种方式动态地分配传输线路的资源
3. 电路交换三个步骤
- 建立连接(分配通信资源):例如在使用电路交换打电话前,必须先拨号请求建立连接,当被叫用户听到电话交换机送来的拨号音并拿起电话后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路。这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信中不会被其他用户占用
- 通话(一直占用通信资源):分配的资源始终被占用
- 释放连接(归还通信资源)

优点
- 通信时延小:通信线路为通信双方专用的,数据直达
- 有序传输:通信双方只有一条专用通信线路,数据只在这一线路上传输,不存在失序问题
- 没有冲突:不同的通信双方拥有不同的信道,不会出现争用物理通道的问题
- 适用范围广:适用于传输模拟信号,也适用于传输数字信号
- 实时性强:时延小所以实时性强
- 控制简单
缺点
- 建立连接时间长
- 线路独占,适用效率低
- 灵活性差:只要连接所建立的物理通路中的任何一点出现了故障,就必须重新拨号建立新的连接
- 难以规格化:不同类型、不同规格、不同速率的终端很难互相进行通信,也难以差错控制
②★分组交换(Packet Switching)
- 发送方:①构建分组 ②发送分组
- 路由器:①缓存分组 ②转发分组
- 接收方:①接收分组 ②还原报文

优点
- 无需建立连接
- 线路利用率高
- 简化存储管理:因为分组大小固定,管理起来就容易一些
- 加速传输:因为分组是逐个传输,这样前一个交换机的转发操作与后一个交换机的存储操作可同时进行
- 减少出错率和重复数据量:分组比报文小,因此出错概率也会比较小,即使出错也只需要重传出错的这一小部分即可
缺点
- 引起了转发时延
- 需要传输额外信息量(分组头部信息)
- 当分组交换采用数据报服务时,可能会出现失序、丢失、重复分组。分组到达目的结点时,需要重新还原成原始报文,比较麻烦。若分组交换采用虚电路服务,虽然没有分组失序问题,但有呼叫建立,数据传输和虚电路释放三个过程
③报文交换(Message Switching)
报文交换与分组交换类似,不过对报文没有限制大小,现如今多使用分组交换。
优点
- 无需建立连接
- 动态分配线路
- 提高线路可靠性:如果某条线路出现故障,会重新选择另一条线路
- 提高线路利用率:通信双方在不同的时间分段占用物理线路
- 提供多目标服务:一个报文可以同时发送给多个目的地址
缺点
- 引起转发时延:报文在节点交换机上要经历存储转发的过程
- 需要较大的存储转发空间:因为报文大小没有限制
- 需要传输额外信息量:有头部等信息
三种交换对比
纵坐标为时间,分组交换相对报文交换分的更小,可以减少时延,防止过长时间占用线路以及方便排错

5. 计算机网络
定义
一些互相连接的、自治的计算机的集合
- 互连:指计算机之间可以通过有线或无线的方式进行数据通信
- 自治:指独立的计算机,它有自己的硬件和软件,可以单独运行使用
- 集合:指至少需要两台计算机
分类
按交换技术:①电路交换网络 ②报文交换网络 ③分组交换网络
按使用者:①公用网 ②专用网
按传输介质:①有线网络 ②无线网络
按覆盖范围:①广域网WAN ②城域网MAN ③局域网LAN ④个域网PAN
按拓扑结构:①总线型网络 ②星型网络 ③环型网络 ④网状型网络
性能指标
性能指标可以从不同的方面来度量计算机网络的性能
1. 速率
连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率
常用数据率单位

比特
计算机中的数据量单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个
1或0.
常用数据量

2. 带宽
带宽在模拟信号系统中的意义
信号所包含的各种不同频率成分所占据的频率范围
单位:
Hz(kHz,MHz,GHz)
带宽在计算机网络中的意义
用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的"最高数据率"
单位:
b/s(kb/s,Mb/s,Gb/s,Tb/s)
一条通信线路的"频带宽度"越宽,其所传输数据的"最高数据率"也越高
3. 吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
吞吐量受网络的带宽或额定速率的限制
4. ★时延
在处理过程中所需要的时间


5. 时延带宽积

6. 往返时间
在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互
我们有时很需要知道双向交互一次所需要的时间
因此,往返时间RTT(Round-Trip Time)也是一个重要的性能指标
7. ★利用率
信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)
网络利用率:全网络的信道利用率的加权平均
-
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加。因此信道利用率不是越高越好
-
如果令**D0D_0D0表示网络空闲时的时延**,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示
D、D0D_0D0和利用率U之间的关系 D=D01−UD=\dfrac{D_0}{1-U}D=1−UD0

当网络利用率
U到50%时,时延急剧增大。当网络利用率接近
100%时,时延趋于无穷大但是也不能使信道利用率过低,这回使宝贵的通信资源被浪费
因此一些拥有较大主干网的ISP通常会控制它们的信道利用率不超过50%。如果超过了,就要准备扩容,增大线路带宽
8. 丢包率
丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
具体可分为:接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等
丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们意识不到丢包
分组丢失的两种情况
- 分组在传输过程中出现误码,被结点丢弃
- 分组到达一台队列已满的分组交换机时被丢弃,在通信量较大时就可能造成网络拥塞
丢包率反映了网络的拥塞情况
- 无拥塞时路径丢包率为
0 - 轻度拥塞时路径丢包率为
1%~4% - 严重拥塞时路径丢包率为
5%~15%
★体系结构

1. 分层的必要性
在平常编程时,我们总是喜欢利用不同的类实现不同的功能,最后进行整合实现真正的功能。这样的好处是让结构更加清晰,维护也更加简单。计算机网络分层同理,在计算机网络上实现不同进程的通信需要解决众多问题,分层便于维护与管理。

2. 分层举例
当我们利用浏览器发送网页请求到服务器并发生响应的过程中,数据会怎么变化呢?

浏览器发送
- 应用层按照
HTTP协议的规定构建一个HTTP请求报文(请求要干什么)。应用层将HTTP请求的报文交给运输层处理 - 运输层给
HTTP请求报文添加一个TCP首部(区分应用进程),使之成为TCP报文段。运输层将TCP报文段交给网络层处理 - 网络层给
TCP报文段添加一个IP首部(使之可以在互联网上传输),使之成为IP数据报。网络层将IP数据报交付给数据链路层处理 - 数据链路层给
IP数据报添加一个首部(让其能在一段链路上传输,能被相应主机接收)和一个尾部(让目的主机检查所接收到的帧是否有误码),使之成为帧。数据链路层将帧交给物理层 - 物理层将帧看作比特流,如果网络是以太网,它还会在帧上加前导码(让目的主机做好接收帧的准备)。接着将比特流变成相应信号发送到传输媒体
路由器转发
- 物理层收到信号将其变为比特流,去掉前导码后,将其交付给数据链路层**(交付的实际是帧)**
- 数据链路层将帧去掉首部和尾部后,将其交付给网络层**(交付的实际是IP数据报)**
- 网络层解析
IP数据报首部,从中提取目的网络地址,然后查找自身路由表,确定转发端口。接着数据链路层封装,物理层再封装,将比特流变成信号发送出去。
服务器接收
- 物理层收到信号将其变为比特流,去掉前导码后,将其交付给数据链路层**(交付的实际是帧)**
- 数据链路层收到帧后,去除首部和尾部,将其交付给网络层**(交付的实际是IP数据报)**
- 网络层收到
IP数据报后,去除IP首部,将其交付给运输层**(交付的实际是TCP报文)** - 运输层收到
TCP报文后,从中得知是与哪个端口上的进程通信,去除TCP头部后,交付给应用层**(交付的实际是HTTP请求报文)** - 应用层收到
HTTP请求报文后,将其解析给对应进程,并执行相关操作,返回HTTP响应报文
专用术语
①实体
任何可发送或接收信息的硬件或者软件进程
对等实体:收发双方相同层次中的实体

②协议
控制两个对等实体进行**逻辑通信(这种通信实际上不存在,只是便于我们考虑问题)**的规则的集合

三要素
- 语法:定义所交换信息的格式(即报文格式)
- 语义:定义收发双方所要完成的操作(即收,发任务需要各自定义)
- 同步:定义收发双方的时序关系(如先建立侦听才可以通信是有先后顺序的)
③服务
- 在协议控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务(也就是说通过协议完成本层的内容后就可以向上提供服务)
- 要实现本层协议,还需要使用下面一层所提供的服务
- 协议是**“水平的”,服务是"垂直的"**
- 实体看得见相邻下层所提供的的服务,但是并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是**“透明”**的
(就像手机为我们提供服务,但是我们并不知道具体是如何实现的)
服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口(就像Web里的request域,后端前端都能取到),用于区分不同的服务类型
- 数据链路层的服务访问点为帧的"类型"字段
- 网络层的服务访问点位IP数据报首部中的"协议字段"
- 运输层的服务访问点为"端口号"
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语

协议数据单元PDU(横向):对等层次之间传送的数据包称为该层的协议数据单元
- 物理层是比特流;数据链路层是帧;网络层是IP数据报或分组……
服务数据单元SDU(竖向):同一系统内,层与层之间交换的数据报称为服务数据单元
- 物理层往上送是比特流;数据链路层往下送是帧……
多个SDU可用合成为一个PDU;一个SDU页可以划分为几个PDU
借鉴:https://blog.csdn.net/weixin_45488428/article/details/115102326
相关文章:
计算机网络第一章(概述)【湖科大教书匠】
1. 各种网络 网络(Network)由若干**结点(Node)和连接这些结点的链路(Link)**组成多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(互连网)。因此,互联网是"网络的网络(Network of Networks)"**因特…...
【JS】vis.js使用之vis-timeline使用攻略,vis-timeline在vue3中实现时间轴、甘特图
vis.js使用之vis-timeline使用攻略,vis-timeline实现时间轴、甘特图1、vis-timeline简介2、安装插件及依赖3、简单示例4、疑难问题集合1. 中文zh-cn本地化2. 关于自定义class样式无法被渲染3. 关于双向数据绑定vis.js是一个基于浏览器的可视化库,它提供了…...
机器学习——数据处理
机器学习简介 机器学习是人工智能的一个实现途径深度学习是机器学习的一个方法发展而来 机器学习:从数据中自动分析获得模型,并利用模型对未知数据进行预测。 数据集的格式: 特征值目标值 比如上图中房子的各种属性是特征值,然…...
多种文字翻译软件-翻译常用软件
整篇文档翻译软件 整篇文档翻译软件是一种实现全文翻译的自动翻译工具,它能够快速、准确地将整篇文档的内容翻译成目标语言。与单词、句子翻译不同,整篇文档翻译软件不仅需要具备准确的语言识别和翻译技术,还需要考虑上下文语境和文档格式等多…...
Baumer工业相机堡盟工业相机如何通过BGAPI SDK将相机图像数据用二进制的方式保存到本地(C++)
Baumer工业相机堡盟工业相机如何通过BGAPI SDK将相机图像数据用二进制的方式保存到本地(C)Baumer工业相机Baumer工业相机将图像保存为二进制图像的技术背景代码分析第一步:先转换Byte*图像为二进制图像第二步:在回调函数里进行Buf…...
JavaScript模块的导出和导入之export和module.exports的区别
export和module.exports (需要前面的export没有“s”,后面的module.exports 有“s”) 使用两者根本区别是 **exports **返回的是模块函数 **module.exports **返回的是模块对象本身,返回的是一个类 使用上的区别是exports的方法可以直接调用module.exports需要new…...
基于朴素贝叶斯分类器的钞票真伪识别模型
基于朴素贝叶斯分类器的钞票真伪识别模型 内容 本实验通过实现钞票真伪判别案例来展开学习朴素贝叶斯分类器的原理及应用。 本实验的主要技能点: 1、 朴素贝叶斯分类器模型的构建 2、 模型的评估与预测 3、 分类概率的输出 源码下载 环境 操作系统…...
【Python】【进阶篇】二十二、Python爬虫的BS4解析库
目录二十二、Python爬虫的BS4解析库22.1 BS4下载安装22.2 BS4解析对象22.3 BS4常用语法1) Tag节点22.4 遍历节点22.5 find_all()与find()1) find_all()2) find()22.6 CSS选择器二十二、Python爬虫的BS4解析库 Beautiful Soup 简称 BS4(其中 4 表示版本号࿰…...
UDS统一诊断服务【五】诊断仪在线0X3E服务
文章目录前言一、诊断仪在线服务介绍二、数据格式2.1,请求报文2.2,子功能2.3,响应报文前言 本文介绍UDS统一诊断服务的0X3E服务,希望能对你有所帮助 一、诊断仪在线服务介绍 诊断仪在线服务比较简单,其功能就是告诉服…...
我的创作纪念日:Unity CEO表示生成式AI将是Unity近期发展重点,发布神秘影片预告
PICK 未来的AI技术将会让人类迎来下一个生产力变革,这其中也包括生成型AI的突破性革新。各大公司也正在竞相推出AIGC工具,其中微软的Copilot、Adobe的Firefly、Github的chatGPT等引起了人们的关注。然而,游戏开发领域似乎还没有一款真正针对性…...
秩亏自由网平差的直接解法
目录 一、原理概述二、案例分析三、代码实现四、结果展示一、原理概述 N = B T P B N=B^TPB N=<...
大数据开发必备面试题Spark篇合集
1、Hadoop 和 Spark 的相同点和不同点? Hadoop 底层使用 MapReduce 计算架构,只有 map 和 reduce 两种操作,表达能力比较欠缺,而且在 MR 过程中会重复的读写 hdfs,造成大量的磁盘 io 读写操作,所以适合高时…...
C ++匿名函数:揭开C++ Lambda表达式的神秘面纱
潜意识编程:揭秘C Lambda表达式的神秘面纱 Subconscious Programming: Unveiling the Mystery of C Lambda Expressions 引言:Lambda表达式的魅力 (The Charm of C Lambda Expressions)Lambda表达式简介与基本概念 (Introduction and Basic Concepts of …...
AOP使用场景记录总结(缓慢补充更新中)
测试项目结构: 目前是测试两个日志记录和 代码的性能测试 后面如果有其他的应用场景了在添加.其实一中就包括了二,但是没事,多练一遍 1. 日志记录 比如说对service层中的所有增加,删除,修改方法添加日志, 记录内容包括操作的时间 操作的方法, 方法的参数, 方法所在的类, 方法…...
FPGA基于XDMA实现PCIE X4的HDMI视频采集 提供工程源码和QT上位机程序和技术支持
目录1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案5、vivado工程详解6、驱动安装7、QT上位机软件8、上板调试验证9、福利:工程代码的获取1、前言 PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PCI …...
ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析
查看原文>>>ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析 目录 专题一、空间数据获取与制图 专题二、ArcGIS专题地图制作 专题三、空间数据采集与处理 专题四、遥感数据处理与应用 专题五、DEM数据…...
怎么找回回收站里已经删除的文件
作为忙忙碌碌的打工人,电脑办公是在所难免的,而将使电脑存储着大量的数据文件,不少小伙伴都养成了定期清理电脑的习惯。而清理简单快捷的方法,无疑是直接把文件拖进回收站里。再一键清空,清理工作就完成了。但如果发现…...
Spring Boot、Cloud、Alibaba 版本说明
Spring Boot、Cloud、Alibaba 版本说明 一、毕业版本依赖关系(推荐使用) 由于 Spring Boot 3.0,Spring Boot 2.7~2.4 和 2.4 以下版本之间变化较大,目前企业级客户老项目相关 Spring Boot 版本仍停留在 Spring Boot 2.4 以下,为了同时满足存…...
软件测试入门第一步:编写测试报告
什么是测试报告? 1、说明:是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。 ps. 【测试过程和测试结果的分析报告,以及上线…...
【Vue】vue中的路由导航守卫(路由的生命周期)
文章目录全局前置守卫可选的第三个参数 next全局解析守卫router.beforeResolve全局后置钩子路由独享的守卫组件内的守卫可用的配置 API使用组合 API完整的导航解析流程正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。这里有很多方式植入…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
