【计算机网络】计算机网络基础

news2024/11/18 8:22:28

计算机是人类社会不可或缺的工具,而单独的一台计算机的功能也是有限的,计算机需要和其它的设备相互连接通信形成的计算机网络才能对人类发展带来巨大的影响。

目录

计算机网络

通信协议

网络结构

网络边缘

接入网

网络核心

时延和吞吐量

时延

吞吐量

分层网络结构

应用层

运输层

网络层

链路层

物理层

结构封装


计算机网络

我们知道,老式的座机电话要想打电话需要拉电话线,而各台电话之间互相拉线连成一个通信网络。类似地,计算机之间通信也需要形成计算机网络。一个网络的要素包括节点和边,每一台电脑或者一个路由器/交换机等可以当作节点,而主机连到路由器/交换机的光纤、电缆等链路就是边。

其中细化节点可以分为两种:

1、数据发送和接收端,也就是主机,也可以抽象称为端系统

2、数据传输中介,可以是路由器交换机等设备。它们的作用可以参考MC中的红石中继器或者高压输电桩。

而互联网就是在计算机网络的产物,而计算机的网络有很多种,其中主要介绍两类网络:

(1)局域网LAN:需要自备线路,传输速度较快,一般由单位和个人所有,传输错码率低。拓补结构多为总线型、星型、环形等规则型。

(2)广域网WAN:公用线路,由局域网连接而成,传输速度较慢,一般为运营公司所有,传输错码率高。拓补结构多为网状、树状。

互联网也就是以这些网络为互联网的抽象节点通过网络互联设备连接,作为这些计算机网络网络的巨大网络。

如果更细化就可以将将计算机网络成员细分为端系统通信链路分组交换机端系统就是我们数据包产生的主机(PC、移动PC和联网智能设备等),它产生的数据包会被细分为多个小数据包(分组)通过通信链路(光纤、同轴电缆)等传输出去,当遇到需要集中处理多条链路并且转换时就接入分组转换器(路由器等),其中数据传输的速率是单位是bit/s也就是bps

而一般情况下,端系统利用ISP(Internet Service Provider)因特网服务提供商来接入因特网,也就是说ISP向我们提供通信链路和分组交换机等工具,同时它也可以向提供服务的服务器端提供接入服务。

通信协议

就如人和人之间的交流一样,计算机之间交流也需要通信的协议,一般情况下一个完整的通信协议应该包括下列5个要素:

  • 有信息源和信息接收者;
  • 双方统一的通信方式(打电话、发短信);
  • 双方统一的语言和语法;
  • 双方统一的通信时间和信息传递速度;
  • 接收方的反馈和信息确认

        

        所以如果我们需要将一张图片、一个视频或者一个文件发送给对方,那么这个需要发送的东西统称为消息,无论多复杂的消息都是通过转换为比特位来传输的。其中我们需要发送消息的客户端称为服务,例如QQ邮箱发邮件那么QQ邮箱就是服务。

        而信息需通过我们的设备传出去后需要一个传输的介质,就如声波需要在介质中才能传播一样。信息也需要传播介质。而信息的传播介质可以是路由器、交换机等连接局域网和广域网的中介,也可以是传输的电缆、光纤,也可以是抽象的广域网、局域网。

        因为各个设备之间状态不同,所以各个设备之间要通信就应该制定一套通用的通信协议,目前常用的一套通信协议就是TCP/IP通信协议。IP是网际协议,TCP是传输控制协议,这是一套最基础的通信协议,而这些协议是在RFC标准文档中定义的。但是我们常用的服务需要结合一些其它协议:例如万维网www服务就需要结合HTTP超文本协议来传输信息。

网络结构

我画了下图所示的网络通信图,如果我在这个图的基础上对网络再进行划分,就可以得到另外一种新的网络模式划分方式,这种划分方式总体来说可以划分出三个部分:网络边缘网络核心接入连接

网络边缘

网络边缘由端系统(PC、服务器、手机等)以及一些基础设施组成,运行在端系统上的进程之间常见的通信方式有C/S方式和P2P方式。

C/S通信模式:客户端服务端通信模式,也就是客户端向服务器发送服务请求,服务器根据客户端的请求进行相应的回复。这种模式有个很大的问题,即当多个客户端向服务器发送请求时,服务器与客户端连接的端口不够、工作繁忙容易引起崩溃等问题。

Peer-Peer通信方式:这种通信方式中客户端也可以充当服务器的角色,客户端可以向另一个客户端发送请求,这种通信方式就不需要考虑担心服务器容量的问题了。并且可以大大提高传输速率,例如迅雷的客户端就是这种传输方式。

如果考虑采用基础设施的无连接服务,则端系统下的进程可以通过的基础设施进行通信并且另外细分为TCPUDP通信方式。这两种方式中TCP通信方式更加可靠,可以控制流量等,而UDP不可靠不过实时性强。

