【计算机网络】P3 计算机网络协议、接口、服务的概念、区别以及计算机网络提供的三种服务方式

目录

  • 协议
    • 什么是协议
    • 协议是水平存活的
    • 协议的组成
  • 接口
  • 服务
    • 服务是什么
    • 服务原语
  • 协议与服务的区别
  • 计算机网络提供的服务的三种方式
    • 面向连接服务与无连接服务
    • 可靠服务与不可靠服务
    • 有应答服务与无应答服务

协议

什么是协议

协议,就是规则的集合。

在计算机网络中,我们需要在庞大的网络中有条不紊地交换数据,就必须遵循一些事先约定好的规则。这些规则明确了所交换的数据的格式以及相关的同步方案。我们称这些为了进行网络中的数据交换而建立的规则、标准或者约定称为网络协议,网络协议也简称为“协议”。

协议是水平存活的

需要注意的是,网络协议,控制的是两个(或多个)对等实体中进行通信的规则的集合,是水平的。不对等实体间是没有协议的。比如使用 TCP/IP 协议栈通信的两个结点,结点A 的传输层与 结点B 的传输层之间是存在协议,但是 结点A 的传输层和 结点B 的网络层是不存在协议的。

协议的组成

协议是由语法、语义和同步三个部分组成。

  • 语法:规定了传输数据的格式。
  • 语义:规定了所要完成的功能,即需要发出何种控制信息、完成何种动作以及做出何种应答。
  • 同步:规定了执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。

一个完整的协议通常应具有线路管理(建立、释放连接)、差错控制、数据转换等功能。


接口

接口是同一结点内相邻两层间交换信息的连接点,是一个系统内部的规定。每层只能为紧邻的层次之间定义接口,不能跨层定义接口。

在典型的接口上,同一结点相邻两层的实体通过服务访问点(SAP)进行交互。服务是通过 SAP 提供给上层使用的,第 n n n 层的 SAP 就是第 n + 1 n+1 n+1 层可以访问第 n n n 层服务的地方。

每个 SAP 都有一个能够标识它的地址,且 SAP 是一个抽象的概念,实际上是一个逻辑接口,是和通常所说的两个设备之间的硬件接口是很不一样的。


服务

服务是什么

服务是指下层为紧邻的上层提供的功能调用,是垂直的。

对等实体在协议的控制下,使得本层能够为上一层提供服务,但要实现本层协议,还需要使用下一层所提供的服务。

服务原语

上层使用下层所提供的服务时,必须与下层交换一些命令。这些命令在 OSI 参考模型中被称为 服务原语

服务原语被分为以下几类:

  • 请求: Request,由服务用户发往服务提供者,请求完成某项工作。
  • 指示: Indication,由服务提供者发往服务用户,指示用户做某件事情。
  • 响应: Response,由服务用户发往服务提供者,作为对指示的响应。
  • 证实: Confirmation,由服务提供者发往服务用户,作为对请求的证实。

这几类原语用于不同的功能,如建立连接、传输数据和断开连接等。根据是否包含全部原语,又将服务分为 有应答服务 以及 无应答服务

  • 有应答服务: 包括全部原语;
  • 无应答服务: 仅包含请求和指示两类原语。

在这里插入图片描述


协议与服务的区别

协议和服务在概念上是不同的。

  1. 只有本层协议实现了才能保证向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上层的服务用户是透明的。
  2. 协议是“水平”的,即协议是控制对等实体之间通信的规则,而服务是“垂直”的,即服务是由下层通过层间接口向上层提供的。
  3. 另外,并非在一层内完成的全部功能都称为服务,只有那些能够被高一层实体“看得见”的功能才能被称为服务。

协议、接口、服务三者之间的关系可以如下图所示:

在这里插入图片描述


计算机网络提供的服务的三种方式

