【计算机网络】第 3 课 - 计算机网络体系结构

news2024/12/25 12:50:27

        欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。


 

目录

1、常见的计算机网络体系结构

2、计算机网络体系结构分层的必要性

2.1、物理层

2.2、数据链路层

2.3、网路层

2.4、运输层

2.5、应用层

3、计算机网络体系结构中的专业术语

4、总结 


1、常见的计算机网络体系结构

        为了使不同体系结构的计算机网络都能互连,国际标准化组织于 1977 年成立了专门机构研究该问题。不久,他们就提出了一个试图使各种计算机在世界范围内互连成网的标准框架,也就是著名的 “开放系统互连参考模型”,简称为 OSI(Open Systems Interconnection)

        到了 20 世纪 90 年代初期,虽然整套的 OSI 国际标准都已经制订出来了,但这时因特网已抢先在全世界覆盖了相当大的范围。因特网从 1983 年开始使用 TCP/IP 协议族,并逐步演变成 TCP/IP 参考模型。

         在过去制订标准的组织中往往以专家、学者为主。但现在,许多公司都纷纷挤进各种各样的标准化组织,使得技术标准有着浓厚的商业气息。一个新标准的出现,有时不一定反映出其技术水平是最先进的,而是往往有着一定的市场背景。从这种意义上说,能够占领市场的就是标准。

OSI 标准失败的原因可归纳为:

①  OSI 的专家们缺乏实际经验,它们在完成 OSI 标准时没有商业驱动力

②  OSI 的协议实现起来过分复杂,而且运行效率很低

③  OSI 标准的制订周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场 

④  OSI 的层次划分也不太合理,有些功能在多个层次中重复出现

        TCP/IP 体系结构的网络接口层并没有规定什么具体的内容,这样做的目的是 可以互连全世界各种不同的网络接口,例如有线的以太网接口,无线局域网的 WIFI 接口,而不限定使用一种或几种网络接口。因此,本质上 TCP/IP 体系结构只有上面的三层。

        IP 协议是 TCP/IP 体系结构网际层的核心协议。TCP 和 UDP 是 TCP/IP 体系结构运输层的两个重要协议。 TCP/IP 体系结构的应用层包含了大量的应用层协议,例如 HTTP,SMTP,DNS,RTP 等。

        IP 协议可以将不同的网络接口进行互连,并向其上的 TCP 协议和 UDP 协议提供网络互连服务。而 TCP 协议在享受 IP 协议提供的网络互连服务的基础上,可向应用层的相应协议提供 可靠传输的服务。UDP 协议在享受 IP 协议提供的网络互连服务的基础上,可向应用层的相应协议提供 不可靠传输的服务。 

        由于 TCP/IP 体系结构为了将不同的网络接口进行互连,因此它的网络接口层并没有规定什么具体的内容。然而,这对于我们学习计算机网络的完整体系而言,就会缺少一部分内容,即缺少的是物理层内容。因此,在学习计算机网络原理时往往采取折中的办法,也就是综合 OSI 和 TCP/IP 的优点,采用一种 五层协议的原理体系结构

        可以看出,五层协议的原理体系结构,将 TCP/IP 体系结构的网络接口层又重新划分为了物理层和数据链路层。这样,更有利于我们对计算机网络原理的学习。


2、计算机网络体系结构分层的必要性

        “分层” 可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。

        下面,我们按照由简单到复杂的顺序,来看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到相应的层次,层层处理。


2.1、物理层

物理层(Physical Layer):这是最底层的层次,负责定义传输介质和数据传输的物理规范,例如电缆、光纤、无线信号等。 

        首先,来看最简单的情况,两台计算机通过一条网线连接起来。

         对于这种最简单的情况,我们需要考虑以下问题:

①  采用怎样的传输媒体(介质)

        例如,这是我们常见的双绞线网线。 

②  采用怎样的物理接口

  

        例如,这是 RJ45 以太网接口。 

③  使用怎样的信号表示比特 0 和 1

        例如,使用这样的方波信号,低电平表示 0,高电平表示 1。(这里,我们需要说明两点,① 严格来说,传输媒体并不属于物理层,它并不包含在体系结构之中。② 计算机网络中传输的信号,并不是我们举例的方波信号,我们之所以举例成方波信号,是为了让初学者容易理解。)

        解决了这些问题,两台计算机就可以通过信号来传输比特 0 或 1 了。我们可以将这些问题划规到 物理层。 


2.2、数据链路层

