【计算机网络】计算机网络体系结构

news2024/11/25 22:29:16

🚩本文已收录至专栏:计算机网络学习之旅

一.常见的三种结构

(1) OSI参考模型

为了使不同体系结构的计算机网络都能互连起来,国际标准化组织于1977年成立了专门机构研究该问题,提出了著名的开放系统互连基本参考模型,简称 OSI

OSI参考模型是一个七层协议的体系结构,自下而上依次是物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。OSI体系结构是法律上的国际标准

在这里插入图片描述

(2) TCP/IP参考模型

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

TCP/IP参考模型是一个四层协议的体系结构,自下而上依次是网络接口层、网际(网络)层、运输层、应用层。TCP/IP参考模型是事实上的国际标准

在这里插入图片描述

OSI标准失败的原因:

  • 专家没有实际经验完成标准时没有商业驱动力。
  • 协议实现过分复杂运行效率很低。
  • 标准的制定周期太长产品无法及时进入市场。
  • 层次划分不太合理有些功能在多个层次中重复出现。

大多数用户每天都有使用因特网的需求,这就要求用户的主机必须使用TCP/IP体系结构,在用户主机的操作系统中,通常都带有完整的TCP/IP协议族,而用于网络互连的路由器就其所需完成的网络互连这一基本任务而言,只包含TCP/IP的网络接口层和网际层即可。

在这里插入图片描述

TCP/IP体系结构的网络接口层并没有规定什么具体的内容,这样做的目的是可以互连全世界各种不同的网络接口,而不限定仅使用一种或几种网络接口,因此TCP/IP体系结构在本质上只有上面的三层网际协议IP是网际层的核心协议,传输控制协议TCP和用户数据报协议UDP是运输层的两个重要协议,TCP/IP体系结构的应用层包含了大量的应用层协议

IP协议可以将不同的网络接口进行互连,并向其上的TCP协议和UDP协议提供网络互连服务TCP协议在享受IP协议提供的网络互连服务的基础上,可以向应用层的某些协议提供可靠传输的服务UDP协议在享受IP协议提供的网络互连服务的基础上,可以向应用层的某些协议提供不可靠传输的服务IP协议作为TCP/IP体系结构中的核心协议一方面负责互连不同的网络接口,也就是IP over everything,另一方面为各种网络应用提供服务,也就是everything over IP

在这里插入图片描述

为什么要叫做TCP/IP体系结构?

由于TCP/IP体系结构中包含有大量的协议,而IP协议和TCP协议是其中非常重要的两个协议,因此用TCP和IP这两个协议来表示整个协议大家族,常称为TCP/IP协议族。

(3) 原理参考模型

TCP/IP体系结构为了将不同的网络接口进行互连,其网络接口层并没有规定什么具体的内容,这对于学习计算机网络的完整体系就会缺少一部分内容,因此综合OSI参考模型和TCP/IP参考模型的优点,采用一种原理参考模型

原理参考模型是一个五层协议的体系结构,自下而上依次是物理层、数据链路层、网络层、运输层、应用层。原理参考模型更有利对计算机网络原理的学习

在这里插入图片描述

二.分层的必要性

计算机网络是个非常复杂的系统,实现其需要面临许多的问题,使用分层的设计思想,可将庞大复杂的问题转化为若干较小的局部问题,将这些问题划分到各个层次将更有利于我们处理。

在这里插入图片描述

(1) 物理层

假设有两台计算机通过一条链路连接起来,需要考虑以下问题

1)采用什么传输媒体(介质)

可以采用多种传输媒体作为传输链路,例如同轴电缆、双绞线电缆、光纤和光缆、自由空间等。

注意:严格来说传输媒体并不属于物理层范畴,它并不包含在计算机网络体系结构中。

在这里插入图片描述

2)用户主机、交换机以及路由器等网络设备需要采用什么物理接口来连接传输媒体。

3)采用什么信号表示比特0和1,进而在传输媒体上进行传送。

例如我们可以使用数字基带信号,高电平表示比特1,低电平表示比特0(仅作为示例参考)。

在这里插入图片描述