面向连接服务与无连接服务

  • 面向服务 中,通信前双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信能正常进行,传输结束后,释放连接以及所占用的资源。因此这种服务可以分为连接建立、数据传输和连接释放三个阶段。TCP 就是一种面向连接服务的协议。
  • 无连接服务 中,通信前双方无需先建立连接,需要发送数据时可直接发送,把每个带有目的地址的包(报文分组)传送到线路上,由系统选定路线进行传输。这是一种不可靠的服务。IP/UDP 就是一种无连接的服务。

可靠服务与不可靠服务

  • 可靠服务 是指网络具有纠错、检错、应答机制,能够保证数据正确、可靠地传送到目的地。
  • 不可靠服务 是指网络只是尽量正确、可靠地传送,而不能保证数据正确、可靠地传送至目的地,是一种尽力而为的服务。

对于不可靠服务的网络,其网络的正确性、可靠性要由应用或者用户来保障。例如用户收到信息后要判断信息的正确性,如果不正确,那么用户要把出错信息报告给信息的发送者,以便发送者采取纠错措施。通过用户的这些措施,可以把不可靠的服务变成可靠的服务。

有应答服务与无应答服务

  • 有应答服务 是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不由用户实现。所发送的应答既可以是肯定应答,也可以是否定应答,通常在接收到的数据有错误时发送否定应答。例如,文件传输服务就是一种有应答的服务。
  • 无应答服务 是指接收方收到数据后不自动给出应答,若需要应答,则由高层实现。例如对于 WWW 服务,客户端收到服务器发送的页面文件 后不给出应答。

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

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

相关文章

# 梯影传媒T6投影仪刷机方法及一些刷机工具链接

梯影传媒T6投影仪刷机方法及一些刷机工具链接 文章目录 梯影传媒T6投影仪刷机方法及一些刷机工具链接1、安装驱动程序2、备份设备rom【boot、system】3、还原我要刷进设备的rom【system】4、打开开发者模式以便于安装apk5、root设备6、更多好链接: 梯影传媒T6使用的…

Redis系列-4 Redis集群介绍

Redis集群 Redis提供了持久化能力,保证了重启不会丢失数据;但Redis重启至完全恢复期间,缓存不可用。另外,对于高并发场景下,单点Redis服务器的性能不能满足吞吐量要求,需要进行横向扩展。此时,…

软件设计,建模及需求分析

