先说最基础的东西,就是OSI七层模型。
最初,各个厂商的设备,系统,个有个的一套,彼此之间很难互相通信,要建立一个网络,就只能选一家厂商的设备,比如说全IBM的,或全DECnet的,用一种系统,那时UNIX大行其道。后来用Windows的网络也慢慢多了起来,基于将不同网络互连的迫切要求,国际标准化组织ISO于上世纪70年代发布了OSI七层网路模型,以规范化网络设计。那为什么要分层呢?是因为出于将数据处理分步的考虑。总结来说,OSI网七层络模型的用处如下:
1.使不同厂商在开发设备的时候有个公共的标准,让不同厂商开发出来的设备能够互相通信。
2.使不同系统之间能够互相通信,如UNIX、Winsows和Mac。
3.分层使数据处理分步,互相之间不造成影响。
OSI七层网络模型由下至上为1至7层,分别为
物理层(
Physical layer
),数据链路层(
Data link layer
),网络层(
Network layer
),传输层(
Transport layer
),会话层(
Session layer
),表示层(
Presentation layer
),应用层(
Application layer
)。
其中上三层称之为高层,定义应用程序之间的通信和人机界面。什么意思呢,就是上三层负责把电脑能看懂的东西转化为你能看懂的东西,或把你能看懂的东西转化为电脑能看懂的东西。下四层称之为底层,定义的是数据如何端到端的传输(
end-to-end),
物理规范以及数据与光电信号间的转换。先面一层一层的来说明。从上层说起。
1.
应用层,很简单,就是应用程序。这一层负责确定通信对象,并确保由足够的资源用于通信,这些当然都是想要通信的应用程序干的事情。
2.
表示层,负责数据的编码、转化,确保应用层的正常工作。这一层,是将我们看到的界面与二进制间互相转化的地方,就是我们的语言与机器语言间的转化。数据的压缩、解压,加密、解密都发生在这一层。这一层根据不同的应用目的将数据处理为不同的格式,表现出来就是我们看到的各种各样的文件扩展名。
3.
会话层,负责建立、维护、控制会话,区分不同的会话,以及提供单工(Simplex)、半双工(Half duplex)、全双工(Full duplex)三种通信模式的服务。我们平时所知的NFS,RPC,X Windows等都工作在这一层。
4.
传输层,负责分割、组合数据,实现端到端的逻辑连接。数据在上三层是整体的,到了这一层开始被分割,这一层分割后的数据被称为
段(Segment)。
三次握手(Three-way handshake),面向连接(Connection-Oriented)或非面向连接(Connectionless-Oriented)的服务,流控(Flow control)等都发生在这一层。
5.
网络层,负责管理网络地址,定位设备,决定路由。
我们所熟知的
IP
地址和路由器就是工作在这一层。上层的数据段在这一层被分割,封装后叫做
包(Packet),包有两种,一种叫做用户数据包(Data packets),是上层传下来的用户数据;另一种叫路由更新包(Route update packets),是直接由路由器发出来的,用来和其他路由器进行路由信息的交换。
6.
数据链路层,负责准备物理传输,CRC校验,错误通知,网络拓扑,流控等。
我们所熟知的
MAC
地址和交换机都工作在这一层。上层传下来的包在这一层被分割封装后叫做
帧(Frame)。
7.
物理层,就是实实在在的物理链路,负责将数据以比特流的方式发送,接收,就不多说了。