解决了物理层的问题,主机间就可以通过信号来传送比特0和1了

(2) 数据链路层

实用的计算机网络往往由多台计算机互连而成,需要考虑以下问题

假设有主机A、B、C通过总线互连成为一个总线型网络:

1)如何标识网络中各主机(主机编址,例如MAC地址)。

假设主机A要给主机B发送数据,表示数据的信号会通过总线传播到总线上的每一个主机。主机B如何知道这是主机A发送给它的数据,进而接受该数据,而主机C又如何知道该数据并不是发给它的,进而丢弃该数据。

在这里插入图片描述

2)从比特流中区分出地址和数据(数据封装格式)。

网卡上固化的MAC地址就是主机在网络中的地址,主机在发送数据时会给数据附加上源地址和目的地址,当其他主机收到后,根据目的地址和自身地址是否匹配来决定是否接受该数据,还可以通过源地址知道这是哪个主机发来的数据。

3)协调各主机争用总线(媒体接入控制)

对于总线型的网络,多个主机争用总线时会产生碰撞,例如某个时刻总线是空闲的,即没有主机使用总线来发送数据,片刻之后,主机A和主机C同时使用总线来发送数据,这必然会造成信号碰撞。

在这里插入图片描述

4)以太网交换机的实现(自学习和转发帧)

上述这种总线型网络早已淘汰,现在常用的是使用以太网交换机将多台主机互连而成的交换式以太网,在交换式以太网中,多对主机之间可以同时进行通信而不会产生碰撞。

在这里插入图片描述

5)如何检测数据是否误码(差错检测)

对于交换式以太网这种有线网络很少出现数据误码的情况,而对于无线网络比较容易出现数据误码。

在这里插入图片描述

6)出现传输差错如何处理(可靠传输和不可靠传输)

当检测到数据包有误码时,是直接丢弃,什么也不做,还是想办法让发送方重传有误码的数据包。

7)接收方控制发送方注入到网络的数据量(流量控制)

主机A给主机B连续发送数据,主机B正在处理很多其他任务,来不及取走输入缓存中的数据,于是,主机B给主机A发送通知,通知主机A停止发送。

在这里插入图片描述

解决了物理层、数据链路层的问题,就可以实现数据包在一个网络上传输了

(3) 网络层

我们几乎每天都会使用的因特网是由非常多的网络和路由器互连起来的,假设我们有如下一个小型互联网(可以看作是因特网中很小的一部分),需要考虑以下问题

在这里插入图片描述

1)标识网络和网络中的各主机(网络和主机共同编址,例如IP地址)

由于互联网是由多个网络通过多个路由器互连起来的,因此我们还需要对互联网中的各网络进行标识。例如下述通过网络号区分所处的不同网络,通过主机号区分同一网络下的不同主机

在这里插入图片描述

2)路由器转发分组(路由选择协议、路由表和转发表)

在互联网中,源主机与目的主机之间的传输路径往往不止一条,数据包从源主机到目的主机可走不同路径,例如上述主机H1到H3的路径有 H1->R1->R2->H3 和 H1->R1->R3->R2->H3。

解决了物理层、数据链路层、网络层的问题,就可以实现数据包在多个网络之间的传送了

(4) 运输层

同样是在上述小型互联网中,需要考虑以下问题

1)进程之间基于网络的通信(进程的标识,例如端口号)

假设主机H3中运行着两个与网络通信相关的应用进程,一个是浏览器进程,一个是QQ进程,H2中运行着与网络通信相关的web服务器进程,例如NFGINX,当主机H3收到web服务器中NGINX进程发来的数据包后,应将数据包交付给浏览器进程还是QQ进程?如果数据包中含有与进程相关的标志信息,主机H3就可以根据标志信息将数据包交付给相应的应用进程,

在这里插入图片描述

2)出现传输差错如何处理(可靠传输和不可靠传输)

数据包由于误码被路由器或者用户主机丢弃又或是路由器繁忙而主动丢弃正常数据包这些都属于传输差错。

解决了物理层、数据链路层、网络层、运输层的问题,就可以实现进程之间基于网络通信

(5) 应用层

