6_协议与层次划分

85148d337b15fdf86f0face3b419eb4a.png

在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题。这里所说的是狭义的(即同频或同频同相) 而是广义的,即在一定的条件下应当发生什么事件 (例如,应当发送一个应答信息),因而同步含有时序的意思。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(network protocol)。网络协议也可简称为协议。更进一步讲,网络协议主要由以下三个要素组成:

(1) 语法,即数据与控制信息的结构或格式;

(2) 语义,即需要发出何种控制信息,完成何种动作以及做出何种响应

(3) 同步,即事件实现顺序的详细说明。

由此可见,网络协议是计算机网络不可缺少的组成部分。实际上,只要我们想让连接在网络上的另一台计算机做点什么事情(例如,从网络上的某台主机下载文件),我们都需要有协议。但是当我们经常在自己的个人电脑上进行文件存盘操作时,就不需要任何网络协议,除非这个用来存储文件的磁盘是网络上的某个文件服务器的磁盘。

协议通常有两种不同的形式。一种是使用便于人来阅读和理解的文字描述。另一种是使用让计算机能够理解的程序代码。这两种不同形式的协议都必须能够对网络上的信息交换过程做出精确的解释。

ARPANET 的研制经验表明,对于非常复杂的计算机网络协议,其结构应该是层次的。我们可以举一个简单的例子来说明划分层次的概念。

分层可以带来很多好处。如:

(1)各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道

道该层通过层间的接口(即界面)所提供的服务。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。这样,整个问题的复杂程度就下降了。

(2)灵活性好。当任何一层发生变化时 (例如由于技术的变化 ),只要层间接口关系保 持不变,则在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改。 当某层提供的服务不再需要时,甚至可以将这层取消。    

(3)结构上可分割开。各层都可以采用最合适的技术来实现。

(4)易于实现和维护。这种结构使得实现和调试一个庞大而又复杂的系统变得易于处 理,因为整个的系统已被分解为若干个相对独立的子系统。

(5)能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。

分层时应注意使每一层的功能非常明确。若层数太少,就会使每一层的协议太复杂。但层数太多又会在描述和综合各层功能的系统工程任务时遇到较多的困难。通常各层所要完成的功能主要有以下一些 (可以只包括一种,也可以包括多种):

①差错控制 使相应层次对等方的通信更加可靠。

②流量控制 发送端的发送速率必须使接收端来得及接收,不要太快。

③分段和重装 发送端将要发送的数据块划分为更小的单位,在接收端将其还原。

④复用和分用 发送端几个高层会话复用一条低层的连接,在接收端再进行分用。

⑤连接建立和释放交换数据前先建立一条逻辑连接,数据传送结束后释放连接。

分层当然也有一些缺点,例如,有些功能会在不同的层次中重复出现,因而产生了额外开销.

计算机网络的各层及其协议的集合就是网络的体系结构(architecture)。换种说法,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义[GREE82]。需要强调的是:这些功能究竟是用何种硬件或软件完成的,则是一个遵循这种体系结构的实现 (implementation)的问题。体系结构的英文名词 architecture 的原意是建筑学或建筑的设计和风格。它和一个具体的建筑物的概念很不相同。例如,我们可以走进一个明代的建筑物中,但却不能走进一个明代的建筑风格之中。同理,我们也不能把一个具体的计算机网络说成是一个抽象的网络体系结构。总之,体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。

欢迎关注:

8d757b81cb84d84fd8bf2141d1831ff3.png

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

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

相关文章

微服务--Gateway网关--全局Token过滤器【重要】

全局过滤器 GlobalFilter, 注入到 IOC里面即可 概念: 全局过滤器: 所有的请求 都会在执行链里面执行这个过滤器 如添加日志、鉴权等 创建一个全局过滤器的基本步骤: 步骤1: 创建过滤器类 首先,创建一个实现了Globa…

Kafka进阶_1.生产消息

文章目录 一、Controller选举二、生产消息2.1、创建待发送数据2.2、创建生产者对象,发送数据2.3、发送回调2.3.1、异步发送2.3.2、同步发送 2.4、拦截器2.5、序列化器2.6、分区器2.7、消息可靠性2.7.1、acks 02.7.2、acks 1(默认)2.7.3、acks -1或all 2.8、部分重…

STL C++ CookBook 7:迭代器简论

目录 兼容的迭代器 迭代器概念 使用迭代器来填充STL的容器 将一些序列算法包装成可迭代的 构建 zip 迭代器适配器 兼容的迭代器 迭代器是 STL 中的一个基本概念。迭代器使用 C 指针的语义实现,使用相同的递增、递减和解引用运算符。 大多数 C/C 程序员都熟悉指…

【Python图解】 常量与变量及基本运算

【图解python】 常量与变量及基本运算 Python 常量与变量教程 可能你现在会产生疑惑,代码中的 print 代表什么意义?括号又是什么作用?为什么 hello world 外面有个双引号?没关系,下面我们就来了解 Python 语法的奥秘…