文章目录 设计原则建模及需求分析UML画图工具原型图画图工具 重构 设计原则 SOLID原则 单一职责 开闭 (扩展开放,修改关闭) 里氏替换 (父类出现地方都可以用子类替换) 接口隔离 依赖倒置(高层模块不依…

cmake使用make和Ninja构建对比

前提 make和Ninja是两个常见的构建工具,在网上查阅了一些资料,说是Ninja比make构建速度要快很多。但是具体不知道快多少,所以趁着这次编译clang的机会,分享下它们在时间方面差多少。 步骤 下载llvm 参考llvm官网,这…

stream 流的一些底层实现原理

闭包 闭包的底层实现?外层的变量成为方法的一部分会生成一个lambda方法,将源本的2个参数转化3个参数此时变量就成为了方法的一部分值是如何传递的呢?会有一个专门的类用于存储此变量的值 流的切分后再并行 数组或者是集合,需要用到一个可切分的迷代器这…

【Linux高级IO】select、poll、epoll

【Linux高级IO】select、poll、epoll toc 作者:爱写代码的刚子 时间:2024.6.5 前言:本篇博客将会介绍面试重点考察的select、poll、epoll IO: input && Output read && write 应用层read&&write的时候&#xff0c…

【全开源】安心护送非急救救护车转运平台小程序(FastAdmin+ThinkPHP+Uniap

🚑安心护送非急救救护车转运平台小程序——您的健康守护者💖 安心护送转运平台小程序是一款基于FastAdminThinkPHPUniapp开发的非急救救护车租用转运平台小程序系统,可以根据运营者的业务提供类似短途接送救护服务,重症病人转运服…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于状态分解的综合能源系统完全分布式调度算法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

sqli-labs 靶场 less-7 第七关详解:OUTFILE注入与配置

SQLi-Labs是一个用于学习和练习SQL注入漏洞的开源应用程序。通过它,我们可以学习如何识别和利用不同类型的SQL注入漏洞,并了解如何修复和防范这些漏洞。Less 7 SQLI DUMB SERIES-7判断注入点 进入页面中,并输入数据查看结果。 发现空数据提…

【C++11数据结构与算法】C++ 栈

C 栈(stack) 文章目录 C 栈(stack)栈的基本介绍栈的算法运用单调栈实战题LC例题:[321. 拼接最大数](https://leetcode.cn/problems/create-maximum-number/)LC例题:[316. 去除重复字母](https://leetcode.cn/problems/remove-duplicate-letters/) 栈的基…

下决心!学点前端图形开发来提升自已

前端图形开发已成为Web开发绕不开的部分。提升自己前端图形开发能力,才能快点在岗位中突围。但一看到各大实战教程的学习路径就犯难了。 内容不少,感觉学到老也跳不出来啊。还是走回老路?搞个热门国外开源框架应付算了。 我简单通过对图形系…

程序猿大战Python——流程控制——if基础语句

三大基本语句 目标:了解三大基本语句有哪些? Python中有三大基本语句,它们支撑起了程序的业务逻辑处理。 三大基本语句有: (1)顺序语句 (2)分支语句 (3)循…

树莓派 5 AI 套件(Hailo)示例

系列文章目录 前言 欢迎访问 Hailo Raspberry Pi 5 示例库。本项目展示了在 Raspberry Pi 5 上演示 Hailo AI 处理器功能的各种示例。这些示例将帮助您开始在嵌入式设备上使用人工智能。更多信息,请访问 Hailo 官方网站和 Hailo 社区论坛。 一、如何设置 Raspberry…

Apple - Quartz 2D Programming Guide

本文翻译自:Quartz 2D Programming Guide(更新时间:2017-03-21 https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/Introduction/Introduction.html#//apple_ref/doc/uid/TP300010…

Renesas MCU之SCI_SPI接口驱动LCD

目录 概述 1 软硬件介绍 1.1 软件版本信息 1.2 ST7796-LCD 1.3 MCU IO与LCD PIN对应关系 2 FSP配置项目 2.1 配置项目参数 2.2 生成项目框架 3 代码实现 3.1 SPI的库函数 3.1.1 R_SCI_SPI_Open() 3.1.2 R_SCI_SPI_Read() 3.1.3 R_SCI_SPI_Write() 3.2 应用函数…

【全开源】Workerman在线客服系统(ThinkPHP+FastAdmin+Workerman)

Workerman在线客服系统:高效沟通的新选择 基于ThinkPHPFastAdminWorkerman开发的一款实时在线客服系统,支持多客服(不限座席)、知识库、离线留言板、离线消息、历史会话、微信小程序接入、Uni-app接入(高级授权)、用户轨迹等功能。​ 📢 一…

如何远程连接Linux服务器?

远程连接Linux服务器是通过网络连接到位于远程位置的Linux服务器,以进行服务器管理和操作。远程连接使得系统管理员可以方便地远程访问服务器,进行配置、维护和故障排除等操作,而不必亲自在服务器前工作。以下是一些常用的远程连接方法&#…

python - Pandas缺失值处理

文中所用数据集已上传,找不到的可以私聊我 学习目标 知道空值和缺失值的区别以及缺失值的影响 知道如何查看数据集缺失值情况的方法 知道缺失值处理的办法 1 NaN简介 好多数据集都含缺失数据。缺失数据有多种表现形式 数据库中,缺失数据表示为NULL 在某些编程语…

【C语言】宏详解(上卷)

前言 紧接着预处理详解(上卷),接下来我们来讲宏(隶属于预处理详解系列)。 #define定义宏 #define机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro&#xff…

AI如何创造情绪价值

随着科技的飞速发展,人工智能(AI)已经渗透到我们生活的方方面面。从智能家居到自动驾驶,从医疗辅助到金融服务,AI技术的身影无处不在。而如今,AI更是涉足了一个全新的领域——创造情绪价值。 AI已经能够处…