实现了进程之间基于网络通信后,需要考虑以下问题

1)通过应用进程间的交互来完成特定的网络应用

在此基础上可以制定各种应用协议,并按协议标准编写相应的应用程序。例如支持万维网的HTTP协议、支持电子邮件的SMTP协议、支持文件传输的FTP协议等。

2)进行会话管理和数据表示

解决了物理层、数据链路层、网络层、运输层、应用层的问题,就可以实现通过应用进程的交互来实现特定网络应用的问题

三.分层思想举例

如图所示,主机属于网络N1,Web服务器属于网络N2,N1和N2通过路由器互连,用户在主机中使用浏览器访问Web服务器。

在这里插入图片描述

(简化示意流程)用户在主机中使用浏览器访问Web服务器,当用户在浏览器地址栏中输入Web浏览器的域名后,主机会向Web服务器发送一个请求报文,Web服务器收到请求报文后执行相应的操作,然后给主机发送响应报文,主机收到响应报文后,由浏览器负责解析和渲染显示网页。

在这里插入图片描述

主机和Web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与Web服务器中的Web服务器应用进程之间基于网络的通信。

在这里插入图片描述

如下为从五层原理体系结构的角度具体过程:

在这里插入图片描述

1)主机中的应用层根据HTTP协议的规定,构建一个HTTP请求报文,用来请求Web服务器执行相应操作。应用层将构建好的HTTP请求报文向下交付给运输层。

2)运输层给HTTP请求报文添加一个TCP首部,将其封装成为TCP报文段。TCP首部的主要作用是区分应用进程和实现可靠传输。运输层将封装好的TCP报文段向下交付给网络层。

3)网络层给TCP报文段添加一个IP首部,将其封装成为IP数据包。IP首部的主要作用是IP寻址和路由。网络层将封装好的IP数据报向下交付给数据链路层。

4)数据链路层给IP数据报添加一个首部和尾部,将其封装成为帧。帧首部和尾部的作用是MAC寻址和帧校验。数据链路层将封装好的帧向下交付给物理层。

5)物理层并不认识帧的结构,仅仅将其看作比特流,以便将比特流转换成相应的电信号进行发送。对于以太网,物理层还会在比特流前添加前导码,目的是使接收方的时钟同步并做好接收准备。

6)主机将电信号发送出去,路由器收到后其物理层将电信号转换成比特流,物理层将前导码去掉后,将帧向上交付给数据链路层。

7)数据链路层将帧首部和尾部去掉后,将IP数据报向上交付给网络层。

8)网络层从IP数据报的首部中提取出目的IP地址,根据目的IP地址查找自己的转发表,以便决定从哪个接口转发该IP数据报,与此同时,还要对首部中的某些字段值,例如生存时间TTL字段的值进行相应的修改,然后将该IP数据报向下交付给数据链路层。

9)数据链路层给IP数据报添加一个首部和尾部,将其封装成为帧。数据链路层将封装好的帧向下交付给物理层。

10)物理层将帧看作比特流,给其添加前导码后转变成相应的电信号发送出去。

11)Web服务器收到数据包后,按网络体系结构自下而上的顺序,对其进行逐层解封,解封出HTTP请求报文。

12)Web服务器的应用层收到HTTP请求报文后,执行相应的操作,然后给主机发送包含有浏览器请求内容的HTTP响应报文,与浏览器发送HTTP请求报文的过程类似,HTTP响应报文需要在Web服务器层次封装后才能发送出去,数据包经过路由器的转发到达主机,主机对收到的数据包,按网络体系结构自下而上的顺序,对其进行逐层解封,解封出HTTP响应报文。

在这里插入图片描述

四.专用术语

计算机网络体系结构中有很多的专用术语,以下将其中最具有代表性的三个作为分类名称,它们分别是实体、协议、服务。这些专用术语来源于OSI的七层体系结构,但也适用于TCP/IP的四层体系结构和五层的原理体系结构。

在这里插入图片描述

(1) 实体

  • 实体是指任何可发送或接收信息的硬件或软件进程

  • 对等实体是指通信双方相同层次中的实体

