计算机网络五层协议的体系结构

计算机网络中两个端系统之间的通信太复杂,因此把需要问题分而治之,通过把一次通信过程中涉及的所有问题分层归类来进行研究和处理

体系结构是抽象的,实现是真正在运行的软件和硬件

1.实体、协议、服务和服务访问点

协议必须把所有不利条件和可能出现的情况事先估计到,并给出解决方案

在体系结构的各个层次中,每个报文都分为两部分

  • 数据部分:SDU(Service Data Unit),第n层的服务数据单元称为n-SDU
  • 控制信息部分:PCI(Protocol Data Unit),第n层的协议控制单元称为n-PCI

两者共同组成PDU(Protocol Controll Unit),第n层的协议数据单元称为n-PDU

OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元PDU

2.ISO/OSI参考模型

3.TCP/IP的体系结构

现在互联网使用的 TCP/IP 体系结构已经发生了演变,即某些应用程序可以直接使用 IP 层,或甚至直接使用最下面的网络接口层

TCP/IP中的网络接口层的功能类似于OSI参考模型的物理层+数据链路层。但实际上TCP/IP协议并没有真正描述这一部分,只是指出主机必须使用某种协议与网络连接,以便在其上传递IP数据报

物理层(physical layer)

  • 传输单位:比特(bit)
  • 功能:在物理媒体上为端设备(一条链路上的两端)传输原始比特流。物理层让数据链路层感受不到传输媒体以及调制、编码、信道复用技术的差异
  • 该层需要解决的问题:①如何用数字信号或模拟信号去编码0和1,即接收方和发送方共同约定的什么样的电压信号去代表1/0,以及一些同步问题②确定连接电缆的插头有多少个引脚,尺寸如何等,即确定电路的接口参数③定义传输模式(单工,半双工,全双工)和传输速率。
  • 设备:集线器、中继器
  • 物理层接口标准:EIA-232C、EIA/TIA RS-449、RS-232-C、X.21
  • 注意:物理传输媒体,如双绞线、同轴电缆、光缆、无线信道等并不在物理层范围类,它们是在物理层协议的下面

数据链路层(data link layer)

  • 传输单位:帧(frame)
  • 功能:为端设备(一条链路上的两端)透明地正确可靠地以一个个帧的形式传输比特流(透明:不管数据是什么样的比特组合,都应当能够在链路上传输,即对于传输的数据,即使被加入了控制字符等特殊字符或者发生了比特差错,都不会影响接收端正确解读数据的能力)
  • 该层需要解决的问题:①组装成帧②差错控制③流量控制④连接管理。总的来说就是将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。在广播式网络中,数据链路层还要处理新的问题:如何控制对共享信道的访问。数据链路层中的介质访问子层就是专门处理这个问题的
  • 设备:网桥、交换机
  • 协议:SDLC、HDLC、PPP、STP、FR(frame relay)
  • 注意:在OSI结构中,数据链路层具有流量控制功能。而在TCP/IP结构中,流量控制的功能被移到了传输层。也可能两层都有流量控制功能,只不过控制的对象不同而已。对于数据链路层来说,控制的是相邻两结点之间数据链路上的流量,对于运输层来说,控制的是从源端到目的端之间的流量

网络层(network layer)

  • 传输单位:IP数据报(datagram)(又称分组(packet)或包(packet),或简称数据报,IPv4称数据报,IPv6称分组)
  • 功能:为位于不同网络上的两台主机正确可靠的传输数据
  • 该层需要解决的问题:①根据路由协议生成路由表②根据路由表进行存储转发③差错控制、流量控制、拥塞控制
  • 设备:路由器
  • 协议:IP、IPX、ICMP、IGMP、ARP、RARP、OSPF
  • 注意:互联网在网络层的设计思路是,向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。也就是说,所传送的分组可能出错、丢失、重复、失序或超时,这就使得网络中的路由器比较简单,而且价格低廉。如果主机中的进程之间的通信需要是可靠的,那么可以由更高层的传输层来负责。采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。互联网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。TCP/IP中,网络层并不保证分组的有序到达,各个分组的有序交付由运输层负责

