当前位置:首页 >> >>

一种嵌入式TCP/IP协议栈的设计与实现_图文

长江大学学报 ( 自然 科 学 版 ) 20 年 1 月 第 5 第 4 :理工    08 2 卷 期 Jun l f a gz  nvri N t c E i or a o  h te ie t   Y U s y( a  i dt S   ) D c2 0 .Vo.  . :S i E g e. 0 8 15No 4 c & n  



种嵌 入 式 T P I C /P协 议 栈 的设 计 与 实现 

冯 翠 丽 ,刘 波 涛  ( 长江大学计算机科学学院, 湖北 荆州 442) 303  
[ 要]嵌入 式设备 的网络化是 当前嵌入武系统研究的一个热点 问题 ,其 实现方式可 以用裁 减协议栈来 实 摘  
现 。结 合 嵌 入 式 We 服 务 器 ,提 出 了一种 裁减 协议 栈 的 思路 , 阐 述 了各 层 协 议 的取 舍 及 实 现 , 最 后 给 出 b  
协 议 栈 流 程 图。  

[ 键 词 ] 嵌 入 武 网 络 ;T P I ; 协议 栈 ;W e 务 器  关 C /P b服 [ 中图 分 类 号 ] T 33 0   P 9.9 [ 献标识码]A 文   [ 章 编 号 ]1 7 —10 (0 8 4一 3 一 3 文 6 3 4 9 2 0 )O N3 1 O 

嵌 入式 设备 的 网络化 已是 大势所 趋[ ] 1 ,从 技术 上讲 ,让嵌 人式 系统 联人 Itre 没 有一 个 固定 的    n en t

方案 ,目前 采用 的方法 可 以归纳 为 2种 ,即代 理和直 接 方式[ 。这 2 方式 的优 缺 点很 明显 ,其 原 因  3  ] 种
在 于这些 方案 在解 决 T P I C /P协议 的复杂 性 和嵌入 式 系统功 能相对 简单 这一对 矛盾 时 ,都 是 向一个 方 向  走 ——实 现 复杂 T P I C /P。如果裁 减 T P I C /P协 议 栈[ ,则可 以实现 功 能完 善 和使 用方 便 简捷 的嵌 入式  7 ] 系统[ 8 州 。笔者 以实 现嵌入 式 We b服务 器 为例 ,探讨 了一种 裁减 TC /P协 议栈 方 法 ,试 验表 明 该裁  PI
减 方法切 实可 行 。  

1 协 议 的取 舍 分析  
众所 周 知 ,T P I C /P协 议 族 由 几 百 种 网 络 
应用层 

通信协议 组 成 。不 可 能 也 没有 必 要 在嵌 入 式 系 
统 中实现 T P I C /P协议族 中所有 的协 议 。 因此 ,   必须针 对 特定 的嵌 入 式 应 用 有 选 择 性 地 对 这 些 
协议进 行取 舍 。TC /P通 常被认 为是 一个 4层  PI
传 输层 

FP N 、S P  T  D S mI、 T L E 、H T 等  EN T TP

TP D  c 、U P

协议系统 …

应用 层 、传 输 层 、 网络 层 、数 

网络层 

I 、I P I姗’ P aI、 G  

据链路层 及物 理 层 ,每 一 层 都 有 相 应 的协 议 集 
合 来实现 不 同的 功 能 ,如 图 1 ( )所 示 。笔者  a

要 实现一 个嵌 入式 we b服 务 器 ,其 核心 协议 栈  的裁 减如 图 1 ( )所 示 。下面 进行具 体分 析 。 b  
1 )应 用层 协议 的取 舍 应用 层 协 议 的选 择 

数 据路  及物 理层 

A P A P  R 、RR 、 网络接 口 

()TP I协议 层次 图  a c/P

( b )裁 减后实 现的 协议 

完全依 赖 于系统 要 实 现 的特 定 功 能 和应 用 ,例 

图 1 T PI   C /P协议 簇 及 裁 减 后 的 协 议 栈 对 比 图  

如 ,如 果 系统要 想用 E i来 发送 自己的信 息 ,那 么 就 需实 现 S P协 议 。考 虑 到本 文 要实 现 的是通  mal MT 过 浏览器 方式 来访 问 的 we b服务 器 ,因此 应该 选择 实 现 HTTP协 议 。   2 运输 层协 议 的取 舍 ) 运输 层选择 的协议 必须 和应 用 层所 选 择 的协 议 相配 套[ 。如 果运 输 层 只实  8 ] 现 了 UD P协议 ,而没有 实 现 TC P协议 ,那 么 在 应 用层 就无 法 实 现 与 T P有关 的协 议 ,例 如 HT 、 C TP   F P和 S T MTP等 。 因此 ,考 虑到 本文应 用 层实 现 的 是 HTT P协议 ,于 是 运输 层 就选 择 了实现 TC P协 
议 而不需 要实现 UD P协议 。  

3 网络层 协议 的取 舍  I ) P协议 是 T P I C /P族 的核 心 协议 ,它是 一 个 不 可靠 的 、尽 最 大 努力 投 递 

的 、无连 接 的分 组投 递 系统 ,它提供 了一 个其 他一 切 高层协 议赖 以存在 的基础 ,使 异构 网络之 间 的通 信  成为可能 。因此 ,为了让 嵌入式 We b服务 器跨越 不 同 的网络进 行通 信 ,必 须实 现 I P协议 ,而没 有必 要 
实 现 I MP GMP及其 它 网络层协 议 。 C 、I  
[ 收稿 日期]2 0 —0 0 8 9—1  2 [ 作者简介]冯翠丽 ( 90一 ,女 ,2 0 年大 学毕业 ,助教 ,现主要从事网络技术方面的教学与研究工作。 18 ) 03  

?3 2 ? 3  

长江大学学报 ( 自然 科 学 版 )  

20 年 l 08 2月 

4 )链 路层 协议 的取舍

在选 择链 路层 协议 时要 充 分 考虑 系 统接 入 I tr e 时所 采 用接 人 方式 ,笔  nen t

者采用 了以太 网方式  来接 入 Itr e。而 以太 网遵 循 I E 8 2 3协议 ,该协 议 由网卡集成 实现 ,从而  。   n en t E E0.

协议栈 只需 要调 用其驱 动 接 口…  。然 而 ,由于 以太 网上 数 据 的传 愉 是 以网卡 的 MAC地址 来 进 行 识 别  的 ,而 网络 数据 包 中使 用 的是 I P地址 ,这就要 求协 议栈 要有 实现 I P地址 到 MA C地址 转换 的功能 ,也 
就是说 ,协议 栈 必须 实现 AR P协 议 。  

2 协 议栈 的实 现 
1 )以 太 网接 口层 的 实现  以太 网接 口层 实 际上是 ARP P协 议层 与驱动 之间 的一 个 接 口层 ,它对  、I

上 层 ( P层 及 I AR P层)屏 蔽 R 8 1 AS的 接收/ TL 0 9 发送 驱 动 的 实 现 ,对 下 屏 蔽 数据 包类 型 的不 同 而采 
用 统一 的接 收/ 发送 函数接 口[ 。 g  ]

2 )嵌 入 式 ARP的 实现

ARP协 议 可以细 分为 AR P请求 协议 和 ARP响应协议 2种 :为 了使 I E浏 

览 器能够 主动访 问 到本 文 实现 的系统 ,嵌 入 式 AR P就 必须 要 实 现 AR P响应 协 议 ;考 虑 到服 务 器 是被 

