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

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

一.常见的三种结构

(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.mzph.cn/pingmian/10798.shtml

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

相关文章

pycharm 将项目连同库一起打包及虚拟环境的使用

目录 一、创建虚拟环境 1、用 anaconda 创建 2、Pycharm 直接创建 二、虚拟环境安装第三方库 1、创建项目后,启动终端(Alt F12),或者点击下方标记处。 2、使用 pip 或者 conda 来进行三方库的安装或卸载 3、将项目中的库放入文档,便于…

李宏毅-注意力机制详解

原视频链接:attention 一. 基本问题分析 1. 模型的input 无论是预测视频观看人数还是图像处理,输入都可以看作是一个向量,输出是一个数值或类别。然而,若输入是一系列向量,长度可能会不同,例如把句子里的…

Spring STOMP-消息处理流程

一旦STOMP的接口被公布,Spring应用程序就成为连接客户端的STOMP代理。本节描述服务端消息处理的流程。 spring-messaging模块包含消息类应用的基础功能,这些功能起源于Spring Integration项目。并且,后来被提取整合到Spring框架,…

Spring Boot 调用外部接口的几种方式

Spring Boot 调用外部接口的几种方式 在微服务架构中,服务间的调用是不可或缺的环节。Spring Boot 为开发者提供了多种方式来实现这一任务,这个文章将为你详细介绍这些方式。 一、使用RestTemplate RestTemplate是 Spring Boot 早期版本中常用的 REST 客…

十个最适合论文写作的GPTs及其应用

文章目录 一、GPTs让一切皆有可能二、最适合论文写作的GPTs及其应用1、[Paper Search Engine](https://chat.openai.com/g/g-9v5gHG9Bo)2、[Academic Paper Specialist(学术论文撰写专家)](https://chat.openai.com/g/g-jryw3pfsH)3、[Paper Connect 论文…

微信公众号接入chatGPT自动回复(2)

微信公众平台 配置自动回复的服务器 application.properties中的配置 验证服务器接口配置 其实就两个接口(相同的url地址,只不过请求方式不一样) 1.验证接口(get请求) 2.自动回复接口(post请求) 完整代码 这个地址就是上面URL配置的地址 如果使用Nginx的话自动配置 将该代…

11个免费的 android数据恢复应用程序功能分析

在手机上丢失数据是一个很大的错误。但是,在这种情况下,除了惊慌失措之外,最好开始使用android数据恢复应用程序搜索以查找将其取回的方法。您可以检查手机的备份存储以在Android上进行数据恢复,但是如果数据仍然无处可寻&#xf…

@PostConstruct

PostConstruct initializeBean方法–> PostProcessor.postProcessMergedBeanDefinition --> InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction 被PostConstruct注解的方法会在Bean初始化的时候被调用,如下图: 继承关系如下…

jenkins连接ubuntu普通用户节点

1.创建credentials 2.创建node 3.在jenkins服务器还需要进行的操作(jenkins服务器中) mkdir /var/lib/jenkins/.ssh ssh-keyscan -H 192.168.110.204 >> /var/lib/jenkins/.ssh/known_hosts chown -R jenkins:jenkins /var/lib/jenkins/.ssh/ 4.…

相交链表(数据结构)

160. 相交链表 - 力扣(LeetCode)https://leetcode.cn/problems/intersection-of-two-linked-lists/description/ 题目 解决思路 1,找到相交的点 相交链表的关键也就是找到相交的点,所以我们需要首先判断有没有相交的节点&#…

最新的云渲染100活动有哪些?渲染100邀请码1a12

随着科技的进步,云渲染已经成为设计行业的必备工具,各个云渲染平台为了吸引用户也推出各种各样的活动,今天我们以广受好评的渲染100为例,来说下它们的活动体系。 1、新用户活动 渲染100对新用户很友好,提供了充足的测…

K-RTD01和利时FW248中控卡件

K-RTD01和利时FW248中控卡件。 系统概述 的全称为保护工程师站及录波分析后台”是利用现代计算机和网络技术,K-RTD01和利时FW248中控卡件。实时收集变电站运行和故障信息,并通过对变电站的故障信息进行综合分析,K-RTD01和利时FW248中控卡件。…

Ps 滤镜:便条纸

Ps菜单:滤镜/滤镜库/素描/便条纸 Filter Gallery/Sketch/Note Paper 便条纸 Note Paper滤镜用于模拟手工纸张的质感和视觉效果。此滤镜将图像简化并添加浮雕和颗粒效果,使图像看起来像是在手工制作的纸上绘制或打印。 “便条纸”滤镜通过结合使用浮雕效果…

Copilot for Microsoft 365 扩充新增 16 种语言

最近,微软公司发布公告,进一步扩大 Copilot for Microsoft 365 语言支持,新增 16 种,支持的语言总数达到 25 种。 新支持的语言如下: 阿拉伯语 捷克语 丹麦语 荷兰语 芬兰语 希伯来语 匈牙利语 韩语 挪威语&am…

云动态摘要 2024-05-12

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [免费试用]即刻畅享自研SaaS产品 腾讯云 2024-04-25 涵盖办公协同、营销拓客、上云安全保障、数据分析处理等多场景 云服务器ECS试用产品续用 阿里云 2024-04-14 云服务器ECS试用产品续用…

【解决】Android Studio Toast点击不显示

问题描述 开发Android程序过程中,突然发现在Android studio的模拟机上,运行测试程序,Toast弹框不能使用了,但是解决方法非常粗暴和直接:重新加载一个新的虚拟机或清空当前虚拟机的数据,然后再重启。 明显&a…

mysql临时表

临时表 MySQL 什么时候会使用内部临时表? 1、如果语句执行过程可以一边读数据,一边直接得到结果,是不需要额外内存的,否则就需要额外的内存,来保存中间结果; 2、join_buffer 是无序数组,sort_b…

重生奇迹mu战士攻略有哪些

1、生命之光:PK前起手式,增加血上限。 2、雷霆裂闪:眩晕住对手,战士PK战士第一技能,雷霆裂闪是否使用好关系到胜负。 3、霹雳回旋斩:雷霆裂闪后可以选择用霹雳回旋斩跑出一定范围(因为对手下一招没出意外…

指针的奥秘(四):回调函数+qsort使用+qsort模拟实现冒泡排序

指针 一.回调函数是什么?二.qsort函数使用1.qsort介绍2.qsort排序整型数据3.qsort排序结构体数据1.通过结构体中的整形成员排序2.通过结构体中的字符串成员排序 三.qsort模拟实现冒泡排序 一.回调函数是什么? 回调函数就是一个通过函数指针调用的函数。 …