一 OSI网络分层结构
一个主机上运行的网络规则实现的集合称为协议栈,主机利用协议栈接收和发送数据
从单个主机的角度看,每一层与本层的上下两层从逻辑上是分开的,如A的网络层和数据链路层是分开的。每一层为上一层提供服务,依赖于下一层的数据并为上一层提供接口。
不同主机相同层间是对等的,如A的应用层与B的应用层,对等层之间的规则是一致的,但实现不一定相同。如UNIX网络协议栈运行在A上,WINDOWS网络协议栈运行在B上,只要他们的规则一样就可以。
物理层:通信端点间的硬件接口
物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么
数据传输单位:比特(b)
协议:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45
实际设备:网卡,网线,集线器,中继器,调制解调器
数据链路层:将数据分成一个个数据帧,以数据帧为单位传输。有应有答,遇错重发。
通过校验、确认和反馈重发等手段,将不可靠的物理链路改造成对网络层来说无差错的数据链路。数据链路层还要协调收发双方的数据传输速率,即进行流量控制,以防止接收方因来不及处理发送方来的高速数据而导致缓冲器溢出及线路阻塞
该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。
MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制;
LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。
数据链路层的具体工作是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。
数据传输单位:帧(frame)
协议:SDLC、HDLC、PPP、STP(Spanning Tree Protocol)、帧中继
实际设备:网桥,交换机
网络层:将数据分成一定长度的分组,将分组穿过通信子网,从信源选择路径后传到信宿。
将各个子网之间的数据进行路由选择,将数据从一个主机传输到另一个主机,功能包括网际互联,流量控制和拥塞控制。
在实现网络层功能时,需要解决的主要问题如下:
寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。
交换:规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。
路由算法:当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。
连接服务:与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。
数据传输单位:包(packet)
协议:IP、IPX、ICMP、RIP、OSPF(Open ShortestPath First开放式最短路径优先)
实际设备:路由器
传输层:提供不具体网络的高效、经济、透明的端到端数据传输服务。
将上层的数据处理为分段数据,提供可靠或不可靠的传输,为上层掩盖下层细节,保证会话层的数据信息传输到另一方的会话层
传输层的主要功能如下:
传输连接管理:提供建立、维护和拆除传输连接的功能。传输层在网络层的基础上为高层提供“面向连接”和“面向无接连”的两种服务。
处理传输差错:提供可靠的“面向连接”和不太可靠的“面向无连接”的数据传输服务、差错控制和流量控制。在提供“面向连接”服务时,通过这一层传输的数据将由目标设备确认,如果在指定的时间内未收到确认信息,数据将被重发。
监控服务质量。
数据传输单位:数据段(segment)
协议:TCP、UDP、SPX
会话层:是用户应用程序和网络之间的接口
主要任务是向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。
用户可以按照半双工、单工和全双工的方式建立会话。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC(介质访问控制子层)地址或网络层的逻辑地址不同,它们是为用户专门设计的,更便于用户记忆。域名(DN)就是一种网络上使用的远程地址例如:www.3721.com就是一个域名
协议:NFS、SQL、RPC、X-WINDOWS、ASP(APPTALK会话协议)、SCP
表示层:网络传输的数据进行交换。
对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等
表示层的具体功能如下:
数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
数据的编码:处理字符集和数字的转换。例如由于用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等都可以有不同的表示方式,因此,在设备之间需要具有在不同字符集或格式之间转换的功能。
压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复。
数据的加密和解密:可以提高网络的安全性。
协议: 文本:ASCII,EBCDIC
图形:TIFF,JPEG,GIF,PICT
声音:MIDI,MPEG,QUICKTIME
应用层:提供应用程序访问OSI环境的手段。
它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作
应用层的主要功能如下:
用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。
实现各种服务:该层具有的各种应用程序可以完成和实现用户请求的各种服务。
协议:TELNET、FTP、TFTP、SMTP、SNMP、HTTP、BOOTP、DHCP、DNS
二 OSI数据传输
封装过程:
1 数据由应用程序调用应用层接口,进入协议栈的应用层。在应用层数据被协议栈加上应用层的报头,包装成应用层协议数据单元,然后传递给协议栈的下一层-表示层
2 与应用层一样,数据每到一层被协议栈加上相应报头,但是在数据链路层,还要加上数据链路层的尾部,打包成一个数据帧,然后传递给物理层。(数据链路层的尾部通常是数据的校验和,一般采用CRC16的校验方式)
3 在物理层,主机A的网络设备是将数据链路层传递过来的数据发送到网络上。
解封过程:
1 主机B的物理层网络设备接收到数据到来的信号后,将接收到的数据保存下来,然后传递给他的上一层-数据链路层
2 数据链路层把从物理层获得的数据去掉头部和尾部后,进行数据校验,发现没有错,把数据传递给上一层-网络层
3 其他层分别从其下一层获得的数据一层层剥去报头,传递给对应的上一层
4 最后主机A发送的数据到达主机B上的应用程序中