IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 【TCP/IP】OSI参考模型 -> 正文阅读

[网络协议]【TCP/IP】OSI参考模型

? ?1.协议

? ? ? ? ?在计算机网络与通信领域中往往离不开协议。就如TCP/IP本身就是一个包含有IP,TCP,HTTP等协议的集合。协议可以认为是计算机之间通讯的一种事先达成的约定,或者是一种规矩。协议避免了受不同设备,厂商或者操作系统的所带来的不兼容的性质。只要两台计算机之间都遵守着同样的协议,并按照相同的协议进行处理,那么就可以实现相互的通信。协议这个概念和我们人类用语言交流的过程十分的类似。当一个英语使用者和汉语使用者在交流的时候,他们各自所使用的语言其实就可以认为是一种协议,而他们所说的内容就是他们要传输的数据。因为语言(也就是所谓的协议)不同,他们之间的交流并不会很顺利,可能完全听不明白对方的意思。但是如果都是汉语使用者,那么在语言这个层的协议就一致了,他们自然可以进行交流。计算机网络中的协议也是如此。

2.协议标准化

? ? ? ? 计算机通信诞生支持并没有一个标准化的协议,不同的计算机生产商往往都使用自己的协议进行通讯,这使得如果想让两台异构的计算机之间进行通讯将变得十分困难,因为他们之间的协议不同。对于用户而言,这使得他们只能用同一个厂商生产的机器才能进行通讯,这无疑十分的麻烦而且存在很多风险。而为了强化网络的开放性和多供性,ISO(国际标准化组织)指定了一个国际标准OSI(开放式通信互联参考模型)(这俩的名字确实比较容易记混/_ \)。OSI模型现在虽然没有被普及,不过它经常被用来作为网络协议的参考。就比如TCP/IP协议就没有按照OSI的标准,不过他们之间的结构很相似。

3.OSI参考模型

? ? ? ? OSI参考模型将通信协议分为了7层,这样使得较为复杂的网络协议结构简单化。这7层中,每一分层都接收由它下一层所提供的特定服务,并且负责自己上一层提供特定服务。OSI的层与层之间所遵循的约定称为“接口”,而相同层之间的交互所遵循的约定称为“协议”。

?????????????????????????????????????????

这种结构令整个模型变得十分的灵活并且稳定。当需要替换其中的一层协议的时候,其他的层并不需要因为这一层的改动而进行调整。并且层与层之间的相对独立,各自承担不同的任务。可以以打电话为例,两个人说话使用的语言为最上层协议,那么电话在接受了使用者的语音后,便将其转化为电波的形式,这又是另一层协议,之后电波如何进行传递又是一个层。那么如果此时使用者的语言发生了变化,也就是最上层的协议更改时,电话依然可以正常运行。那么此时如果将电话换成对讲机,那么对应的将声音转为信号的协议层就发生了变化,但是使用者并不需要更改他说话的内容依然可以实现通话的效果。

? ? ? ? OSI的七层协议从下到上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,他们分别对应着不同的协议,起到不同的作用。OSI并没有详细的对每层使用的协议和接口做强制要求,只是给出了一个粗略的界定,具体的实现还是需要参考每个协议的本身。7层协议在通信的时候都会在数据上加上该层的首部信息,而接收端则需要将首部与内部信息分离,再传给上一层。了解OSI模型也有助于学习TCP/IP协议。下面针对每一层进行介绍:

应用层:

? ? ? ? 应用层为最顶端的一层,它往往是针对特定应用的协议,比如电子邮件使用的电子邮件协议。其规定的是应用程序之间通信的相关细节。以电子邮件作为例子的话,那么应用层就相当于是将电子邮件的内容发送给目标地址。那么接收方对应的应用层协议就是接收这封邮件并获取其中的信息。

表示层:

? ? ? ? 表示层的功能是进行设别固有格式和网络标准数据格式之间的转换,或者是将下一层的数据转换为上层能处理的格式。这么做主要是因为不同设别对同一数据流的信息解释方式可能不同,那么就需要表示层来让信息保持一致。就好比我们虽然都是发送的电子邮件,但是使用的客户端和编码格式不一定一样,那对应的转换格式也就千差万别。所以需要表示层来保证数据的一致性。

会话层:

? ? ? ? 会话层主要负责建立和断开通信连接,以及数据数据的分割等数据传输相关的管理。它决定着两个主机数据交互的方式,什么时候建立连接,什么时候断开连接。例如我们发送邮件的时候是每次发一封邮件还是一次性全部传输完毕才断开连接。会话层只是负责管理传输,但是不具备实际传输数据的功能。

传输层:

? ? ? ? 传输层管理着两个节点之间的数据传输,负责可靠的传输数据。其只再通讯双方的节点上进行处理,而无需再路由器上处理。所以一般路由器只包含到网络层,并不需要涉及传输层及以上。当确保两个主机之间的通讯并发送数据,这个过程被称作“建立连接”,而当通信传输结束后,有必要将连接断开。传输层也负责保证传输的可靠性,例如一条数据发送失败的时候,传输层就可能会采用重发的方式来确保对方收到。

网络层:

? ? ? ? 网络层负责的是地址管理(寻址)与路由选择。当两个主机之间存在多个数据链路的时候,网络层需要负责挑选一条合适的路径。在确定目标地址之后便可以通过网络层来进行数据包的发送处理,让数据发送到任何一台互联的设备上。但是因为不同的网络体系结构,网络层并不能保证主句的可达性,因此可能会出现数据丢失或者传输顺序混乱等问题,这就需要传输层来保证数据的正确性。

数据链路层、物理层:

? ? ? ? 数据链路层负责物理层面上的互联以及节点之间的通信传输而物理层则是负责比特流和电流信号之间的切换。

? ? ? ?本文为个人学习笔记,如有问题欢迎讨论和指出@茱莉亚之歌

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 11:06:18  更:2021-09-08 11:08:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/27 1:39:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码