在这里插入图片描述

(2) 协议

协议是控制两个对等实体在“水平方向” 进行“逻辑通信”的规则的集合

在这里插入图片描述

为什么叫逻辑通信呢?

这种通信其实并不存在,它只是我们假设出来的一种通信,这样做的目的是方便我们单独研究网络体系结构某一层时不用考虑其他层。

协议有三大要素:语法、语义、同步

1)语法用来定义通信双方所交换信息的格式。例如下述IPv4数据报的首部格式,其中的小格子称为字段或域,数字表示字段的长度,单位为比特,语法就是定义了这些小格子的长度和先后顺序。

在这里插入图片描述

2)语义用来定义通信双方所要完成的操作。例如主机给Web服务器发送一个HTTP的GET请求报文,Web服务器收到请求报文后执行相应的操作,然后给主机发送HTTP响应报文,主机收到响应报文后,对其进行解析和渲染显示。

在这里插入图片描述

3)同步用来定义通信双方的时序关系。例如上述必须由主机首先发送HTTP的GET请求报文给Web服务器,Web服务器收到主机发来的GET请求报文后,才可能给主机发送响应的HTTP响应报文。

(3) 服务

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

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

在同一系统中相邻两层的实体交换信息的逻辑接口称为服务访问点SAP,它被用于区分不同的服务类型。帧的“类型”字段、IP数据报的“协议”字段,TCP报文段或UDP用户数据报的“端口号”字段都是SAP。

在这里插入图片描述

从上图可以看出,协议是“水平”的,而服务是“垂直”的。实体看得见下层提供的服务,但并不知道实现该服务的具体协议。下层的协议对上层的实体是“透明”的

在计算机网络体系结构中,通信双方交互的数据包也有专门的术语:

  • 对等层次之间传送的数据包称为该层的协议数据单元(Protocol Data Unit,PDU)。

  • 同一系统内层与层之间交换的数据包称为服务数据单元(Service Data Unit,SDU)。

在这里插入图片描述

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

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

相关文章

Java后端实现对象与文件接收数据(minio测试)

实现思路: 1. 两个接口实现,一个接对象数据(file),一个接文件数据(json)。 2. json对象(base64String) 实体类信息 ,请求体统一接收 3. file, String name ,String password ,String name , Controller层接收 统一…

英特尔处理器排行

英特尔的处理器性能排行通常是根据其发布的不同代数和型号来划分的,以下是一些高性能的英特尔处理器: Intel 酷睿 i9 14900K:这是目前英特尔桌面平台中的旗舰处理器之一,提供了极高的性能,适合高端游戏和专业工作负载…

需要几步申请免费SSL证书,实现网站HTTPS访问

SSL证书是一种用于在网络中提供加密通信的数字证书。它有助于保护网站数据的完整性和隐私性,并通过在浏览器地址栏显示“https”和绿色锁图标来增强用户信任。许多证书颁发机构(CA)提供免费的SSL证书,以鼓励更广泛的网络安全使用。…

Mysql 多表查询,内外连接

内连接: 隐式内连接 使用sql语句直接进行多表查询 select 字段列表 from 表1 , 表2 where 条件 … ; 显式内连接 将‘,’改为 inner join 连接两个表的 on select 字段列表 from 表1 [ inner ] join 表2 on 连接条件 … ; select emp.id, emp.name, …

深度缓冲技术在AI去衣中的神奇作用

引言: 随着人工智能技术的飞速发展,其在图形处理和视觉领域的应用日益增多。AI去衣技术便是其中一个颇具争议但又技术上引人入胜的话题。今天,我们将深入探讨一项关键技术——深度缓冲(Depth Buffering),它…

目标检测标注工具Labelimg安装与使用

目录 一、安装Labelimg与打开 二、使用 1、基本功能介绍 2、快捷键 3、状态栏的工具 三、附录 1、YOLO模式创建标签的样式 2、create ML模式创建标签的样式 3、PascalVOC模式创建标签的样式 一、安装Labelimg与打开 源码网址:LabelImg labelimg是一款开源…

nbcio-boot项目内存溢出问题分析和解决

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…

