当前位置: 首页 > news >正文

【计算机网络】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 服务,客户端收到服务器发送的页面文件 后不给出应答。

相关文章:

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

目录 协议什么是协议协议是水平存活的协议的组成 接口服务服务是什么服务原语 协议与服务的区别计算机网络提供的服务的三种方式面向连接服务与无连接服务可靠服务与不可靠服务有应答服务与无应答服务 协议 什么是协议 协议,就是规则的集合。 在计算机网络中&…...

多角度剖析事务和事件的区别

事务和事件这两个概念在不同的领域有着不同的含义,尤其是在计算机科学、数据库管理和软件工程中。下面从多个角度来剖析事务和事件的区别: 计算机科学与数据库管理中的事务 事务(Transaction): 定义:在数据库管理中&#xff0c…...

模糊小波神经网络(MATLAB 2018)

模糊系统是一种基于知识或规则的控制系统,从属于智能控制,通过简化系统的复杂性,利用控制法来描述系统变量之间的关系,采用语言式的模糊变量来描述系统,不必对被控对象建立完整的数学模型。相比较传统控制策略&#xf…...

HTML布局

标准流: 标准流就是元素在页面中的默认排列方式,也就是元素在页面中的默认位置。 1.1 块元素----独占一行----从上到下排列 1.2 行内元素----不独占一行----从左到右排列,遇到边界换行 1.3 行内块元素----不独占一行…...

数据结构:双链表

数据结构&#xff1a;双链表 题目描述参考代码 题目描述 输入样例 10 R 7 D 1 L 3 IL 2 10 D 3 IL 2 7 L 8 R 9 IL 4 7 IR 2 2输出样例 8 7 7 3 2 9参考代码 #include <iostream>using namespace std;const int N 100010;int m; int idx, e[N], l[N], r[N];void init…...

Python3 元组、列表、字典、集合小结

前言 本文主要对Python中的元组、列表、字典、集合进行小结&#xff0c;主要内容包括知识点回顾、异同点、使用场景。 文章目录 前言一、知识点回顾1、列表&#xff08;List&#xff09;2、 元组&#xff08;Tuple&#xff09;3、 字典&#xff08;Dictionary&#xff09;4.、…...

2024会声会影破解免费序列号,激活全新体验!

会声会影2024序列号注册码是一款专业的视频编辑软件&#xff0c;它以其强大的功能和易用性受到了广大用户的喜爱。在这篇文章中&#xff0c;我将详细介绍会声会影2024序列号注册码的功能和特色&#xff0c;帮助大家更好地了解这款产品。 会声会影全版本绿色安装包获取链接&…...

机器学习18个核心算法模型

1. 线性回归&#xff08;Linear Regression&#xff09; 用于建立自变量&#xff08;特征&#xff09;和因变量&#xff08;目标&#xff09;之间的线性关系。 核心公式&#xff1a; 简单线性回归的公式为&#xff1a; , 其中 是预测值&#xff0c; 是截距&#xff0c; 是斜…...

平滑值(pinghua)

平滑值 题目描述 一个数组的“平滑值”定义为&#xff1a;相邻两数差的绝对值的最大值。 具体的&#xff0c;数组a的平滑值定义为 f ( a ) m a x i 1 n − 1 ∣ a i 1 − a i ∣ f(a)max_{i1}^{n-1}|a_{i1}-a_i| f(a)maxi1n−1​∣ai1​−ai​∣ 现在小红拿到了一个数组…...

使用matplotlib绘制折线条形复合图

使用matplotlib绘制折线条形复合图 介绍效果代码 介绍 在数据可视化中&#xff0c;复合图形是一种非常有用的工具&#xff0c;可以同时显示多种数据类型的关系。在本篇博客中&#xff0c;我们将探讨如何使用 matplotlib 库来绘制包含折线图和条形图的复合图。 效果 代码 imp…...

云计算中网络虚拟化的核心组件——NFV、NFVO、VIM与VNF

