详解TCP/IP协议第三篇:通信数据在OSI通信模型的上下传输

文章目录

一:OSI通信模型间数据传输展示

二:应用层到会话层解析

1:应用层

2:表现层

3:会话层

三:传输层到物理层解析

1:传输层

2:网络层

3:数据链路层、与物理层

一:OSI通信模型间数据传输展示

        分析方法可以借鉴下图模型。发送方第7第6层到第1上至下传输数据,而接则从第1层第2到第7层由下至上向每个上一级分层传输数据。每个分层上,在处理由上一层传过来的数据时可以附上当前分层的协议所必须的“首部”信息。然后接收端对收到的数据进行数据“首部”与“内容”的分离,再转发给上一分层,并终将发送端的数据恢复为原状。

二:应用层到会话层解析

        假定用户A要给用户B 发送一封内容为“早上好”邮件。众多的位列与各层中的协议,发挥着各自的作用,从而实现邮件的发送和接收

1:应用层

        用户A在主机A上新建一电子件指定收人为 B并发送内容"叔叔好

        用户 A输入“叔叔好”的这一部分就属于与通信无关的功能,而将“早上好”的内容发送给收件人 B 则是其与通相关的功能。因此,此处的“输入电子邮件内容后发送给目标地址”也就相当于应用层。从用户输人完所要发送的内容并点击“发送”按的那一开始,就进人了应用层协议的处理。该协议会在所要传送数据的前端附加一个首部标签信息。该首部标明了邮件内容收件人为“B”。

         这一附有首部信息的数据传送给主机 B 以后由该机上的收发邮件软件通过“收信”功能获取内容主机B上的应用收到由主机A 发送过来的数据后,如果主机 B上收件人的邮箱空间已满无法接收新的邮件,则会返回一个错误给发送方。对这类异常的处理也正属于应用层需要解决的问题。

2:表现层

        表示层更关注据的具体表现形式。所使用的应用软件本身的不同也会导致数据的表现形式截然不同。比如有的字体处理软件创建的文件只能由该字处器厂商所提供的特定版本的软件才来打开读取。

        解决这类问题有以下几种方法。首先是利用表示层,将数据从“某个计算机特定的数据格式”转换为“网络通用的标准数据格式”后再发送出去。接收端主机收到数据以后将这些网络标准格式的数据恢复为“该计算机特定的数据格式”然后再进行相应处理。

        在前面这个例子中,由于数据被转换为通用标准的格式后再进行处理,使得异构的机型之间也能保持数据的一致性。这也正是表示层的作用所在。即表示层是进行“统一的网络数据格式”与“某一台计算机或某一软件特有的数据格式”之间相互转换的分层。

        此例中的“叔叔好”这文字根据其编码格式被转换成为了“统一的网络数据格式”。即便是一段简单的文字流,也可以有众多复杂的编码格式。如果未能按照特定格式编码,那么在接收端就是收到邮件也可能会是乱码表示层与表示层之间为了识别编码格式也会附加首部信息,从而将实际传输的数据转交给下一层去处理。

3:会话层

        下面,我们来分析在两端主机的会话层之间是如何高效地进行数据交互、采用何种方法传输数据的。

        假定用户 A 新建了5电子件准备发给用户B这5件的发可以有很多种。例如,可以每发一封邮件时建立一次连接”,随后断开连接。还可以一经建立好连接后将5 邮件连续发送给对方。甚至可以同时建立好5个连接,将5 封邮件同时发送给对方。决定采用何种连接方法是会话层的主要责任。会话层也像应用层或表示层那样,在其收到的数据前端附加首部或标签信息后再转发给下一层。而这些首部或标签中记录着数据传送顺序的信息。

三:传输层到物理层解析