动接收服务请 求 ,可 以不 用实现 ARP请 求协议 。为 了保 证 系统 在对 外通 信 时能 够迅 速地 填 充 以太 帧 的  目的 MAC地 址 ,可 以让 嵌入 式 AR P的请 求 协议 在 本 地 建立 并 维护 一 个 AR P缓 存 表[ 1 引,用 该 表来 保 
存 1 P地址 到 MAC地址 的映射 。  

3 )嵌 入式 I P的 实现  由于 I 项 多用于 I P选 P数据 包 的 路 由 ,因此 ,嵌入 式 I P可 以不 支持 选 项字  段 ;服务类 型字 段 主要是 为 了各 种服务 而设 置的 ,它对 于 嵌 入式 服务 来说 没 有 意义 ;在 嵌 入式 系统 中 ,   没 有必要 容纳 巨量数 据包 ,并且 I P包重 组需要 浪 费宝贵 的 R AM 空 间 ,故嵌 入式 I P可 以不支 持分 片传 
输 ,也就 是说 系统需 要通 过限制 高层发 送 的数据包 大小来 避 免 I P包 被分片 。由于嵌入 式 I P不需要 考 虑  路 由、特 殊服 务和分 片重 组 ,故 设计嵌 入式 l P只需 考 虑 3个 模块 :接收 模块 、发 送 模块 和校 验和 的 计 

算模 块 。接收模 块负 责处 理从底 层协议 接 收到 的 I P包 、解 析 其 I P首 部及 根 据 协议 字段 的值 将 该 I P包 

交付 到相 应的 高层协议 处 理模块 ;发送 模块则 负 责处理从 高 层协议 发送 下来 的 I 、填充 I 部并 将  P包 P首
之交 由以太层发 送模块 处 理 。  

4 )嵌 入 式 TC P的 实现

① T P首部实 现 。在嵌 入式 TC C P中 ,可 以使 用 固定 大小 的 窗 口和 简单 的 

确认 机制 ( 即一个包对 应 一个确 认 )来 简化 程序 以节 约 R AM 空 间 ,因此 它不 需 要 窗 口扩 大 因子选 项 ;   嵌 入式 T P不需 要 动 态 定 义超 时时 间 。也 就 是 说 ,它不 需 要 时 间 戳选 项 。② T P重 传 机 制 的实 现 。 C C   T P的重传机 制是 TC C P成为一 种可 靠 协议 的 基础 。在 标 准 的 T P协 议 实现 中 ,重 传 机 制 的 核心 是 计  C 算 R O ( ern mis nT me t ,为简化 T P的重传 可以采用 了最 简化 的方式—— 取 固定 的大小 的  T R ta s si   i Ou) o C

R O。③TC T B的实 现 。为 了实 现 T P面 向连接 的 、可 靠 的服务 ,需要使 用一个 结构 来维 持 每条 连接 的  C
相 关信息 ,该 结构被 称 为 TC ( 输控 制 块) B 传 。④ T P状 态 机 的剪 裁 。T P的数 据 交 互 可分 为 3个 阶  C C

段 :建 立连接 、传输 数据 和终 止连接 。为 了清 
楚 地跟 踪 这 3个 阶 段 中 所 发 生 的 不 同 事 件 ,  

T P使 用 了状 态 机 。状 态 机 越 复杂 ,维 护 的 花  C
费就越大 ,对 系统 的 存 储 能 力 和 运 算 能 力 要 求 

就越高 。因 此必 须对 状 态 机 进 行 简 化 ,简 化 后 
的 TC P状 态 机 如 图 2所 示 。  

5 )嵌入 式 HT P 的 实现  而对 一 个 嵌 入  T 式 We b服务 器来说 ,为 了给客 户端 提 供基 本 的 

网页信息 ,它必 须支持 GE T方 法 ;再 者 为 了能  够让 客户 端管 理 员 远 程 控 制 此 系 统 ,它 必 须 能 

够 接收客 户端 上传 的 信 息 ,这 里 可 以 采 用 最 常 
见 的 P T 方 法 来 实 现 。 也 就 是 说 ,嵌 入 式  OS we b服务 器没 有 必 要 支 持 所 有 的 HT TP方法 ,   只需 要处 理常用 的 G T 及 P T方 法 即可 。 E OS  

— —,表示服务端异常状态变 为了阐述方便, —— ! 表示服务器正 ! = 常状态变迁f 把事件描 \  
迁\ 述为:收到信息/ 发送信息/  
图 2 裁 减 后 的 T P状态 机  C

第 5卷 第 4期 :理工 

冯 翠 丽 等 :一 种 嵌 入 式 T P I 议 栈 的设 计 与 实现   C /P协

?3 3 ? 3  

6 协议栈 工作 流程 图 综 合考 虑 以上实 现 ,笔者设 计 的协议栈 工作 流程 如 图 3 )   所示 。  



T P C 

Ro ve


Tp0 c  

P ST A   O  P GE

过 滤T P C 包 

H T  T P

方法 

分配 R M A  存 放 网页 

T P 态 转 换  C状

添 加 I 首部  P

I  A K T PPCE 

图 3 笔 者 设计 的 协 议栈 工作 流 程 图 

3 结 

语 

笔者针 对要 实现一 个嵌入 式 We b服 务器 应 用 ,提 出了一 种 裁减 TC /P协 议 栈 的方法 ,重点 讨 论  PI

了裁 减依据 的确 定原则 。依据 该 实 现原 则 而 开发 的嵌 入式 w b服务 器 运行 稳 定 、可 靠 ,从 而证 明了 该  e
裁减 思路及 原则 可行性 。   ‘  

, 

[ 参考 文献]  

[ ] 任 会 平 ,王 平 ,徐 橼 .低 成 本嵌 入 式 we 1 b服 务 器 的 研 究 [] .微 计 算机 信 息 ,2 0 J 08,2 (02 :2  ̄ 2 . 4 1—) 3 5   [ ] 钟 建 国 . 入式 Itr e 2 嵌 nen t系统 中 TC /P协 议 的 实 现 [] .陕 西 师 范 大 学学 报 ( PI J 自然 科 学 版 ) 0 8 6 () 6 1 . ,2 0 ,3 4 :1  ̄ 9   [ 3 王 晓 锋 。郑 建 彬 .基 于嵌 入式 TC /P的 在 线 签 名 数 据 采 集 系 统 [] . 汉 理 工 大 学 学 报 ( 息 与 管 理 工 程版 ) 2 0 ,3 ( ) 4 3 PI J 武 信 , 0 8 0 1 :4 


4 . 7 

[ ] 薛 静 . 入 式 Itr e 接人 技 术 研 究 [] .学 科 教 学 .2 0 , () 5 7 . 4 嵌 nen t J 0 8 4 :7  ̄ 5  [ ] 王 怀 德 ,郭 文 JI 入式 We 5 i.嵌 b服 务器 的研 究 与设 计 口] .计 算 机 工 程 与设 计 ,2 0 ,2 (O :2 2  ̄ 2 2 . 08 9 1) 50 52  

[ ]周志光,鲍祖 尚,朱志伟 ,等 .基于嵌入式 T /P协议 的信息 家电的设计与实现 [ 3.微计算机 信息 ( 6 CP I J 嵌入式 与 S C) 3(— O ,2 6 
2 :5 ) 5~ 64  .  

[3胡海 .嵌入式 T P I 7 C /P栈研究与实现 .西南交通大学,2 0 ,() 5 7 0 5 4 :9 ~9.  
[]陈 立 家 ,焦 战 立 。熊 文 龙 .基 于 精 简 T P I 8 C /P协议 栈 网络 服务 器 的 实 现 [] .武 汉 理 工 大 学 学 报 ( 通 科 学 与 工 程 版 ),2 0 ,3  J 交 07 1
( : 5 5 5 8  3) 6~ 6.

[ ]陈立 家,焦战立,熊文龙 . 于精简 TC /P协议栈 网络服务器的实现 [].武汉理工大学学报 , 07, 1 9 基 PI J 2 0 3  [ 0 宫晨,应腾云 ,颜钢锋 .基于嵌入式的家电网络控制系统 [].计算机应用 , 0 7 5 :4  ̄5 . 13 J 2 0 ,( ) 9 1 
自然 科 学 版 ) 0 8   ,2 0 ,5 [ 1 刘 波涛 ,冯 翠 丽 ,王 青 海 ,等 .应 用 R S 1 AS的 嵌 入 式 We 1] TL 0 9 b服 务 器 硬 件 实 现 [] .长 江 大 学 学 报 ( J
( ) 7 ~7 . 1: 5 8 

[ 辑] 易 国华  编