运输层(transport layer)

  • 传输单位:报文段(segment,TCP)、用户数据报(user datagram,UDP)
  • 功能:为两台主机上的进程提供通用可靠的数据传输服务
  • 该层需要解决的问题:①标识不同进程(端口号)②差错控制③流量控制④拥塞控制⑤连接管理
  • 设备:无
  • 协议:TCP、UDP
  • 注意:通用的数据传输服务是指一台主机上的多个进程可以使用同一个运输层服务,因此运输层有复用和分用的功能。网络层也有复用和分用的功能,但网络层的复用是指发送方的不同协议的数据都可以封装成IP数据报发送出去,分用指接收方的网络层在剥去首部后把数据交付给相应的协议

应用层(application layer)

  • 传输单位:报文(message)
  • 功能:通过应用进程间的交互来完成特定网络应用
  • 该层需要解决的问题:①进程间通信所使用的数据格式和交互规则②连接管理
  • 设备:无
  • 协议:FTP、SMTP、HTTP

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

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

相关文章

vue3+vite+ts 发布自定义组件到npm

vue3vite 发布自定义组件到npm 初始化项目编写组件配置打包组件上传到npm测试组件库 初始化项目 // 创建项目 pnpm create vite vue-test-app --template vue-ts// 运行项目 cd vite vue-test-app pnpm install pnpm run dev编写组件 1、根目录下创建packages目录作为组件的开…

talbay---贝叶斯网络分析工具产品介绍

一 简介 talbay是拥有独立知识产权的国产软件,主要功能是贝叶斯网络建模、决策网络建模、概率计算、决策支持、敏感性分析、网络模型验证、机器学习等。talbay以用户为中心,简单易用, 计算准确高效,分析全面多样,在应用成熟理论及…

Linux系统中如何开启和配置OpenGauss数据库的远程连接(1)

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合…

Mars3d-vue最简项目模板集成使用Mars3d的UI控件样板

备注说明&#xff1a; 1.小白可看步骤一二&#xff0c;进阶小白可直接看步骤三 步骤一&#xff1a;新建文件夹<uitest>&#xff0c;在mars3d仓库拉一份最简项目模板&#xff1a; git clone mars3d-vue-template: Vue3.x 技术栈下的Mars3D项目模板 步骤二&#xff1a;运…

kubernetes部署jenkins

参考&#xff1a;kubernetes 部署 Jenkins jenkins kubernetes pipeline_mob64ca14116c53的技术博客_51CTO博客 第七篇&#xff1a;kubernetes部署jenkins-CSDN博客 1、当前kubernetes集群已部署nfs服务 showmount -e 创建jenkins目录 2、添加jenkins的pvc kubectl create …

IP-guard flexpaper远程命令执行漏洞复现 [附POC]

文章目录 IP-guard flexpaper RCE漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 IP-guard flexpaper RCE漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测…

快速使用vscode写python

1.打开vscode&#xff0c;打开扩展&#xff0c;输入python&#xff0c;点击安装。 2.下载python。官网下载太慢&#xff0c;通过镜像下载。 http://npm.taobao.org/mirrors/python/3.9.0/ 下载python-3.9.0-amd64.exe 3.下载好后安装python&#xff0c;下方的add python to p…

WebSocket真实项目总结

websocket 使用websocket达成的效果&#xff1a; websocket是什么? websocket是一种网络通讯协议。 websocket 是HTML5开始提供的一种在单个TCP链接上进行全双工通讯的协议。 为什么需要websocket? 初次接触websocket&#xff0c;都会带着疑惑去学习&#xff0c;既然已经有了…

CSS样式穿透

当我们在vue项目中使用第三方组件时&#xff0c;有时候需要去修改某些元素的样式&#xff0c;但有时写的css样式不会覆盖组件的样式&#xff0c;所以要用到样式穿透。 常用的方法有这几种&#xff1a;&#xff08;1&#xff09;>>> &#xff08;2&#xff09;/deep/ …