1:传输层

        到此为止,我们通过例子说明了在应用层写人的数据会经由表示层格式化编码、再由会话层标记发送顺序后才被发送出去的大致过程。然而,会话层只对何时建立连接、何时发送数据等问题进行管理,并不具有实际传输数据的功能。真正负责在网络上传输具体数据的是会话层以下的“无名英雄”

        传输层主机A确保与主机 B之间的通信并准备发送数据。这一过程叫做“建立连接”。有了这个通信连接就可以使主机 A 发送的电子邮件到达主机 B 中,主机 B 的邮件处理程序获取最终数据。此外,当通信传输结束后,有必要将连接断开。

        如上,进行建立连接或断开连接的处理,在两个主机之间创建逻辑上的通信连接即是传输层的主要作用。此外,传输层为确保所传输的数据到达目标地址会在通信两端的计算机之间进行确认,如果数据没有到达,它会负责进行重发。

        例如,主机 A 将“早上好”这一数据发送给机 B。期间可能会为某原因导致数据被破坏,或由于发生某种网络异常致使只有一部分数据到达目标地址。假设主机 B 只收到了“早上”这一部分数据,那么它会在收到数据后将自已没有收到“早上”之后那部分数据的事实告知主机 A。主机A得知这个情后就会将后面的“好”重发给主机 B,并再次确认对端是否收到。

        这就好比人们日常会话中的确认语句:“对了,你刚才说什么来着?”计算机通信协议其实并没有想象中那么晦涩难懂,其基本原理是与我们的日常生活紧密相连、大同小异的。

        由此可见,保证数据传输的可靠性是传输层的一个重要作用。为了确保可靠性,在这一层也会为所要传输的数据附加首部以识别这一分层的数据。然而,实际上将数据传输给对端的处理是由网络层来完成的。

        传输层作用就是:确立链接、断开链接、保证传输准确性和完整性。

2:网络层

        网络层的作用是在网络与网络相互连接的环境中,将数据从发送端主机发送到接收端主机。如图127 所示,两端机之间然有众多数据链路,能够将数据从主机A送到主机 B也都是网络层的劳。

        网络层的作用就是:主机A到主机B的数据通信处理

        在实际发送数据时,目的地址"至关重要。这个地址是进行通信的网络中唯一指定的序号。也可以把它想象为我们日常生活中使用的电话号码。只要这个目标地址确定了,就可以在众多计算机中选出该目标地址所对应的计算机发送数据。基于这个地址,就可以在网络层进行数据包的发送处理。而有了地址和网络层的包发送处理,就可以将数据发送到世界上任何一台互连设备。网络层中也会将其从上层收到的数据和地址信息等一起发送给下面的数据链路层,进行后面的处理。

        传输层与网络层的关系

        在不同的网络体系结构下,网络层有时也不能保证数据的可达性。例如在相当于TCP/IP 网络层的 IP 协议中,就不能保证数据一定会发送到对端地址。因此,数据传送过程中出现数据丢失、顺序混乱等问题可能性会大大增加。像这样没有可靠性传输要求的网络层中,可以由传输层负责提供“正确传输数据的处理”。TCP/IP 中,网络层与传输层相互协作以确保数据包能够传送到世界各地,实现可靠传输。

        每个分层的作用与功能越清晰,规范协议的具体内容就越简单,实现”这些具体协议的工作也将会更加轻松。

3:数据链路层、与物理层

        通信传输实际上是通过物理的传输介质实现的。数据链路层的作用就是在这些通过传输介质互连的设备之间进行数据处理。

         物理层中,将数据的0转换为电压和脉冲光传输给物理的传输介,而相互直连的设备之间使用地址实现传输。这种地址称为 MAC地址,也可称为物理地址或硬件地址。采用 MAC 地址,目的是为了识别连接到同一个传输介质上的设备。因此,在这一分层中将包含 MAC 地信息的部附加到从网路层转发过来的数据上,将其发送到网络。

        网络层与数据链路层都是基于目标地址将数据发送给接收端的,但是网络层负责将整个数据发送给最终目标地址,而数据链路层则只负责发送一个分段内的数据。

        主机B端的处理接收端主机 B 上的处理流正好与主机A,它从理层开始将接收到的数据逐层发给上一分层进行处理,从而使用户 B在 B用客户端软件接收用户 A发送过来的邮件,并可以读取相应内容为“早上好”如上所述,读者可以将通信网络的功能分层来思考。每个分层上的协议规定了该分层中数据首部的格式以及首部与处理数据的顺序。

