开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架.
它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
本篇文章先逐层介绍每一层,再总体介绍整个模型.
应用层:
该层里包含各种应用程序协议,为程序提供接口,他们决定了程序如何去通信。
常见的协议:Telnet、FTP、HTTP、SNMP、SMTP。
http:
超文本传输协议,一种基于TCP/IP模型在WEB服务器与本地浏览器之间传输数据(HTML 文件, 图片文件, 查询结果等)的协议。
Telnet:
远程终端协议,一种基于TCP/IP模型实现本机与WEB服务器或另一个计算机之间的远程控制协议。
其数据在传输过程中不被加密,不建议使用;
FTP:
文件传输协议,一种基于TCP/IP模型适合在二台internet主机上传输文件的协议。
FTP服务器常用22端口作数据连接,21端口作控制连接。
SNMP:
简单网络管理协议,一种基于TCP/IP模型实现internet计算机对多个通信线路的管理。
SMTP :
简单邮件传输协议,一种基于TCP/IP模型实现单个计算机对多个计算机的消息传递;
表示层
该层主要针对数据的编码形式抉择,处理用户信息的表示问题,如编码、数据格式转换和加密解密。
其主要涉及到的协议有:LPP (轻量级表示协议),NBSSN NetBIOS(会话服务协议),XDP(外部数据表示协议)。
会话层
该层主要建立管理和维护会话进程;
传输层
传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。
此外,传输层还要处理端到端的差错控制和流量控制问题。在这一层,数据的单位称为数据段(segment)。
传输层协议的代表包括:TCP(传输控制协议)、UDP(用户数据报协议)、SPX(序列分组交换协议)等。
TCP:
传输控制协议,是TCP/IP协议族中的一条;
1:是面向连接的协议,他是二个端口建立起连接后才能传输数据的一个协议;
TCP建立连接需要三次会话,断开连接需要四次会话;
建立连接过程:客户端向服务器发送一个包含同步序列号的数据段请求;
服务器同意这个请求并向客户端发送一个确认应答报文(ACK)和同步序列号(SYN)的数据段;
客户端向服务器发送一个确认应答(ACK)报文的数据段;
在这个过程中SYN标志位被置为1;握手完成后置为0;
断开连接过程:假设客户端先发起断开请求;
客户端向服务器发送FIN报文请求断开连接,同时将FIN位置为1;
服务端收到连接后,向客户端发送应答报文(ACK),表示收到断开请求;
当服务器准备好断开后,服务器向客户端发送FIN报文,请求断开连接,同时将FIN位置为1;
客户端收到后发送应答报文(ACK),连接断开;
TCP占用系统资源较多,但保证了数据的正确性和顺序性;
传输数据是流模式,收端可以分次收完;
UDP:
用户数据报协议,是TCP/IP协议族中的一员;
1:是非连接的协议,其每次收发都需指定地址;
2:UDP占用系统资源较少,但不保证数据的准确性和顺序性,可能会丢包;
3:UDP是数据报模式,收端必须一次性收完数据;
SPX:
序列分组交换协议,SPX 运行在 IPX 上,主要为 Novell NetWare(NetWare 5.0 之前)系统实现客户机/服务器上应用程序的通信服务,例如BTRIEVE(ISAM 管理器)。
SPX 与 TCP 实现同等功能。最新版本的 NetWar 运行在 TCP/IP 上。
网络层
该层提供IP选择和路由选择,网络层负责对子网间的数据包进行路由选择。
网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。
网络层协议的代表包括:IP(网络之间互联的协议)、IPX(互联网数据包交换协议)、RIP(路由信息协议)、OSPF(开放式最短路径优先)等。
数据链接层
该层提供介质访问和链路管理。
数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
在这一层,数据的单位称为帧(frame)。
数据链路层协议的代表包括:SDLC(同步数据链路控制)、HDLC(高级数据链路控制)、PPP(点对点协议)、STP(生成树协议)、帧中继等。
物理层
该层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。
该层为上层协议提供了一个传输数据的物理媒体。
在这一层,数据的单位称为比特(bit)。
属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
在实际应用的角度上我们来看OSI模型;
想实现二端的通信,先从高层到底层来看
1:我们打开一个通讯软件----------应用层
2:登录选择一个要聊天的对象------------会话层,(建立二者连接)
3:输入聊天信息----------------表示层(数据被转化加密)
4:发送-----------传输层(选择发送数据的方式)---------网络层(选择ip协议,定好实际地址和虚拟地址)---------------物理层(数据转化成电信号传送)
再从底层向高层看
1:抵达目标主机,电信号转化成二进制信息-------------物理层----------数据连接层(拆开数据MAC包头)
2:数据翻译-----------网络层(拆开IP包头)-----------传输层(拆开TCP/UDP包头)
3:数据显示到指定的软件-------------表示层(对加密消息解封)------应用层(显示到通信软件);
在实际生活中:
物理层设备主要是:网线,光纤,电缆,双绞线等;
数据连接层设备主要是:交换机,网桥和网卡
网络层设备是路由器和网桥路由器
传输层,会话层,表示层设备主要有:网关