C语言/数据解构——(随即链表的复制)

一.前言 嗨嗨嗨,大家好久不见。已经有好几天没更新了。今天我们就分享一道链表题吧——随即链表的复制https://leetcode.cn/problems/copy-list-with-random-pointer废话不多说,让我们直接开始今天的题目分享吧。 二.正文 1.1题目描述 他和单链表不同…

JDK APT(Annotation Processing Tool) 编译时注解处理器

博文目录 文章目录 javacAnnotation ProcessingHow Annotation Processing WorksCompilation Environment and Runtime Environment maven-compile-plugin对 Maven pom 中配置注解处理器的理解Lombok, MapStruct, MyBatis-Flex 说明测试只在 dependencies 中配置 Lombok 和 Ma…

vue element checkbox的实现

实现多选非常简单: 手动添加一个el-table-column,设type属性为selection即可;默认情况下若内容过多会折行显示,若需要单行显示可以使用show-overflow-tooltip属性,它接受一个Boolean,为true时多余的内容会在 hover 时以…

回溯之组合总和II

上一篇文章使用回溯解决了组合总和I,这次使用回溯解决组合总和II,下面先给出回溯的模板代码。 private void backtracking(参数1,参数2,...){if(递归终止条件){收集结果;return;}for(遍历集合){处理;backtracking(参数1,参数2,...); // 递归;回溯;} }组…

机器学习1——线性回归、误差推导

有监督——分类、回归 一、线性回归 对于一个线性方程,没办法拟合所有的数据点,但是要尽可能的覆盖尽可能多的点。 在下面的图中,x01。添加这一项的目的是:将数据矩阵补全(比如年龄是x1、工资是x2,那么x0手…

Liquid Volume 2

水、液体、流体特效着色器 下载:​​Unity资源商店链接资源下载链接 效果图:

图文并茂:解析Spring Boot Controller返回图片的三种方式

欢迎来到我的博客,代码的世界里,每一行都是一个故事 图文并茂:解析Spring Boot Controller返回图片的三种方式 前言使用Base64编码返回图片使用byte数组返回图片使用Resource对象返回图片图片格式转换与性能对比 前言 在互联网的世界里&…

18.04版本的ubuntu没有连接网络的图标(坑人版)

以下更新内核别看,因为后面安装驱动报一堆错误!!! 不升级内核成功方法跳转连接:https://blog.csdn.net/weixin_53765004/article/details/138771613?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%2213877…

GIT基础01 基础命令与分支

前言 我们知道git是开发中比较常见的版本控制工具 我们可以先提出一个场景: 老板让你去修改方案 第一次修改 打回 第二次修改 打回 第n次修改 老板让你使用第一次的版本 阁下如何应对??? 我对每个版本进行编号?? 是一种方案 但是这里也是有缺陷的 比如说在很多版本中找…

【AI+漫画】程序员小李解决疑难杂症BUG的日常

周末花了点时间制作的AI漫画。 感慨一句,程序人生, 相伴随行。 原文链接:【AI漫画】程序员小李解决疑难杂症BUG的日常

基于docker 的elasticsearch冷热分离及生命周期管理

文章目录 冷热集群架构的应用场景冷热集群架构的优势冷热集群架构实战搭建集群 索引生命周期管理认识索引生命周期索引生命周期管理的历史演变索引生命周期管理的基础知识Rollover:滚动索引 冷热集群架构的应用场景 某客户的线上业务场景如下:系统每天增…

网安面经之SSRF漏洞

一、ssrf漏洞 1、ssrf原理?危害?修复(防御)? 原理:SSRF就是服务器端请求伪造漏洞、它是一种由攻击者构造,由服务端发起请求的一个网络攻击,一般用来在外网探测或攻击内网服务&…

程序猿成长之路之数据挖掘篇——距离公式介绍

上一篇介绍了朴素贝叶斯,那么这次讲讲距离公式 什么是距离公式 用自己的话来说距离公式就是判断两个属性(参数)相似度的度量公式,比如以两点间距离为例,A地经纬度为(110.9802,120.9932),B地经纬度为(110.9980,120.828…