OSI参考模型虽然是ISO给出的,但是ISO在推进OSI协议标准化的进程上是比较缓慢的。而TCP/IP协议的标准化进程是相当快速的,因此现阶段的实际标准是TCP/IP协议。尽管TCP/IP协议与OSI有所差异,但是仍旧与OSI参考模型有一些对应关系。
7 | 应用层 | 应用层(DNS,URL,HTTP,HTML,STMP,SSH等) | 应用程序 |
---|---|---|---|
6 | 表示层 | ||
5 | 会话层 | ||
4 | 传输层 | 传输层(TCP,UDP等) | 操作系统 |
3 | 网络层 | 网络层(ARP,IP,ICMP) | |
2 | 数据链路层 | 数据链路层(以太网,WIFI等) | 设备驱动程序与网络接口 |
1 | 物理层 | 硬件 |
相比较而言,TCP/IP模型更加注重实现,它指出了在计算机上开发那种程序以对应于相应的协议。有时候我们会常常看到硬件和数据链路层是合二为一的,称之为网络通信层。
网络通信层(数据链路层):这层驱动网卡工作。可以理解为驱动程序。
网络层:这层的功能一般由操作系统来提供,在该层路由器和主机必须能实现IP功能。
IP:IP协议是分组交换协议,但是它不具备重发功能。它是不可靠传输协议。
ICMP:一旦发生IP数据包无法到达对端,需要给发送端发送一个异常的通知。ICMP就是为了这一功能而制定的。
ARP:ARP协议是一种可以从分组数据包的IP地址中解析出物理地址(MAC地址)。
传输层:该层的主要功能是为了实现应用程序之间的通信(不同主机上的进程之间的通信)。因此每台主机上的不同进程都具备了不同的端口号。
TCP:TCP是一种面向有连接的传输层协议。它可以保证通信双方之间建立了连接。TCP能够正确处理传输过程中的丢包,传输顺序错乱等异常情况。但是为了建立与断开连接,它至少需要7次的发包和收包,从而导致了网络流量的浪费。此外TCP协议是非常复杂的,不适合视频通话等场合使用。
UDP:UDP是一种面向无连接的传输层协议。它甚至不会关心对端是否存在。它适合于分组较少或者多播,广播通信以及视频通信等。
应用层:TCP/IP将OSI参考模型的会话层,表示层和应用层合在了一起,形成应用层。而这些都交由应用程序去实现。
基于TCP/IP的应用程序框架绝大多数属于客户端/服务器模型(C/S模型)。在这种模式的情形下,服务器一直在等待客户端的请求。客户端可以随时给服务器发送请求,但是服务器并不一定能够正确处理。出现这种情况时,客户端可以再等待片刻之后重发一次请求。
WWW:WWW是互联网能够如此普及的一个重要原因(有了www我们就无需记住IP地址等信息)。用户借助web浏览器输入网址即可访问。web浏览器与服务器之间是通过HTTP协议通信的,传输的数据主要是HTML格式。在这里HTML属于表示层的协议,HTTP属于应用层的协议。
电子邮件:早期的电子邮件只能发送文本信息,使用STMP协议,但是现在扩充的MIME协议可以发送图像,声音等各种各样的信息。这属于OSI参考模型的第6层表示层
文件传输(FTP):文件传输需要使用FTP协议,它能将其他主机的文件下载到本机的本地磁盘上。也能将本地磁盘的文件上传到其他主机上。在文件传输中会建立两个TCP连接,分别是发出传输控制请求的TCP连接和真正传输数据的TCP连接。
远程登录:我们使用云计算的时候,租赁来的云服务器在使用的时候就需要远程登录。TCP/IP常用的远程登录有TELNET和SSH。
上述的5层参考模型是现阶段最好的模型了。它综合了OSI和TCP/IP的优点。