接入网

接入网就是端系统接入到网络核心的媒介,即一套从端系统到第一台路由器的网络。通常情况下,接入家庭的接入网技术有这几种:DSL电缆FTTH拨号和卫星

DSL:数字用户线,是利用电话线的一种接入方式,具体是将电话线传输的信号按照频率来细分出两个通道来传输数据。

电缆:电缆因特网接入是利用有线电视公司的基础设施作为链路来连接端系统和交换机的。因为一般从通信公司电缆头端到端系统之间还有一段使用光缆来传输的,所以这种混合传输方式也被称为混合光纤同轴系统(HFC)

光纤到户:光纤到户也称问FTTH,他是指直接从用户所在当地通信运营商处直接拉一条光纤到自己家。当然,这些光纤也是在靠近用户时才进行分叉,现代的FTTH模式常见有主动光纤网络AON和被动光纤网络PON两种模式。

而在企业和家庭中,还有一种常见的接入方式局域无线网接入即以太网WIFI。即手机通过无线接入方式接入到局域网再接入到ISP的接入方式。就对应着一般家庭中的光猫(光调制解调器)、路由器、无线接入点。还有一种接入方式是广域无线网接入即3G4G等。

网络核心

网络核心是上图红圈内的部分,它主要由通信链路和分组交换机构成(路由器,交换机)。端系统发送报文(message)即我们平时说到数据通过通信链路和交换机传输到另一个端系统。在网络核心部分数据的传输方式主要有两种:分组交换电路交换

分组交换:分组交换的数据传输方式是存储转发运输,它是指当前一个分组未传输完,后一个分组不开始传输,可以理解为离散的传输方式,不是连续的。假设有两个端系统和一个路由器:

当路由器向输出链路传输分组之前,该分组必须完整被路由器接收。就是指路由器会将分组完全下载好才开始向输出链路传输。正因为路由器会有个缓存的过程,所以如果输出的速率跟不上输入的速率,那么分组就会在路由器堵塞,堵塞的时间就叫做排队时延;更甚者路由器放的分组太多了,放不下了,就会丢掉一些后面来的,这就是分组丢失(丢包)。

当分组从端系统到路由器时,分组中某段会存有发送端系统的IP地址,并且存有目的地的地址。当这些分组到达路由器时,路由器会通过分组记载的目的地经路由选择协议来通过生成转发表以此向下一级发送分组。

电路交换:电路交换是另外一种数据传输方式,电路交换的传输方式是指预留一条通道来作为某个端系统的专属传输通道,这与分组交换不同,分组交换中链路是共享的,每个人都可以用任何一条链路。而电路交换是为某个端系统专门开的VIP通道,只有你能过,别人不能过。可以看出,电路交换运输不需要考虑堵塞问题,但需要考虑你是否能够承担起独享一条线路的代价、成本。而分组交换是注重共享问题,但会导致堵塞。

时延和吞吐量

时延

时延是指分组从在沿途传播中经每一个节点时所因为各种原因消耗的时间。其中时延有几种类型:节点处理时延传播时延运输时延排队时延

首先是处理时延:处理时延指的是当路由器接收到一个分组时,检查这个分组的来源和目的地并且设置路由表指定导向链路等所需要的时间。

其次是排队时延:排队时延就是分组到到达路由器时下一条链路前方剩余的分组数。即排队时延取决于前方队列中的分组数量。

再者是传输时延:分组时延是指将所有分组的时延运输出去所需的时间。即当该分组位于队首时分组比特数除以该分组第一个比特到达时与最后一个比特到达时的时间差。

最后是传播时延:传播时延就是一个比特在链路中传播的时间,即起始路由器到目标路由器所需的时间。

吞吐量

吞吐量大致可分为两种:瞬时吞吐量平均吞吐量。以一个端系统为例,它的瞬时吞吐量是指某个瞬间接收到的文件的速率;而平均吞吐量是指一个大小为N个比特的文件,该端系统用T秒完全接收,则N/T就是平均吞吐量。

分层网络结构

现代的网络结构使用的是分层的网络结构体系,每一层会使用下层的服务,执行本层的功能,向上层提供服务,但是各层之间往往也会与有独特的网络协议,所有的这些协议总和称为协议栈。这样的层次结构可以理论上让每层功能模块化实现,以便于后续针对某项功能实现的优化和调整。但是不可避免也会造成冗余或者是造成下层信息影响上层的情况。

而因特网就是采用下面左边的5层网络结构模式,共分为:应用层运输层网络层链路层物理层。它是在国际标准化组织ISO提出的开放系统互连OSI)七层模型的基础上简化而来,它缺少了表示层和会话层。

应用层