OpenHarmony Promise详解

一&#xff0c;定义 作为一个android开发人员&#xff0c;刚接触Promise可能不好理解&#xff0c;因为android中的异步操作都是开启线程操作或者kotlin的协程&#xff0c;但是Promise并不是单独去开启一个线程来处理异步任务&#xff0c;它是在同一个线程中去处理异步任务。异…

实际使用Elasticdump工具对Elasticsearch集群进行数据备份和数据还原

文/朱季谦 目录一、Elasticdump工具介绍二、Elasticdump工具安装三、Elasticdump工具使用 最近在开发当中做了一些涉及到Elasticsearch映射结构及数据导出导入的工作&#xff0c;怕以后会把这过程忘记&#xff0c;可谓好记性不如烂笔头&#xff0c;故而记录成一篇博文。 玩El…

Unity Text文本首行缩进两个字符的方法

Text文本首行缩进两个字符的方法比较简单。通过代码把"\u3000\u3000"加到文本字符串前面即可。 参考如下代码&#xff1a; TMPtext1.text "\u3000\u3000" "这是一段有首行缩进的文本内容。\n这是第二行"; 运行效果如下图所示&#xff1a; 虽…

【代码随想录】算法训练计划21、22

day 21 1、530. 二叉搜索树的最小绝对差 题目&#xff1a; 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 思路&#xff1a; 利用了二叉搜索树的中序遍历特性用了双指…

非原始值的响应式方案

实际上&#xff0c;实现响应式数据要比想象中难很多&#xff0c;并不是单纯地拦截get/set 操作即可。举例来说&#xff0c;如何拦截 for…in 循环&#xff1f;track 函数如何追踪拦截到的 for…in 循环&#xff1f;类似的问题还有很多。除此之外&#xff0c;我们还应该考虑如何…

Java网页版即时通讯聊天系统(附源码)

疫情期间,整天闷在家里又不能聚会,大把的空余时间差点让我发霉,后来有个客户发来新年祝贺,情不自禁想起了一件事情,就是他曾经提起过,要是在后台管理系统里面整合个聊天功能该多好啊,有了这个念头,马上行动起来!!! 一.系统演示 1.1 聊天窗体主界面演示 1.2 模拟两…

基于ssm+vue的程序设计课程可视化教学系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

Unity 预制体放在场景中可见,通过代码复制出来不可见的处理

首先我制作了一个预制体&#xff0c;在场景中是可见的&#xff0c;如下图 无论是Scene视图&#xff0c;还是Game视图都正常。 我把预制体放到Resources里面&#xff0c;然后我通过如下代码复制到同个父物体下。 GameObject obj1 Instantiate(Resources.Load("Butcon&quo…

使用Python轻松实现科研绘图

当撰写在学术期刊上发表的文章时&#xff0c;图表的布局和风格应符合预定义的格式要求。这样可以确保该出版物的所有文章都具有一致的风格&#xff0c;并且任何包含的图表在打印时都是高质量的。 Python在科学界广泛使用&#xff0c;并提供了创建科学绘图的好方法。然而&#…

mysql中的各种日志文件redo log、undo log和binlog

mysql中的各种日志文件redo log、undo log和binlog mysql中的各种日志文件redo log、undo log和binlog1.MySQL日志文件类型2.redo log日志2.1 作用2.2工作原理&#xff1a;2.3详解 3.undo log日志4.binlog日志5.总结 mysql中的各种日志文件redo log、undo log和binlog 1.MySQL…

keras转onnx,TensorFlow转tf.keras.models.load_model,onnx精度转换

参考&#xff1a; https://blog.csdn.net/Deaohst/article/details/126864267 转onnx 别直接转onnx。 先转PB&#xff1a; import tensorflow as tfmodel_path ./models/model.h5 # 模型文件 model tf.keras.models.load_model(model_path) model.sa…