数据链路层(Data Link Layer):在物理层之上,负责数据的分帧、差错检测和纠正,以确保数据在物理层的可靠传输。

        实用的计算机网络,一般都由多台主机构成。

        假设,我们已经解决了物理层的问题,也就是说,主机间可以发送信号来传输比特 0 或 1 了。我们来看看,在这样一个 总线型的网络 上,还面临什么需要解决的问题呢?

        如图所示,主机 A 要给主机 C 发送数据,但是,表示数据的信号会通过总线传播到总线上的每一个主机。那么问题来了,主机 C 如何知道该数据是发送给自己的,自己要接受?而主机 B,D,E 又如何知道该数据并不是发送给自己的,自己应该拒绝呢?这就很自然地引出了 如何标识网络中各主机的问题(主机编址问题,例如 MAC 地址)。 

        主机在发送数据时,应该给数据附加上目的地址,当其他主机收到之后,根据目的地址和自身地址,来决定是否接受数据。这就又引出了一个问题:目的主机从信号所表示的一连串比特流中区分出地址和数据,也就是需要解决分组的封装格式问题

        另外,对于总线型网络,还会出现下面这种典型的问题。例如,在某个时刻总线是空闲的,也就是没有主机使用总线来发送数据。片刻之后,主机 B 和 D 同时向总线发送数据,这必然会造成信号碰撞。因此,如何协调各主机争用总线,也是必须要解决的问题

        需要说明的是,这种总线型的网络早已淘汰,现在常用的是使用 以太网交换机 将多台主机互相形成的 交换式以太网

        那么,以太网交换机是如何实现的呢?我们将这些问题,全部划归到 数据链路层。到这里,大家可能会发现,只要解决了物理层和数据链路层各自所面临的问题,我们就可以实现分组在一个网络上传输了


2.3、网路层

网络层(Network Layer):这一层负责网络中不同设备之间的寻址和路由,以确定数据在网络中的最佳路径。

        我们每天都会使用的因特网,是由非常多的网络和路由器互连起来的,仅解决物理层和数据链路层还是不能正常工作。我们来看下面这个例子,这是由 3 个路由器,4 个网络互连起来的小型互连网,我们可以把它看作是因特网中很小的一部分。 

        在之前的例子中,只有一个网络,我们不需要对网络进行标识。而在本例中,有多个网络,很显然,我们面临着 如何标识 “各网络” 以及 “网络中各主机” 的问题(网络和主机共同编址问题,例如 IP 地址)

        例如,这是网络 N1 中各设备的 IP 地址。该类 IP 地址的前三个十进制数用来标识网络,第四个十进制数用来标识主机。

        我们在来看另外一个问题,源主机与目的主机之间的传输路径往往不止一条,分组从源主机到目的主机可走不同的路径。这样就引出了路由器如何转发分组的问题以及如何进行路由选择的问题 。我们将这些问题全部划分到 网络层


2.4、运输层

传输层(Transport  Layer):传输层提供端到端的通信,负责将数据分割为较小的数据段,并提供流量控制和可靠性保证,例如通过TCP(传输控制协议)实现的可靠数据传输。

        如果我们解决了物理层、数据链路层以及网络层各自的问题,则可以实现分组在网络间传输的问题。但是,对于计算机网络应用而言,这仍然不够。例如,假设这台主机中运行着两个与网络通信相关的应用进程,一个是浏览器进程,另一个是 QQ 进程。这台服务器中运行着与网络通信相关的服务器进程。

        某个时刻,主机收到了来自服务器的分组,那么,这些分组应该交给浏览器进程处理呢,还是应该交给 QQ 进程处理呢?这就引出了我们如何标识与网络通信相关的应用进程,进而解决进程之间基于网络的通信问题。

        另外,如果某个分组在传输过程中出现了误码,或者由于路由器繁忙,导致路由器丢弃分组,这应该如何处理呢?我们将这些问题都全部划归到 运输层


2.5、应用层

        我们已经解决了物理层,数据链路层,网络层和传输层各自的问题,则可以实现进程之间基于网络的通信。在此基础上,只需制定各种应用层协议,并按协议标准编写相应的应用程序,通过应用进程间的交互来完成特定的网络应用。例如,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议,支持文件传送的 FTP 协议,我们将这些问题全部划分到应用层。

        至此,我们将实现计算机网络所需要解决的各种主要问题,分别划归到了 物理层数据链路层网络层运输层应用层,进而构成了五层协议体系的原理体系结构。


3、计算机网络体系结构中的专业术语

(1)实体:任何可发送或接收信息的硬件或软件进程

(2)对等实体:收发双方相同层次中的实体

(3)协议的三要素

①  语法:定义所交换信息的格式 