所谓应用层就是存储网络应用程序和这些程序的协议的一层,常见的HTTP(Web文档请求和传输协议)、DNS(域名解析协议)、SMTP(电子邮件传输协议)和FTP(文件传输协议)等都是属于这个层。端系统和端系统之间利用应用程序和应用层协议进行传输的信息分组就是报文(message)

运输层

运输层负责传输两端点之间的应用程序报文,其中TCPUDP协议就是运输层的传输协议。我们称运输层中传递的分组为报文段(segment)

网络层

相应的,分组经过运输层利用运输层协议向网络层传达报文段和目标地址,获得后网络层就负责将网络层的分组:数据报(datagram)从一个主机到另一个主机。其中著名的网际协议IP就属于网络层。IP协议定义了数据报中各个字段的意义以及路由如何使用。还有另外一个协议:路由选择协议也是属于网络层,它能够根据数据报的源和目的来选择路线。

链路层

由上可知,数据报通过网络层实现主机间的传播,但是我们知道主机之间隔着很多的路由器和链路,所以在链路层就实现链路层分组:帧(frame)在路由(主机)节点之间传播。在某个特定的节点处,网络层数据下放给链路层,当传播到下一个节点时,就将数据包由链路层上传给网络层。常见的链路层协议包括:以太网、WiFi和电缆接入网的DOCSIS协议。

物理层

物理层是细化的链路层,链路层是将帧从一个节点到另一个节点,而物理层就负责将帧里面的数据一个比特一个比特地传过去。所以一般链路层的协议都会对应一些物理层的物理传输媒介协议。

结构封装

如果再细化去看一个分组在网络结构中的运输,我们可以得到网络每一层模型对分组的封装动作。首先我们假设我们有一个分组,该分组先经应用程序作为报文M从应用层向运输层运输,运输层接收到后会为该分组增添一些信息:如允许接收端运输层向上向适当的应用程序交付报文的信息差错检测位信息等,封装成报文段后传输给网络层,网络层同样会在此基础上增加一些信息得到数据报向链路层传输,每层都这样增加一些的信息,将报文传输所需的各项信息丰富的行为就是封装。所以我们可以将到达每一层的分组分为由两大组成:首部字段有效载荷字段。前者就是该层增加到额外信息,后者则是从上层获得的基本分组。

 


参考资料:

《计算机网络-自顶向下方法第七版》

中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程_哔哩哔哩_bilibili

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

.Net Core6.0项目发布在IIS上访问404的问题

ASP.Net Core6.0项目发布在IIS上访问404的问题 进入线程池画面,将当前程序的线程池设为“无托管代码” 修改配置文件 Web.config,以下缺一不可 需要引用架包:Swashbuckle.AspNetCore.SwaggerUI.NetCore 6.0 自带集成了Swagger , 在发布项目时…

C++模板(函数模板、类模板)

目录 一、泛型编程 二、函数模板 函数模板概念 函数模板格式 函数模板的原理 函数模板的实例化 模板参数的匹配原则 三、类模板 类模板的定义格式 类模板的实例化 四、扩展 函数模板一定是推演?类模板一定是指定? 模板的分离编译 一…

MySQL高级【行级锁】

1:行级锁1.1:介绍行级锁,每次操作锁住对应的行数据。锁定粒度最小,发生锁冲突的概率最低,并发度最高。应用在 InnoDB存储引擎中。 InnoDB的数据是基于索引组织的,行锁是通过对索引上的索引项加锁来实现的&a…

WPF中Binding数据校验、并捕获异常信息的三种方式

Binding数据校验、并捕获异常信息的三种方式 WPF在使用Binding时,经常需要进行数据校验,如果校验失败需要捕获失败的原因,并加以展示,本文主要介绍数据校验异常并捕获的三种方式。 依赖属性异常捕获 先定义一个依赖属性 publi…

【Nacos】Nacos配置中心的使用与SpringCloud整合

在微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移(分割),这样配置就分散了,不仅如此,分散中还包含着冗余。配置中心将配置从各应…

哪儿有微服务开源项目?

随着数字化时代的到来,微服务开源项目的应用价值逐渐凸显。作为提升企业办公协作效率的低代码开发平台项目,其表现出来的灵活性、易操作、简便的特性,成为现代化办公管理中的重要合作伙伴。我们今天一起来了解什么是微服务开源项目。 一、微服…

基于JavaWeb实现蜀南调味品商城物流配货系统

一、项目介绍 本文系统利用JavaWeb技术,设计和实现了连接公司、客户公司、物流运输为桥梁的销售配送管理系统,并以网络技术和信息技术在销售配送中的应用为重点,实现员工登录模块、员工信息管理模块、库存管理模块、订单处理模块、包装管理模…

高通Wi-Fi 7网络芯片方案IPQ9574,IPQ9554,IPQ9514,IPQ9570,IPQ9550,IPQ9510

