标准 TCP/IP 协议是用于计算机通信的一组协议,通常称为 TCP/IP 协议栈,通俗讲就是符合以太网通信要求的代码集合,一般要求它可以实现每个层对应的协议,比如应用层的 HTTP、FTP、DNS、SMTP 协议,传输层的 TCP、UDP 协议、网络层的 IP、ICMP 协议等等。关于 TCP/IP 协议详细内容推荐阅读《TCP-IP 详解》和《用 TCP/IP 进行网际互连》理解。
Windows 操作系统、UNIX 类操作系统都有自己的一套方法来实现 TCP/IP 通信协议,它们都提供非常完整的 TCP/IP 协议。对于一般的嵌入式设备,受制于硬件条件没办法支持使用在 Window 或 UNIX 类操作系统的运行的 TCP/IP 协议栈,一般只能使用简化版本的TCP/IP 协议栈,目前开源的适合嵌入式的有 uIP、TinyTCP、uC/TCP-IP、LwIP 等等。其中LwIP 是目前在嵌入式网络领域被讨论和使用广泛的协议栈。本章内容其中一个目的就是移植 LwIP 到开发板上运行。
1、为什么需要协议栈
物理层主要定义物理介质性质,MAC 子层负责与物理层进行数据交接,这两部分是与硬件紧密联系的,就嵌入式控制芯片来说,很多都内部集成了 MAC 控制器,完成 MAC 子层功能,所以依靠这部分功能是可以实现两个设备数据交换,而时间传输的数据就是 MAC数据包,发送端封装好数据包,接收端则解封数据包得到可用数据,这样的一个模型与使用 USART 控制器实现数据传输是非常类似的。但如果将以太网运用在如此基础的功能上,完全是大材小用,因为以太网具有传输速度快、可传输距离远、支持