1
以太网及硬件 TCP/IP 协议栈应用
以太网在各个领域和行业有着非常广泛和深入的应用,这主要源于以太网的
高度灵活性和较易实现的特点。因为以太网具有组网简单,成本低廉,兼容性优
秀,连接可靠,以及拓扑调整方便的优点,在作为智能家居,物联网或者无线传
感网络的网关方面有其他的网络技术所不具备的优势,从而得到大力的发展和应
用。本文将详细介绍如何使嵌入式系统接入到以太网,如何采用硬件协议栈的方
式使您的方案或应用快速高效的连接到互联网,如何实现 TCP/IP 的通信,以及
如何实现上层应用层协议等等。
2
第
1
章 以太网模型
以太网的实现采用层次结构的概念,每一层都有自己的功能,就像建筑物一
样,每一层都靠下一层支持,每一层也都为上一层功能的实现打好基础。
实际上,用户接触到的只是最上面的一层,根本感觉不到底层的存在。要理
解以太网,必须从最下层开始,自下而上理解每一层的功能。
1.1 五层结构
以太网模型有不同的分层方式,ISO(国际标准组织)提出 OSI 七层网络模
型,自上而下分别为:应用层、表示层、会话层、传输层、网络层、数据链路层、
物理层。OSI 七层网络模型主要是为了解决异种网络互联时所遇到的兼容性问题。
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,也使网络的不
同功能模块承担起不同的职责。由于互联网网络体系结构以 TCP/IP 协议为核心,
因而基于 TCP/IP 的参考模型将以太网可以分成四层,自上而下分别为:应用层、
传输层、网络互联层、网络接口层。
根据我自己的理解,把以太网分成五层比较容易解释。这五层结构不仅符合
OSI 结构强调的不同层次承担不同职责的特点,同时也符合 TCP/IP 协议参考模
型协议之间相互支撑、相互调用的逻辑关系。
图 1-1-1 以太网五层模型
3
如上图所示,最底下的一层叫做“物理层”,也叫“PHY 层”,最上面的一层
叫做“应用层”,中间的三层(自下而上)分别是“链路层”,也叫“MAC 层”、
“网络层”和“传输层”。越下面的层,越靠近硬件;越上面的层,越靠近用户。
1.2 层与协议
每一层都有其各自的功能。为了实现这些功能,就需要大家都遵守一个共同
的规则。
那么这个共同的规则,就叫做“协议”(Protocol)。以太网的每一层都定义了
很多协议。这些协议的总称就叫做“互联网协议”(Internet Protocol Suite)。它
们是互联网的核心,下面介绍每一层的功能,及其中的主要协议。
4
第
2
章 以太网分层概述
下面对以太网的五层结构模型进行详细解释,让大家对网络的通信过程、每
层的具体定义和功能、数据收发机制以及要遵守的协议进行理解。首先,大家要
知道在不同层由于封包机制不同,数据的叫法也不同,这样有利于大家更好的理
解下面的内容。传输层叫数据段(Segment),网络层叫数据报(Datagram),
链路层叫数据帧(Frame)。
2.1 物理层
我们从最底下的一层开始。
物理层也叫“PHY 层”,它负责将上层所要发送的信息编码成电流脉冲或其它
信号用于网上传输。
图 2-1-1 计算机的网络连接
物理层由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、
线的状态和时钟要求、数据编码和数据传输用的连接器。如最常用的 RS-232 规
范、10BASE-T 的曼彻斯特编码以及 RJ-45 就属于这一层。所有比物理层高的层
都通过事先定义好的接口而与它通话。
5
2.2
链路层
2.2.1 定义
数据链路层通过物理网络链路提供可靠的数据传输。不同的数据链路层定义
了不同的网络和协议特征,其中包括物理编址、网络拓扑结构、错误校验、帧序
列以及流控。
物理编址(相对应的是网络编址)定义了设备在数据链路层的编址方式;网
络拓扑结构定义了设备的物理连接方式,如总线拓扑结构和环拓扑结构;错误校
验向发生传输错误的上层协议告警;数据帧序列重新整理并传输除序列以外的帧;
流控可能延缓数据的传输,以使接收设备不会因为在某一时刻接收到超过其处理
能力的信息流而崩溃。
2.2.2 以太网协议
早期的时候,每家公司都有自己的电信号分组方式,后来逐渐形成了以 “以
太网(Ethernet)”为主的一整套协议。
以太网规定,一组电信号构成一个数据包,叫做“帧”(Frame)。每一帧分
成三个部分:以太网首部、数据及以太网尾部。
图 2-2-1 以太网数据帧结构
“以太网首部”包含数据帧的一些说明项,比如发送者、接收者、数据类型
等等;“数据”部分则是数据的具体内容;“以太网尾部”则是 CRC 校验码。
“以太网首部”的长度固定为 14 字节。“数据”的长度,最短为 46 字节,
最长为 1500 字节。“以太网尾部”的长度固定位 4 字节。因此,整个“帧”最
短为 64 字节,最长为 1518 字节。如果数据很长,就必须分割成多个帧进行发
送。
评论0