2013年8月26日星期一

Cloud_016:OSI 七层模型 (整理)

最近在看虚拟化的东东,感觉有必要重温一下微软当年提出的 OSI(Open System Interconnection,开放式系统互联)七层模型。
微软认为,任何两个系统之间要传输数据,必须经过七层模型:


1.物理层(Physical Layer)
OSI的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。

2.数据链路层(Data Link Layer)
它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。

3. 网络层(Network Layer)
这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。

4. 传输层(Transport Layer)
这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。

5. 会话层(Session Layer)
它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。

6. 表示层(Presentation Layer)
这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。

7. 应用层(Application Layer)
与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:telnet,HTTP,FTP,NFS,SMTP等。

可以看出,各个层所涵盖的功能和协议都不相同,具体如下图所示:


其中,1-3层是面向网络的,一般由网络管理员管理;4-7层是面向用户的,一般由开发人员经常可以写程序调用的。

更详细的7层功能和协议图如下:

参考文献:
1. http://blog.163.com/quan2006@126/blog/static/1702286352013117850256/
2. http://baike.baidu.com/view/547338.htm

1 条评论: