辽宁大学学报
自然科学版
第39卷
第1期2012年
JOURNAL OF LIAONING UNIVERSITY
Natural Sciences Edition
Vol.39
No.1
2012
基于嵌入式Linux 系统中网络通信研究与实现
张
杨
(辽宁大学计算中心,辽宁沈阳110036)
摘
要:首先分析了TCP /IP 协议栈工作的原理,然后在linux 系统下简化了TCP 协议状态顺序,最后通过
实例成功的实现了在linux 操作系统下,服务器与客户端之间的网络通信,并且下载到开发板上实现了PC 机与开发板之间的通信.关键词:linux ;网络通信;TCP /IP 中图分类号:TP393
文献标识码:A
文章编号:1000-5846(2012)01-0058-03*
作者简介:张杨(1966-),山东黄县人,实验师,研究方向为计算机网络与应用.
收稿日期:2012-01-03
在当今网络化中,正在使用的网络参考模型主要有两种:ISO /OSI 参考模型和TCP /IP 参考模型.ISO /OSI 参考模型主要把网络协议分为7层,是层层递进的关系.而目前网络中使用最广泛的属于TCP /IP 参考模型,它主要把网络协议分为4层,分别是:链路层、网络层、传输层和应用层,下面我们开始介绍TCP /IP 参考模型的4层协议的工作原理.
1嵌入式TCP/IP 协议栈的工作原理
TCP /IP 可以分为以上4层协议,每一层都有相应的协议集合来实现不同的功能,每一层协议都为上一层协议提供支持.
(1)链路层协
议
链路层,有时也称作网络接口层,主要是提供主机与网络之间的接口.该层协议的主要功能是:在相邻的两个结点之间建立、维持和释放一条或多条数据链路,将数据按一定的帧格式组织起来进行传输,保证数据传输无差错、按顺序到达目的地.目前该层协议主要分为面向字符型协议和面向位协议两大类.
(2)网络层协议
网络层主要实现路由路径的选择,
目前IP 协议主要还是IPv4编址,表示一个IP 共有32位二进制编码组成,其中分为A 类、
B 类和
C 类地址.A 类地址包括第一字节为网络地址,后三个字节为主机地址
(子网掩码为255.0.0.0),最大可连接主机数为224
-2.B
类地址第一和第二字节为网络地址,后两字节为主机地
址(子网掩码为255.255.0.0),最大可连接主机数为2
16-2.C 类地址前三个字节为网络地址,最后一个字节为主机地址(子网掩码为255.255.255.0),最大可连接主机数为254个.
(3)传输层协议
传输层主要是和TCP 协议和UDP 协议相关联,但是TCP 协议和UDP 协议完全不同,TCP 协议主要面向的是连接的协议,连接的两点同时收发数据包,是以全双工的方式进行通信的;而UDP 是面向无连接的协议,只能提供简单的报文传递,但不能保证包的到达,即使存在这个缺点,UDP 仍然被应用层协议经常使用.
(4)应用层协议
应用层主要是通过传输层TCP /IP 协议提供一些应用程序来实现一些功能,包括TELNET 远程登录、FTP 文件传输、
POP 、SMTP 邮件传输收发等应用.目前协议开发方面做的大部分工作都是发生在应用层上的.
2TCP 协议的简化设计
从TCP 协议提供的数据流传输方式来分析,嵌入式
操作系统中直接实现标准的TCP 协议非常困难,所以我们应该设计简化TCP 协议.标准的TCP 协议如图1所示,图中实线代表客户端正常状态变迁,虚线代表服务器端