2017-04-23 137 views
1

我通过串行连接(RS 232)连接计算机和外部设备。然后我从设备发送一些数据到电脑。超级终端正在访问该数据并显示它们。在这个过程中,OSI模型的哪些层被使用?

这是我的理解。 RS-232仅覆盖第1层(物理层)。超级终端运行在应用程序层。对于这个过程只使用这两个层。

当我搜索stackoverflow时,发现类似“串行协议定义OSI模型的第一层或前两层(取决于您是否考虑7或8位串行数据包帧)”。 查看完整的article
这是什么意思?串行协议和OSI模型

+0

*”当我搜索stackoverflow时,我发现了类似于......“* - 然后提供一个链接,以便您可以读取所引用内容的全部内容。解读一个句子,除非你想要的只是猜测。 – sawdust

+0

@sawdust。感谢并编辑 – user2900405

回答

0

当我搜索stackoverflow时,我发现像“串行协议定义OSI模型的第一层或前两层(取决于您是否考虑7或8位串行数据包帧)”

该报价交换“数据包”和“框架”的条款。
(I坚持“帧”的定义如UART文档中使用。
这也将与分组>的帧 - >位的OSI层次相一致。)

在asynchronus串行通信只包含一个字符(5到9位)。
一个字符不是一个消息。
尽管在同步链路中,包含几个字节来组成更高级别的消息单元。
所以EliAlgranti在那个答案似乎是在思索,如果这个异步的框架合格作为OSI数据链路层,并且如果这是“串行协议”的一部分。

但请注意,此UART帧似乎并不是RS-232标准的一部分(即使您可以在网上找到一些包含帧描述以及遗漏网站的“RS-232描述” )
实际的TIA/EIA文件从TIA site开销156美元。
该标准的摘要没有提到框架。

最好确认帧是不是的RS-232标准,我发现的部分是在第二到的"The RS232 Standard"最后一段:

注意,无论是ASCII字母表也不异步串行协议,定义起始位,数据位数,奇偶校验位和停止位是EIA232规范的一部分。

所以RS-232标准很可能只是物理层。


对于该过程仅这两个层被使用。

不,您只确定了顶层和底层。
这两者之间的其他层确实存在(至少在概念上),但是您还没有确定它们是否已实际实施以及如何实施。
显然每个数据链路层都有帧。

+0

想到了。计算机VB 6程序用于读取数据MSComm控件是在程序用于串行通信的MSComm的 配置是,每秒9600 数据位 位:8 Partity:奇数 停止位:1 流量控制:无 这是我的理解。 串行通信代表物理层 MSComm的配置(部分,每秒位数,停止位等)表示数据链路层 而我开发的VB 6程序代表应用层。 是吗? – user2900405

+0

几乎每个人都会将RS-232规范和异步帧混合为*“串行通信”*。 RS-232是物理层。用于串行通信的数据链路层通常用硬件来处理,即UART。 MSComm似乎更适合网络层。您的VB 6程序可能跨越传输,会话,演示文稿和应用程序层。使用串行端口的应用程序通常使用系统调用“读取”字节,扫描/解析字节以检测并验证消息数据包,然后处理该消息。这不仅仅是一个“应用层”。 – sawdust

+0

解决了我的问题。当通过串行电缆进行通信并从vb 6程序读取数据时,RS 232位于物理层。数据链路层的UART和网络层的MSComm。 VB程序处理所有其他图层。 – user2900405

0

也许这个图像回答(它是从here拍摄)

serial protocol in the osi model

在这种web page一个发现这个解释的问题:“在国际标准化组织的开放系统互连(ISO/OSI)模型用于网络通信,串行通信在物理层和应用层之间运行,RS-232-C标准描述物理层,串行设备驱动程序存储在下一层,数据链路层,Windows CE串行通信函数使应用程序能够通过方式交换数据的串行硬件。 (...)。“