| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 网络协议 -> 数据的传输过程 -> 正文阅读 |
|
|
[网络协议]数据的传输过程 |
|
?目录 前言如图2.5所示,当给朋友写一封信时,一定会遵照一个约定俗成的信件格式去写信。例如,在开头写对收信人的称呼,接下来是问候语“你好”?等,中间是信的内容,最后落款写自己的姓名、日期等,那么,这个书信格式及通信采用的语言实际上就是和朋友之间的协议,只有遵照这个协议,对方才能读懂信。计算机也是如此,在发送过程中需要进行封装和解封,但计算机封装和解封更加复杂 1.1数据的封装图
?1.2 数据封装过程正如上文所说,计算机在网络层次中的划分比上述案例更加复杂,每一层功能的实现也更复杂,为了方便说明此过程,我们将过程分解并进行讲解 1.2.1 应用层传输过程在应用层,数据被“翻译’为网络世界使用的语言一进制编码数据。?大家可以试想一下,人们需要通过计算机传输数据的形式千变万化、各式各样,有字母、数字.汉字、图片、声音等。这些信息对于单一通过弱电流传输的计算机来说太过于‘复杂",?因此这些人类方便识别的信息被应用层通过各种特殊的编码过程转换成二进制数据。?这就是上面所描述的“翻译”过程,也是应用层在网络数据传输过程中最为核心的贡献。 1.2.2 传输层传输过程?
1.2.3网络层传输过程
1.2.4?数据链路层传输过程在数据链路层,上层数据被封装一个?MAC头部,其内部有一个关键的字段信息一?MAC地址它由一组48位的二进制数组成。在目前阶段,我们先把它理解为固化在硬件设备中的物理地址,具有全球唯一性。例如,之前讲解的网卡就有属于自己的唯一的MAC地址。和P头部类似,在MAC头部也同时封装着目标MAC地址和源MAC地址。 1.2.5 物理层传输过程?无论在之前哪一层封装的报文头部还是?上层数据信息都是由二进制数组成的,在物理层,将江进制数字组成的比特流转换成电信号在网络中传输。 ?1.3 数据解封数据被封装完毕通过网络传输到接受后,将进入数据的解封装过程,这将是封装过程的一个逆过程 1.3.1 数据解封装过程在物理层,首先将电信号转换成-进制数据,并将数据送至数据链路层●在数据链路层,将查看目标MAC地址,判断其是否与自己的MAC地址吻合,并据此完成后续处理,?如果数据报文的目标MAC地址就是自己的MAC地址,数据的MAC头部将被“拆掉”,?并将剩余的数据送至上一?层如果目标MAC地址不是自己的MAC地址,对于终端设备来说,?它将会丢弃数据。在网络层与在数据链路层类似,目标IP地址将被核实是否与自己的P地址相同,从而确定是否送至上一层;到了传输层,首先要根据TCP头部判断数据段送往哪个应用层协议或应用程序,然后将之前被分组的数据段重组,再送往应用层:在应用层,这些二进制数据将经历复杂的解码过程,以还原发送者所传输的原始信息。 ?1.3.2数据解封装过程图
?2 数据封装与解封装过程(2)首先需要明确一一个问题,发送方与接收方各层之间必须采用相同的协议才能建立连接,实现正常的通信。例如,应用层之间必须采用相同的编码、解码规则,才能保证用户信息传输的正确性:传输层之间必须采用相同的端口号与协议对应关系,才能保证上层应用进程间的通信:网络层之间必须采用相同的逻辑寻址过程才能保证数据不会传输到错误的目的地。如果数据链路层采用的协议不同,接收方甚至不能理解”?数据的内容:如果物理层的硬件接口规格不同,接收方甚至连信号都无法接收到。 2.1TCP/IP五层模型各层间通讯图
总结数据在传输过程中不断地进行着封装和解封依装的过程,中间设备属于哪一层就在哪一层对数据进行相关的处理,以实现设备的主要功能。也正因如此,我们称TCP/P五层模型为“参考”?模型,参考这五层模型可以帮助我们很好地研究网络中的设备及设备工作过程中遵守的协议。 |
|
|
| 网络协议 最新文章 |
| 使用Easyswoole 搭建简单的Websoket服务 |
| 常见的数据通信方式有哪些? |
| Openssl 1024bit RSA算法---公私钥获取和处 |
| HTTPS协议的密钥交换流程 |
| 《小白WEB安全入门》03. 漏洞篇 |
| HttpRunner4.x 安装与使用 |
| 2021-07-04 |
| 手写RPC学习笔记 |
| K8S高可用版本部署 |
| mySQL计算IP地址范围 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/30 23:41:54- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |