简述TCP/IP协议分层模型

一、TCP/IP与OSI参考模型

这里写图片描述

二、简述

由上图我们可以看到,TCP/IP协议分层模型与OSI参考模型十分相似。之前我介绍过OSI参考模型每层的目的。TCP/IP的每一层都对应有协议,如果我们了解了协议处于其中的哪一层,那么我们就可以对协议的目的有所了解。然后对于每个协议的具体技术要求就可以参考相应的规范了。这里不详述协议本身的协议,就讲述一下各个协议与OSI参考模型中各个分层的对应关系。

三、硬件(物理层)

TCP/IP的最底层是负责数据传输的硬件,如以太网或者电话线路等物理设备。TCP/IP是在网络互联的设备之间能够通信的前提之下提出来的协议。

四、网络接口层(数据链路层)

网络接口层利用以太网中的数据链路层进行通信,因此属于接口层。也可以把它当作让NIC起作用的“驱动程序”。

五、互联网层(网络层)

互联网层使用IP协议,相当于OSI模型中的网络层。
TCP/IP分层中的互联网层和传输层的功能通常是由操作系统提供。尤其是路由器,它必须得实现通过互联网层转发分组数据包的功能。此外,链接互联网的所有主机和路由器都必须实现IP的功能,其他连接互联网的网络设备就没必要一定实现IP或TCP的功能。

IP

IP是跨网络传送数据包,使整个互联网都能收到数据,这期间它使用IP地址作为主机的标识。它不具备重发功能,所以,就算是数据未能发送至目的地址,它也不会重发。所以它属于非可靠性传输协议。

ICMP

当由于一些异常情况,数据未能发送到目的地址时,ICMP协议会给发送端返回一个通知。它有时也用来作诊断网络的健康状况。

ARP

从分组数据包的IP地址中解析出物理地址(MAC地址)的一种协议。

六、传输层

传输层最主要的功能就是要实现应用程序之间的通信。计算机的内部,通常同一时间运行着多个程序。为此,我们必须分清哪些程序与哪些程序正在进行通信,识别这些应用程序的是端口号。

TCP

TCP是一种面向有连接的传输协议。优点在于安全性高,缺点在于多次发包收包会浪费网络流量。

UDP

UDP是一种面向无连接的传输协议。优点在于程序简单,缺点在于安全性低。

七、应用层(会话层以上的分层)

TCP/IP的分层中,将OSI参考模型中的会话层、表示层、应用层的功能都集中到了应用程序中实现。
我这里简单介绍几个应用程序:

WWW

浏览器与服务器之间通信所用的协议是HTTP,它属于OSI应用层的协议。
所传输数据的主要格式是HTML,它属于OSI表示层的协议。

电子邮件

发送电子邮件所用到的协议是SMTP,它只可以发送文本格式,后来电子邮件的格式由MIME协议扩展,就可以发送声音、图像等各种各样的信息。MIME也属于表示层的协议。

文件传输

文件传输指可以将其他计算机硬盘中的文件传输到本机上,或者相反的操作。文件传输所用的协议是FTP。

远程登录

远程登录是指登录到远程的计算机上,使那台计算机上的程序可以运行。
TCP/IP网络中远程登录常用TELNET和SSH两种协议。

网络管理

在TCP/IP中进行网络管理时,采用SNMP协议。使用SNMP管理的主机、网桥、路由器等称作SNMP代理,而进行管理的那一段叫做管理器。SNMP就是管理器和代理之间要用到的协议。

OSI参考模型

OSI参考模型

这里写图片描述
OSI参考模型共分七层,接下来我举例讲解每一层具体的作用。

一个例子

假设现在有两台主机A和B,A主机的用户给B主机的用户发送一封邮件,内容是“你好”。
这里写图片描述
主机A与主机B都采用的OSI分层模型。发送方的数据从应用层一层一层传数据到物理层,发送到B后又由相反的顺序,即从物理层向应用层一层一层传数据。最后用户B可以在应用层看到发送的数据“你好”。
接下来分层来讲解每一层的大概作用:
1.应用层:编写内容“你好”,输入发送方信息与接收方信息。该协议会在所要传送的数据前加一个首部信息。到对方应用层后,会进行相反的操作,然后将信息存储,若内存不足无法存储会返回错误信息,这也是在应用层。
2.表示层:由于异构计算机对信息的编码方式是不同的,这就可能导致不兼容的问题,所以,在表示层将数据都转换为“统一的网络数据格式”,表示层与表示层之间因为要识别编码格式也会加首部信息。
3.会话层:假设你发送了两份邮件,那么,是建立一次链接将两份都发送呢,还是建立一次链接发送一个之后断开,再建立一次链接再发送一份呢?也就是说如何建立链接,何时建立链接,何时断开链接,这些是由会话层负责,会话层在将信息传给下一层之前也会添加首部信息。
4.传输层:传输层负责建立链接与断开链接。另外,如果你发送的一份邮件遇到了某种错误而没由发过去,也是由传输层负责重新建立链接发送的,简单的说,就是传输层保证了数据安全完整的传输。也会为数据添加首部以识别信息。
5.网络层:网络层负责将数据发送至最终的目的地址。但其需要与传输层配合以将数据安全完整的送达。
6.数据链路层:数据链路层负责每一个区间内的通信,网络层与数据链路层都是基于目标地址将数据发送给接收端的,但是网络层负责将数据发送给最终目的地址,而数据链路层负责发送一个分段内的数据。
7.物理层:物理层将数据的0、1转换为电压和脉冲光传输给物理的传输介质,相互直连的设备使用地址实现传输功能。

主机B所做的事情与A正好是相反的,它从物理层开始将收到的数据逐层发送给上一层进行处理,直至安全传输到应用层显示在界面上出现”你好”。