OSI的七层模型与TCP/IP的四层模型对应:
- 从上图来看,我们可以很直观的看出来它们的对应关系。其中,TCP/IP模型的应用层对应于OSI的上三层。所以,为了叙述的更细致,我们来看OSI模型七层的功能:
- 物理层:物理层主要负责的任务就是 确定如何在传输信道上传输比特流,以及网络的物理结构,传输介质的规程和编码规则等。
- 数据链路层:主要是负责相邻节点之间的通信,并且为这个通信建立一条无差错的信道。
- 网络层:主要负责点对点的通信,意思就是负责从发送方电脑发出的数据能够到达接收方电脑,其中涉及到IP地址的寻址和数据发送的路径选择。但是,需要注意的是,网络层只提供尽力而为的服务,不保证数据的传输质量,比如数据在传输过程中,可能会出错、乱序、丢失。
- 传输层:主要负责端到端的通信,这里的“端”指的是端口,可以理解成为具体指某一个应用进程。传输层最常用的有两个协议,一个是TCP协议,一个是UDP协议,TCP保证可靠的传输,UDP不保证传输质量。
- 会话层:控制着通信双方的会话过程,一般一次会话有三个步骤:会话建立,传输数据,会话结束。
- 表示层:对数据进行格式转换,比如数据的压缩、解压缩和加密解密。
- 应用层:应用层是直接面向用户的一层,用户可以完成多种功能,比如文件下载、远程登录、电子邮件等。
TCP/IP层次的工作过程:
- 在理解了上面的各层的功能之后,我们整体来看一下。
- 在这里,需要说明的是,在这个层次模型中,每一层都接受它的下一层提供的服务,而同时也为它的上一层提供服务。举个栗子,比如说,传输层,接受网络层给它提供的服务,同时它也为应用层提供服务。
- 那么,怎么提供服务呢,其实就是相邻两层之间会交换一些命令,这些命令,我们叫做服务原语。也就是,相邻的两层通过这些服务原语来提供服务,或者接受服务。 还是上面的例子,网络层要给传输层提供服务的时候,网络层产生了服务原语,怎么把这些服务原语交给传输层呢,这个时候,传输层会有一个SAP,叫做服务访问点。每一层为上一层提供服务,或者每一层接受下一层的服务的时候,就是通过SAP来接受服务原语。
-
物理层SAP 电脑上的网卡接口 链路层SAP MAC地址 网络层SAP ip地址 传输层SAP 端口号 应用层SAP 用户界面
数据发送过程:
-
读者们会发现,在上面的TCP/IP模型图中,有几个名词,分别是报文、TCP分组、IP数据报、帧。
这些名词,我们把它们叫做PDU,也就是协议数据单元。
-
其中,TCP分组也叫作报文段,IP数据报也叫IP数据包或者IP分组,其实说的都是一回事。
-
怎么理解PDU的概念呢?下面,我们来看数据的发送过程就可以明白了。
-
A用户要和B用户发信息的话,A写好了信息,发送出去,要先经过A的应用层,信息在应用层的名字叫做报文,然后向下,到了传输层,选择TCP协议或者UDP协议,二选一,传输层的TCP会把报文分段,加上TCP首部,形成报文段,向下交给网络层,而UDP不会分段,直接把整个报文加上UDP首部交给网络层,到了网络层,加上IP首部,封装成了IP数据包,向下交给数据链路层,加上帧头和帧尾,封装成数据帧,最后到达物理层,转换为比特流,在通信线路上传送。到达了B用户这里之后,先经过物理层,再经过数据链路层,网络层,传输层,应用层,一层一层的解封装,最终还原出最原始的A的信息。
-
应用层PDU 报文 传输层PDU 报文或报文段 网络层PDU 分组(或者叫ip数据包,或者叫ip数据报) 链路层PDU 帧 物理层PDU 比特(bit)