②  语义:定义收发双方所要完成的操作

        例如,主机要访问远程 Web 服务器,他会构建一个 HTTP 的 GET 请求报文,然后将其发送给 Web 服务器。

        Web 服务器收到该报文并进行解析,知道这是一个 HTTP 的 GET 请求报文,于是就在自身内部查找所请求的内容,并将所找到的内容封装在一个 HTTP 响应报文中发回给主机。

        主机收到 HTTP 响应报文后,对其进行解析,取出所请求的内容,并由浏览器解析显示。这个例子就可以体现出通信双方收到分组后完成怎么样的操作。这是 HTTP 协议的语义所定义的。

③  同步:定义收发双方的时序关系 

        请注意,这里的同步并不是指时钟频率同步。例如,这是 TCP 采用 “三报文握手” 建立连接的过程。要想进行运输层 TCP 实体间的逻辑通信,首先,必须建立连接。从连接建立的过程就可以看出 TCP 客户端和 TCP 服务器之间的时序关系,以及各自的状态转换。只有双方建立连接后,才能进行 TCP 数据传输。这个例子可以充分体现计算机网络协议三要素中的同步。 

 

(4)服务

        在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。协议是 “水平的”,服务是 “垂直的” 。

        实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是 “透明” 的。 

(5)服务访问点

        在同一系统中 相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。

①  数据链路层的服务访问点为帧的 “类型” 字段

②  网络层的服务访问点为 IP 数据报首部中的 “协议字段” 。

③  运输层的服务访问点为 “端口号” 。

(6)服务原语 

        上层使用下层所提供的服务必须通过与下层 交换一些命令,这些命令称为服务原语。

(7)数据单元

①  协议数据单元 PDU

        在计算机网络体系结构中,对通信双方所交互的数据包有专门的术语。我们把 对等层次之间传送的数据包 称为该层的协议数据单元。

②  服务数据单元 SDU

        同一系统内层与层之间交换的数据包 称为服务数据单元。

③  多个 SDU 可以合成为一个 PDU;一个 SDU 也可划分为几个 PDU

 


4、总结 

        本期的分享总结就到这里了,如果有疑问的小伙伴儿,我们在评论区交流嗷~~~,笔者必回,我们下期再见啦 !!!

博客中难免存在疏漏和错误之处,皆归因于作者水平有限,诚请各位读者不吝指正 !

<计算机网络> 专栏系列持续更新,欢迎订阅关注 !

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

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

相关文章

融合正余弦和柯西变异的麻雀搜索算法优化CNN-BiLSTM,实现多输入单输出预测,MATLAB代码...

上期作者推出的融合正余弦和柯西变异的麻雀优化算法&#xff0c;效果着实不错&#xff0c;今天就用它来优化一下CNN-BiLSTM。CNN-BiLSTM的流程&#xff1a;将训练集数据输入CNN模型中&#xff0c;通过CNN的卷积层和池化 层的构建&#xff0c;用来特征提取&#xff0c;再经过BiL…

(20)操纵杆或游戏手柄

文章目录 前言 20.1 你将需要什么 20.2 校准 20.3 用任务规划器进行设置 20.4 飞行前测试控制装置 20.5 测试失控保护 20.6 减少控制的滞后性 前言 本文解释了如何用操纵杆或游戏手柄控制你的飞行器&#xff0c;使用任务计划器向飞行器发送"RC Override"消息…

【C++基础(六)】类和对象(中) --构造,析构函数

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C初阶之路⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; 类和对象-中 1. 前言2. 构造函数3. 构造函数的特性4…

Opencv 细节补充

1.分辨率的解释 •像素&#xff1a;像素是分辨率的单位。像素是构成位图图像最基本的单元&#xff0c;每个像素都有自己的颜色。 •分辨率&#xff08;解析度&#xff09;&#xff1a; a) 图像分辨率就是单位英寸内的像素点数。单位为PPI(Pixels Per Inch) b) PPI表示的是每英…

从零开始 Spring Cloud 7:Gateway

从零开始 Spring Cloud 7&#xff1a;Gateway 图源&#xff1a;laiketui.com Spring Cloud Gateway 是 Spring Cloud 的一个全新项目&#xff0c;该项目是基于 Spring 5.0&#xff0c;Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关&#xff0c;它旨…

系统集成|第三章(笔记)

目录 第三章 系统集成专业技术3.1 信息系统建设3.1.1 信息系统3.1.2 信息系统集成 3.2 信息系统设计3.3 软件工程3.4 面向对象系统分析与设计3.5 软件架构3.5.1 软件的架构模式3.5.2 软件中间件 3.6 典型应用集成技术3.6.1 数据库与数据仓库技术3.6.2 Web Services 技术3.6.3 J…

区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型