networking pro 1620:芯片型号IPQ9574,支持4频段16路数据流,峰值速率33Gbps,支持4个2.5G口,1个5G口,1个万兆口;networking pro 1220:芯片型号IPQ9574,支持3频段12路数据流…

三个案例详解不同网段之间如何互通

当然还可以通过三层交换机划分VLAN配置更好。这里主要讲通过普通路由器之间互通一台路由器连接另外一台路由器,这两台路由器分别连接不同的网段,那么如果要这两个网段互通,则必须配置路由,这个就是静态路由。案例一、不同网段之间…

【练习】Day06

努力经营当下,直至未来明朗! 文章目录一、选择二、编程最小时间差答案1. 选择2. 编程普通小孩也要热爱生活! 一、选择 散列技术中的冲突是指( ) A. 两个元素具有相同的序号 B. 两个元素的键值不同,而其他…

Linux权限理解

✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;C ☂️<3>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<4>前言&#xff1a;linux当中对于权限的理解。 &#x1f490;一.生活中的权限 &#x1f338;二.Linux权限…

一文让你弄懂多租户数据库设计⽅案

文章目录前言一、设计方案二、方案剖析三、方案总结四、方案选型五、引申问题的解决方案六、写在最后前言 多租户是SaaS&#xff08;Software-as-a-Service&#xff09;下的一个概念&#xff0c;意思为软件即服务&#xff0c;即通过网络提供软件服务。 SaaS平台供应商将应用软…

微软的AD登录loginRedirect

我这边技术栈是reactts 如果你是vue&#xff0c;直接将tsx文件改成jsx就可以或者不该也没问题 上篇文章介绍了msal 的弹框登录&#xff0c;先介绍下重定向登录这个相对弹框登录要烦很多。。。中国内网看我查询的资料很少&#xff0c;只有微软系的公司才会有相对应的需求。此处自…

代码随想录算法训练营第二天|977.有序数组的平方 |209.长度最小的子数组 |59.螺旋矩阵II

977 有序数组平方 看完题后的思路 双指针 思路 本题如果使用暴力解法,需要按照绝对值将数组排序0(logn),然后进行平方.(或先平方,再排序,这样可以直接调用排序函数) 可以使用双指针法,定义两个指针,左指针是当前绝对值最小的负数,右指针是当前绝对值最小的整数,每一轮将较小…

03、openscenegraph(简称osg)源代码编译

通过上一节&#xff0c;我们准备下载好了osg源代码和依赖库&#xff0c;并安装了CMake、VS2013开发环境&#xff0c;接下来就可以进入编译工作了。 首先&#xff0c;将下载的openscenegraph源代码和依赖库3rdParty_VS2012.3_v110_x86_x64_V8b_full解压到同一个目录下&#xff…

构建系列之新一代利器Esbuild(下)

前言 本篇文章接上文&#xff0c;通过尝试使用esbuild的能力和业界的落地方案作为切入点继续深入esbuild的原理。 尝试Esbuild ESBuild在API层面上非常简洁, 主要的API只有两个: Transform和Build, 这两个API可以通过CLI, JavaScript, Go的方式调用 Transform主要用于对源代…

致而立之年的自己

&#xff08;点击即可收听&#xff09;时间是连续性的,人越长大,越能体会到,所谓的跨年与过年,其实是没有多大意义的但只要是人,就需要制造一些仪式感,弄出一些特殊的节日,用于安慰自己,对于逝去的曾今做一个告别,制造些记忆点然而,记忆这东西,是很容易健忘的,就像昨天,前天,吃…

泰克新2系示波器在微电网测试上的应用

直流微电网是由直流构成的微电网&#xff0c;是未来智能配用电系统的重要组成部分&#xff0c;对推进节能减排和实现能源可持续发展具有重要意义。相比交流微电网&#xff0c;直流微电网可更高效可靠地接纳风、直流逆变等分布式可再生能源发电系统、储能单元、电动汽车及其他直…

【C语言进阶】一万字教你实现简易通讯录管理

目录一. 通讯录要实现的功能1.项目文件分配2.通讯录基本功能二.test.c的实现1.逻辑代码的实现2.通讯录联系人信息的创建三.contacts.c的实现1.初始化通讯录2.添加联系人信息3.显示通讯录信息3.删除指定联系人信息4.查找指定联系人5.修改指定联系人信息6.以名字年龄排序通讯录7.…

进程收尾,初识线程

PCB中的信息:常见属性(有关于进程调度) 1)PID:(进程id)是进程中的身份标识&#xff0c;一个机器同一时刻&#xff0c;不可能有两个进程的PID相同&#xff0c;同一个系统的身份标识&#xff0c;进程的身份证号 2)一组内存指针&#xff1a;指名了该进程持有的一些重要数据和要执行…