码迷,mamicode.com
首页 > 其他好文 > 详细

学习笔记之TCP/IP协议分层与OSI参考模型

时间:2014-07-29 18:08:42      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:android   java   tcp ip   网络协议   通信   

1.协议的分层
     ISO在制定标准化OSI之前,对网络体系结构相关的问题进行了充分的讨论, 最终提出了作为通信协议设计指标的OSI参考模型。这一模型将通信协议中必要 的功能分成了7层。通过这些分层,使得那些比较复杂的网络协议更加简单化。

在这一模型中每个分层都接收由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务。上下层之间进行交互时所遵循的约定叫做“接口。同一层之间的交互所遵循的约定叫做协议”。

协议分层就如同计算机软件中的模块化开发。OSI参考模型的建议是比较理想化的。它希望实现从第一层到第七层的所有模块并将它们组合起来实现网络 通信。分层可以将每个分层独立使用,即使系统中某些分层发生变化,也不会波及整个系统。因此,可以构造一个扩展性和灵活性都较强的系统。此外,通过分层能够细分通信功能更易于单独实现每个分层的协议,并界定各个分层的具体责任和义务。这些都属于分层的优点。而分层的劣势,可能就在于过分模块化、使处理变得更加沉重以及每个模块都不得不实现相似的处理逻辑等问题。
bubuko.com,布布扣
(原文链接:http://blog.csdn.net/yelangjueqi/article/details/38269947 ,欢迎转载,转载时请注明出处!!)

bubuko.com,布布扣
2.通过对话理解分层

关于协议的分层,我们再以AC的对话(见上一节)为例简单说明一下。在此,我们只考虑语言层和通信设备层这两个分层的情况。首先,以电话聊天为例,见下图,上半部分中的AC两个人正在通过电话 (信设备)用汉语(语言协议)聊天。我们详细分析一下这张图。

bubuko.com,布布扣

bubuko.com,布布扣

表面上看AC是在用汉语直接对话,但实际上AC都是在通过电话机的听筒听取声音都在对着麦克风说话。想象一下如果有一个素未见过电话机的人见到这个场景会怎么想?恐怕他一定会以为AC在跟电话机聊天吧。其实在这个图中,他们所用的语言协议作为麦克风的音频输入,在通信设备层被转换为电波信号传送出去了。传送到对方的电话机后,又被通信设备层转换为音频输出,传递给了对方。因此,AC其实是利用电话机之间通过音频转化声音的接口实现了对话。

     通常人们会觉得拿起电话与人通话,其实就好像是直接在跟对方对话,然而如果仔细分析,在整个过程中实际上是电话机在做中介,这是不可否认的。如果A的电话 机所传出的电子信号并未能转换成与C的电话机相同频率的声音,那会如何?这就如 同A的电话机与C的电话机的协议互不相同。C听到声音后可能会觉得自己不是在跟 A而是在跟其他人说话。频率若是相去甚远,C更有可能会觉得自己听到的不是汉语。

那么如果我们假定语言层相同而改变了通信设备层,情况会如何?例如,将 电话机改为无线电。通信设备层如果改用无线电,那么就得学会使用无线电的方 法。由于语言层仍然在使用汉语协议,因此使用者可以完全和以往打电话时一样 正常通话上图左下部分)。

那么,如果通信设备层使用电话机而语言层改为英语的话情况又会如何? 很显然,电话机本身不会受限于使用者使用的语言。因此,这种情况与使用汉语 通话时完全一样,依然可以实现通话上图右下部分)。

   到此为止,读者可能会觉得这些都是再简单不过的、理所当然的事。在此仅举出简单的例子,权作对协议分层及其便利性的一个解释,以加深对分层协议的理解。


3.OSI参考模型
  前面只是将协议简单地分为了两层进行了举例说明。然而,实际的分组通信协议 会相当复杂。OSI参考模型将这样一个复杂的协议整理并分为了易于理解的7个分层。
bubuko.com,布布扣
bubuko.com,布布扣
     osi参考模型对通信中必要的功能做了很好的归纳。网络工程师在讨论协议 相关问题时也经常以osi参考模型的分层为原型。对于计算机网络的初学者,学 习osi参考模型可以说是通往成功的第一步。不过,osi参考模型终究是一个“模型”,它也只是对各层的作用做了一系列 粗略的界定,并没有对协议和接口进行详细的定义。它对学习和设计协议只能起 到一个引导的作用。因此,若想要了解协议的更多细节,还是有必要参考每个协 议本身的具体规范。许多通信协议,都对应了 OSI参考模型7个分层中的某层。通过这一点,可 以大致了解该协议在整个通信功能中的位置和作用。

4.OSI参考模型中各个分层的作用
    在此,以下图为例简单说明OSI参考模型中各个分层的主要作用。
bubuko.com,布布扣

bubuko.com,布布扣
  • 应用层
为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电 子邮件、远程登录(虚拟终端)等协议。
  • 表示层
将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换 为上层能够处理的格式。因此它主要负责数据格式的转换。
具体来说,就是将设备固有的数据格式转换为网络标准传输格式。不同设备 对同一比特流解释的结果可能会不同。因此,使它们保持一致是这一层的主要 作用。
  • 会话层
负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据 传输相关的管理。
  • 传输层
起着可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上 处理。
  • 网络层
将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某 一个地址。因此这一层主要负责寻址和路由选择。
  • 数据链路层 
负责物理层面上互连的、节点之间的通信传输。例如与1个以太网相连的2 个节点之间的通信。
将0、1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)。
  • 物理层
负责0、1比特流(0、1序列)与电压的髙低、光的闪灭之间的互换。





学习笔记之TCP/IP协议分层与OSI参考模型,布布扣,bubuko.com

学习笔记之TCP/IP协议分层与OSI参考模型

标签:android   java   tcp ip   网络协议   通信   

原文地址:http://blog.csdn.net/yelangjueqi/article/details/38269947

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!