区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型 目录 区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRF随机森林分位数回归时间序列区间预测模型&#xff1…

SpringCloud学习路线(10)——分布式搜索ElasticSeach基础

一、初识ES &#xff08;一&#xff09;概念&#xff1a; ES是一款开源搜索引擎&#xff0c;结合数据可视化【Kibana】、数据抓取【Logstash、Beats】共同集成为ELK&#xff08;Elastic Stack&#xff09;&#xff0c;ELK被广泛应用于日志数据分析和实时监控等领域&#xff0…

java——继承

&#x1f384;&#x1f384;&#x1f384;继承 &#x1f346;&#x1f346;继承的概念&#xff1a; 继承(inheritance)机制&#xff1a;是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类&#xff08;父类&#xff09;特性的基础上进行扩展…

挑战css基础面试题

挑战css基础面试题一&#xff0c;看看你能做出来吗 文章目录 前言一、盒模型二、如何实现一个最大的正方形三、文本一行水平居中&#xff0c;多行居左四、画一个三角形五、BFC理解六、两栏布局&#xff0c;左边固定&#xff0c;右边自适应&#xff0c;左右不重叠最后 前言 本片…

springboot快速整合腾讯云COS对象存储

1、导入相关依赖 <!--腾讯云COS--><dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java</artifactId><version>3.0.1</version></dependency><dependency><groupId>com…

【C语言】指针---初阶

&#x1f341; 博客主页:江池俊的博客 &#x1f341;收录专栏&#xff1a;C语言——探索高效编程的基石 &#x1f341; 如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏&#x1f31f; 三连支持一下博主&#x1f49e; 目录 一、指针是什么&#xff1f; 1.1指…

FTP服务器无法连接解决办法

FTP服务器无法连接解决办法 目录 一&#xff0e; 报错状态二&#xff0e; 解决办法三&#xff0e; 总结 一&#xff0e; 报错状态 二&#xff0e; 解决办法 &#xff08;确保客户机与服务器可以ping通的情况下&#xff0c;再进行下面操作&#xff09; 检查ftp地址是否输错。默…

Kendo UI,一个加速Web应用界面开发的JavaScript组件库!

Kendo UI是什么&#xff1f; 首先&#xff0c;Kendo UI是一个由四个JavaScript UI库组成的包&#xff0c;这些库是专为jQuery、Angular、React和Vue原生构建的&#xff0c;每一个都是用一致的API和主题构建的。所以无论开发者怎么选择&#xff0c;所开发的Web应用始终保持了现…

QueryWrapper,LambdaQueryWrapper用法简介(MyBatis Plus进阶)

目录 一、项目结构及数据库内容如图二、数据库内容三、代码示例 关于如何使用MyBatis Plus自动生成service&#xff0c;mapper&#xff0c;domain参考我的这篇博客&#x1f449;使用MyBatis Plus自动生成service&#xff0c;mapper&#xff0c;domain 一、项目结构及数据库内容…

使用Docker构建LNMP环境并运行Wordpress网站平台

使用Docker构建LNMP环境并运行Wordpress网站平台 1.基于Dockerfile构建LNMP镜像1.1 基于Dockerfile构建nginx镜像1.1.1 修改/usr/local/nginx/conf/nginx.conf文件1.1.2 再次修改nginx服务的Dockerfile文件&#xff08;多级构建&#xff09;1.1.3 创建安装环境依赖包的镜像 1.2…

系统设计《System Design Interview》读书笔记

设计性能认知 延时 操作名称时间1级缓存引用0.5ns2级缓存引用7ns互斥锁/解锁100ns主存引用100ns用zippy压缩1k字节10,000ns10μs通过1GB网络传输2KB字节20,000ns 20μs内存按照顺序读取1MB250,000ns250μs同一个数据中心内的往返500,000ns 500μs磁盘寻找10,000.000ns10ms从…

Qt - .ui 文件的使用

文章目录 目录工具栏Dock Widget代码控制 ui添加资源添加文件 目录 子目录只能输入英文&#xff0c;想要显示中文&#xff0c;可以修改右下方表中的 text 属性&#xff1a; 工具栏 让工具栏共用 菜单栏的 new 和 open&#xff0c;只需将下方列表的控件&#xff0c;拖拽到工具栏…

解决@Scope(“prototype“)不生效的问题

目录 Scope(“prototype“)不生效Scope(“prototype“)正确用法——解决Bean多例问题 1.问题&#xff0c;Spring管理的某个Bean需要使用多例2.问题升级3. Spring给出的解决问题的办法&#xff08;解决Bean链中某个Bean需要多例的问题&#xff09; Scope(“prototype“)不生效 …