「漏洞复现」全新优客API接口管理系统 index/doc SQL注入漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…

java ssm 健康医馆管理系统 中医馆管理 健康平台 药店 源码jsp

一、项目简介 本项目是一套基于SSM的健康医馆管理系统,主要针对计算机相关专业的和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具等。 项目都经过严格调试,确保可以运行! 二、技术实现 ​后端技术&#x…

Python - jieba库的使用

文章目录 jieba库概述jieba分词的三种模式jieba库的安装 jieba分词的原理jieba库常用函数实例 : 文本词频统计 jieba库概述 jieba是优秀的中文分词第三方库 中文文本需要通过分词获得单个的词语jieba是优秀的中文分词第三方库,需要额外安装jieba库提供三种分词模式…

一个简单的图像分类项目(九)并行训练的学习:多GPU的DP(DataParallel数据并行)

将电脑装成Ubuntu、Windows双系统,并在Ubuntu上继续学习。 在现代深度学习中,多主机多GPU训练已经变得非常常见,尤其是对于大规模模型和数据集。最简单和早期的并行计算比如NVIDIA的SLI,从NVIDIA 450系列驱动开始&#xf…

本草智选:中药实验管理的智能推荐

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了中药实验管理系统的开发全过程。通过分析中药实验管理系统管理的不足,创建了一个计算机管理中药实验管理系统的方案。文章介绍了中药实验管理系统的系…

凸优化理论和多模态基础模型研究

文章目录 摘要Abstract1. 拉格朗日对偶问题1.1 弱对偶问题1.2 强对偶问题(P*D*)1.3 KKT条件 2. 论文阅读3. 总结 摘要 本周从拉格朗日对偶理论出发,系统学习了优化问题中凸函数、强对偶条件以及 KKT 条件的应用,并将其与机器学习…

nginx+vconsole调试网页在vivo浏览器无法显示图片问题

一、问题描述 昨天测试小伙伴提了一个特殊的bug,在安卓vivo手机浏览器上访问网页,网页的图片按钮和录播图一闪而过后便消失不见: 二、问题排查 项目采用Nuxt框架,排查的方向大致如下: 1.其它手机浏览器是否有复现&am…

草本追踪:中药实验管理的数字化转型

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

【Linux】虚拟地址空间,页表,物理内存

目录 进程地址空间,页表,物理内存 什么叫作地址空间? 如何理解地址空间的区域划分? 地址空间结构体 为什么要有地址空间? 页表 cr3寄存器 权限标记位 位置标记位 其他 每个存储单元是一个字节,一…

集群聊天服务器(3)muduo网络库

目录 基于muduo的客户端服务器编程 muduo只能装在linux中,依赖boost库 客户端并不需要高并发 基于muduo的客户端服务器编程 支持epoll线程池,muduo封装了线程池 而且还有完善的日志系统 使用muduo库代码非常固定,基本就只有chatserver的类名…

【Python刷题】最少拐弯路线问题

题目描述 洛谷P1649 一、题目理解 首先,我们来看一下这道题目的要求。题目给定了一个 NN(1≤N≤100) 的方格,方格中的每个格子有不同的状态,用 . 表示可以行走的格子,x 表示不能行走的格子,…

在windows系统里面部署 Redis

在windows中下载安装REdis 1.下载mis 地址添加链接描述 然后直接下载安装然后点击你的库 2.然后选择好之后选择好路径就行了。 然后我们点击这个cli.exe文件然后双击打开输入 在命令框里输入: 如果显示的和图片显示的一样,则证明你已经在本地部署好了…

NTP博客

使用nmtui命令修改IP: 注意: 修改之后,要激活: nmcli connection up ens160 1、软件安装 #设置当前时区 [rootlocalhost ~]# timedatectl set-timezone Asia/Shanghai 1.1.配置国内阿里yum源 [rootredhat ~]# cd /etc/yum.r…

《Large-scale Multi-modal Pre-trained Models: A Comprehensive Survey》中文校对版

文章汉化系列目录 文章目录 文章汉化系列目录摘要引言2 背景2.1 传统深度学习2.2 自然语言处理中的预训练2.3 计算机视觉中的预训练2.4 音频与语音中的预训练 3 多模态预训练3.1 任务定义与关键挑战3.2 MM-PTM的优势3.3 预训练数据3.4 预训练目标3.5 预训练网络架构3.5.1 自注意…

从源码角度分析JDK动态代理

文章目录 前言一、JDK动态代理二、动态代理的生成三、invoke的运行时调用总结 前言 本篇从源码的角度,对JDK动态代理的实现,工作原理做简要分析。 一、JDK动态代理 JDK动态代理是运行时动态代理的一种实现,相比较于CGLIB ,目标对象…

操作系统——计算机系统概述——1.5操作系统引导(开机过程)

操作系统引导: A.CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机) B.将磁盘的第一块——主引导记录读入内存,执行磁盘引导程序,扫描分区表 C.从活动分…