- LwIP应用开发实战指南:基于STM32
- 刘火良 杨森
- 621字
- 2023-07-10 16:09:17
1.2 网络协议的分层模型
TCP/IP是众多网络协议的集合,包括ARP、IP、ICMP、UDP、TCP、DNS、HTTP、FTP、MQTT等。这些协议按照功能,可以划分为几个不同的层次,如图1-1所示。我们在1.1节中介绍的HTTP、FTP、MQTT隶属于应用层。那么TCP/IP为什么需要分层,分层的依据又是什么呢?
图1-1 TCP/IP的分层
TCP/IP协议栈中不同协议所完成的功能是不一样的,某些协议的实现要依赖于其他协议,依据这种依赖关系,可以将协议栈分层。在图1-1中,低层协议为相邻的上层协议提供服务,是上层协议得以实现的基础。
其中,物理层(PHY)规定了传输信号所需要的物理电平、介质特征。数据链路层(MAC)规定了数据帧能被网卡接收的条件,最常见的方式是利用网卡的MAC地址,发送方会在欲发送的数据帧的首部加上接收方网卡的MAC地址信息,接收方只有监听到属于自己的MAC地址信息后,才会去接收并处理该数据。每台网络设备都应该有自己的网络地址,网络层规定了主机的网络地址该如何定义,以及如何在网络地址和MAC地址之间进行映射,即ARP,还实现了数据包在主机之间的传递,而一台主机内部可能运行着多个网络程序。传输层可以区分数据包是属于哪一个应用程序的,可以说传输层实现了数据包端到端的传递。另外,数据包在传输过程中可能会出现丢包、乱序和重复的现象,网络层并没有提供应对这些错误的机制,而传输层可以解决这些问题,如TCP。应用层以下的各层完成了数据的传递,应用层则决定了你如何应用和处理这些数据。之所以会有许多应用层协议,是因为互联网中传递的数据种类很多、差异很大、应用场景十分多样。