NFV NFV&#xff08;Network Functions Virtualization&#xff0c;网络功能虚拟化&#xff09;&#xff0c;是一种将传统电信网络中的网络节点设备功能从专用硬件中解耦并转换为软件实体的技术。通过运用虚拟化技术&#xff0c;NFV允许网络功能如路由器、防火墙、负载均衡器、…...

# SpringBoot 如何让指定的Bean先加载

SpringBoot 如何让指定的Bean先加载 文章目录 SpringBoot 如何让指定的Bean先加载ApplicationContextInitializer使用启动入口出注册配置文件中配置spring.factories中配置 BeanDefinitionRegistryPostProcessor使用 使用DependsOn注解实现SmartInitializingSingleton接口使用P…...

家用洗地机哪个品牌好?洗地机怎么选?这几款全网好评如潮

如今&#xff0c;人们家里越来越多的智能清洁家电&#xff0c;小到吸尘器、电动拖把&#xff0c;大到扫地机器人、洗地机&#xff0c;作为一个用过所有这些清洁工具的家庭主妇&#xff0c;我觉得最好用的还是洗地机。它的清洁效果比扫地机器人更好&#xff0c;功能也比吸尘器更…...

iOS与前端:深入解析两者之间的区别与联系

iOS与前端&#xff1a;深入解析两者之间的区别与联系 在数字科技高速发展的今天&#xff0c;iOS与前端技术作为两大热门领域&#xff0c;各自在移动应用与网页开发中扮演着不可或缺的角色。然而&#xff0c;这两者之间究竟存在哪些差异与联系呢&#xff1f;本文将从四个方面、…...

SpringBoot 基于jedis实现Codis高可用访问

codis与redis的关系 codis与redis之间关系就是codis是基于多个redis实例做了一层路由层来进行数据的路由&#xff0c;每个redis实例承担一定的数据分片。 codis作为开源产品&#xff0c;可以很直观的展示出codis运维成本低&#xff0c;扩容平滑最核心的优势. 其中&#xff0…...

力扣108. 将有序数组转换为二叉搜索树

108. 将有序数组转换为二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 找割点&#xff0c;一步一步将原数组分开。妙极了&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; /*** Definition for a binary tree node.* public class TreeNode {* int val;…...

人工智能机器学习系统技术要求

一 术语和定义 1.1机器学习系统 machinelearningsystem 能运行或用于开发机器学习模型、算法和相关应用的软件系统。 1.2机器学习框架 machinelearningframework 利用预先构建和优化好的组件集合定义模型,实现对机器学习算法封装、数据调用处理和计算资源使用的软件库。 1…...

学习整理使用JavaScript中如何判断变量是否存在的四种常用方法

学习整理使用JavaScript中如何判断变量是否存在的四种常用方法 前言1. 使用 typeof 运算符判断变量类型2. 使用全局对象 window 或 global 判断变量是否存在3. 使用 in 关键字判断变量是否存在4. 使用 try…catch 块判断变量是否存在5. 综合示例总结 前言 在 JavaScript 中&am…...

docker实现jenkins+git+naocas一体化自动部署

一、jenkins安装 1.1 docker 安装jenkins docker pull jenkins/jenkins 1.2 docker 启动jenkins docker run --name myjenkins -d -p 8081:8080 -p 8085:8085 jenkins/jenkins –name 指定容器名称为myjenkins -d 表示后台运行 -p 8081&#xff1a;8080 表示Docker Host(运行Do…...

Flutter 中的 PerformanceOverlay 小部件:全面指南

Flutter 中的 PerformanceOverlay 小部件&#xff1a;全面指南 Flutter 是一个由 Google 开发的跨平台 UI 框架&#xff0c;它允许开发者使用 Dart 语言构建高性能、美观的应用。在 Flutter 的开发过程中&#xff0c;性能监控是一个重要的方面。PerformanceOverlay 是 Flutter…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...