文章参考自:图解TCP/IP协议图书

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

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

相关文章

Python实现猎人猎物优化算法(HPO)优化Catboost分类模型(CatBoostClassifier算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

vue学习之属性绑定

内容渲染 采用 &#xff1a;进行属性渲染创建 demo3.html,内容如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&…

LeetCode 1359. Count All Valid Pickup and Delivery Options【动态规划,组合数学】1722

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

BGP路由属性

任何一条BGP路由都拥有多个路径属性&#xff08;Path Attributes&#xff09;&#xff0c;当路由器通告BGP路由给它的对等体时&#xff0c;该路由将会携带多个路径属性&#xff0c;这些属性描述了BGP路由的各项特征&#xff0c;同时在某些场景下也会影响BGP路由优选的决策。 一…

百度收录和权重怎么提升-网站如何获得百度权重

你是否一直苦恼于网站权重的低迷&#xff1f;不知道如何开始提升网站权重&#xff0c;缺乏优质内容更新网站。不清楚如何进行关键词优化来提升网站排名和权重。SEO是一个需要持续投入时间和资源的过程。每个网站的情况都会有所不同&#xff0c;因此所花费的时间也会有所差异。然…

Spring基础(2w字---学习总结版)

目录 一、Spirng概括 1、什么是Spring 2、什么是容器 3、什么是IoC 4、模拟实现IoC 4.1、传统的对象创建开发 5、理解IoC容器 6、DI概括 二、创建Spring项目 1、创建spring项目 2、Bean对象 2.1、创建Bean对象 2.2、存储Bean对象&#xff08;将Bean对象注册到容器…

Apollo介绍和入门

文章目录 Apollo介绍配置中心介绍apollo介绍主流配置中心功能特性对比 Apollo简介 入门简单的执行流程Apollo具体的执行流程Apollo对象执行流程分步执行流程 核心概念应用&#xff0c;环境&#xff0c;集群&#xff0c;命名空间企业部署方案灰度发布全量发布 配置发布的原理发送…

HCIE-HCS规划设计搭建

1、相关术语 1、等价路由 等价路由&#xff08;Equal-cost routing&#xff09;是一种网络路由策略&#xff0c;用于在网络中选择多个具有相同路由度量&#xff08;路由距离或成本&#xff09;的最佳路径之一来转发数据流量。 当存在多个路径具有相同的路由度量时&#xff0c;…

“系统的UI”——SystemUI

SystemUI的实现 以StatusBar为例&#xff0c;来分析下Android系统具体是如何实现它们的。 相关代码分为两部分&#xff0c;即&#xff1a; Service部分 代码路径&#xff1a;frameworks/base/services/java/com/android/server。 应用部分 代码路径&#xff1a;frameworks…

聚合物发光材料荧光量子效率测量

近年来‚聚合物发光材料与器件受到人们的极大关注和高度重视‚其关键是聚合物发光器件具有光吸收范围宽‚吸收强度大‚发光效率高‚激发阈值低以及制备工艺简便灵活等显著特点‚已成为有机固体激光领域一个新的研究热点。 现有的聚合物发光材料体系主要集中在&#xff1a;聚噻…

【环境配置】基于Docker配置Chisel-Bootcamp环境

文章目录 Chisel是什么Chisel-Bootcamp是什么基于Docker配置Chisel-Bootcamp官网下载Docker安装包Docker换源启动Bootcamp镜像常用docker命令 可能产生的问题 Chisel是什么 Chisel是Scala语言的一个库&#xff0c;可以由Scala语言通过import引入。 Chisel编程可以生成Verilog代…

mysql文档--innodb中的重头戏--事务隔离级别!!!!--举例学习--现象演示

阿丹&#xff1a; 先要说明一点就是在网上现在查找的mysql中的事务隔离级别其实都是在innodb中的事务隔离级别。因为在mysql的5.5.5版本后myisam被innodb打败&#xff0c;从此innodb成为了mysql中的默认存储引擎。所以在网上查找的事务隔离级别基本上都是innodb的。并且支持事务…