基于ARM的嵌入式TCPip协议的实现

基于ARM的嵌入式TCP/IP协议的实现

该系统可以将数据按网络协议处理,实现数据的以太网传输。其是一套基于嵌入式实时操作系统的嵌入式网络软件开发平台,即在μC/OS—II的平台上,实现ARM微处理器的TCP/IP协议,在此平台之上,可以方便地进行嵌入式应用系统的开发。

0 引言

以太网具有通用性强、技术成熟、带宽迅速增加等特性,工业控制领域出现嵌入式技术,尤其是ARM技术的发展和DSP在工业控制领域的广泛应用,利用嵌入式技术实现以太网通信已经不难见到。嵌入式实时操作系统接入网络后将使远程监测、远程控制、远程诊断和远程维护变得越来越容易。从根本上讲,嵌入式设备接入网络,当前基本采用基于TCP/IP的通信协议。该方案以LPC2210为核心元件研究基于ARM的嵌入式TCP/IP协议的实现的硬件电路,同时在μC/OS一Ⅱ平台上编写应用软件程序。下面对系统做详实的阐述,并重点介绍嵌入式实时操作系统μC/OS—II应用于TCP/IP时应进行合理的裁减。

1 系统硬件设计

基于ARM的嵌入式TCP/IP网络通信系统主要包括ARM芯片和以太网控制器等芯片组成的以太网接口、驱动软件和嵌入式TCP/IP 协议栈。硬件原理图如图1所示。

该方案设计相对简单,硬件电路中采用的LPC2210是Philips 公司推出的微处理器,带有16 KBRAM,76个通用I/O口,12个独立外部中断引脚,集成有8通道的10位A/D,能够基于芯片设计复杂的系统。虽然LPC2210具有较快的访问速度,但片内没有集成FLASH,所以这里扩展1片16 Mb FLASH SST39VFl60来保存用户程序。其架构满足μC/OS—II正常运行的基本要求。

RTL8019AS是台湾Realtek半导体公司生产的以太网控制器,其性能包括:支持EthernetII和IEEE802.3标准;支持8/16位数据总线;内置16 KWord的SRAM;全双工,收发同时达到10 Mb/s;支持BNC,AUI,UTP介质。RTLS019AS可提供100脚的TQFP封装,减少了PCB面积,更适合于嵌入式系统。HR901170A是汉仁电子有限公司生产的RJ45接口连接器(带网络变压器/滤波器),该连接器满足IEEES02.3和IEEE902.3ab标准,能够较好地抑制电磁干扰。通过HR901170A系统就可以连接到以太网上。

2 嵌入式协议的选择

TCP/IP协议是一组不同层次上的多个协议的组合,通常被认为是一个包含链路层、网络层、传输层和应用层的4层协议系统,如图2所示。嵌入式系统是为完成某种特定的功能而设计的专用系统。嵌入式系统不要求(也不可能)实现所有的TCP/IP协议,所以嵌入式TCP/IP是对TCP/IP协议族进行选择而形成的协议集合。

首先在链路层上,由于采用以太网的接入方式,系统必须实现IEEE802.3所规定的CDMA/CD(载波监听多路访问及冲突监测)协议,CDMA/CD协议不需用户实现,此协议只要采用通用的NIC(Network Interface Con—troller,网络接口控制)芯片就可支持。为了保证系统在以太网中的通信,系统还需实现ARP应答协议,该协议用于将IP地址映射成以太网MAC地址。ARP协议包括ARP请求和ARP响应两部分,系统与其他计算机通信,就必须要支持ARP响应。ARP请求在本地建立了一个IP地址到MAC地址的映射,保证了对外通信的有的放矢。RARP(逆地址解析)协议主要用于解决如何从MAC地址得到IP 地址,主要用于无盘工作站中。在网络层,由于系统要求能够在Internet中进行通信,因此系统要实现IP协议。在TCP/IP协议族中,网络层协议包括IP协议(网际协议)、ICMP协议(Internet控制报文协议)以及IGMP协议(Internet组管理协议)等。IP协议是TCP /IP族的核心协议,它使异构网络之间的通信成为可能。因此RTU

等系统数据跨越不同的网络进行传输就必须要实现IP协议。ICMP中

规定了多种协议类型和代码,如果完全地实现也要耗费不少的系统资源,该嵌入式系统中,在ICMP协议中能够测试网络的连通情况即可。

传输层主要是在2台主机之间提供端到端的通信。传输层有2种不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP是面向连接的,在不可靠的网络服务上提供端到端的可靠字节流。TCP协议设计了严格的3次建立连接握手过程、4次关闭连接握手过程以及捎带确认信息并通过滑动窗口进行流量控制的数据传输过程。UDP协议是不面向连接的,它只是简单地把数据报从一台主机发送到另一台主机,但并不保证该数据报能到达另一端,可靠性必须由应用层来提供。考虑到系统中数据传输质量,这里采用TCP协议。应用层协议主要是指用户进程。其包括:HTTP协议、FTP协议、POP3协议、SMTP协议、SNMP协议。

3 系统软件设计

该TCP/IP网络通信系统为了具有较好的实时性和稳定性,采用μC/OS一Ⅱ设计系统软件。在μC/OS一Ⅱ平台上,软件设计工作主要包括:μC/OS一Ⅱ在LPC2210上的移植和TCP/IP协议在μC/OS一Ⅱ上的实现以及系统应用程序的编写。μC/OS一Ⅱ的移植工作主要集中在下面几个文件中:OS_CPU.H,OS_CPU_A.ASM,

OS_CPU_C.C。另外,在INCLUDES.H中必须包括LPC2210文件

LPC2210.H;OS_CFG.H用于系统应用μC/OS一Ⅱ中的初始化配置。OS_CPU.H主要包括一些与处理器和编译器相关的常量和类型定义等,而且需注意LPC2210的堆栈方向是由高到低,用OS_STK_GROWTH来设

置堆栈的增长方向。因此将OS_STK_GROWTH设为1。OS_CPU_A.ASM 中需编写4个汇编语言函数:OS_TASK_SW(),OS_IntCtxSw(),OSStartHighRdy()和OSTieklSR()。

以太网链路层遵循的IEEE802.3协议的CSMA/CD和CRC校验等功能由网络控制芯片Rtl8019AS完成,LPC2210芯片则完成其他TCP /IP协议的解释和执行。LPC2210控制RTL8019AS完成通信任务时,首先要对RTL8019AS复位,并对RTL8019As的寄存器进行初始化,确定发送和接收的条件,然后才能发送数据或接收数据。当一帧数据发送结束、接收到1帧数据或出错等事件发生时,RTL8019As向LPC2210申请中断,LPC2210响应中断后根据中断状态寄存器的内容进行相应的处理。

在LPC2210内部,ARM程序完成对数据的打包解包。系统复位后,系统首先发送ARP请求,建立地址映射,并内部中断进行定时更新。ARM芯片根据情况将采集或收集到数据按照TCP协议或UDP协议格式打包,送入网卡芯片,由网卡芯片将数据输出到局域网中。ARM 芯片对数据报进行分析,如果是ARP(物理地址解析)数据包,则程序转入ARP处理程序。如果是IP数据包则进一步判断是哪个协议向IP 传送数据。如果是ICMP协议,判断是否为Ping请求,是则应答,不是丢弃该数据包;如果是TCP或UDP协议,且端口正确则按相应的协议处理数据,端口不正确丢弃数据包。TCP/IP系统框图如图3所示。

TCP/IP在μC/OS一Ⅱ上的设计结束后,剩下的工作就是编写应用程序。将系统划分成若干个任务,每个任务对应一个独立的无限循环的主程序,完成一个特定的功能。为简化设计,应用程序采用静态优先级,即应用程序在执行的过程中各个任务优先级保持不变。

4 结语

基于ARM的嵌入式TCP/IP协议的设计方案,论述了软、硬件

的设计方法和协议的选择。该设计方案在硬件实现上简洁可靠;软件

实现上可维护性好;可扩展性好,有利于系统的后续开发,降低了系统设计的复杂性。实验证明该方案可行性强,可以直接把系统的处理数据送到以太网上传输。可以看出,ARM和嵌入式TCP/IP协议将会得到更大的发展和更广阔的应用。

嵌入式TCP_IP协议栈说明书

嵌入式TCP_IP协议栈说明书 杨文斌 2008-9-1

一、总则 本文件是嵌入式TCP/IP协议栈的说明文件,嵌入式TCP/IP应用开发人员可通过阅读本文件,掌握在嵌入式TCP/IP协议栈的基础上开发服务器和客户端应用程序,如FTP服务器,WEB服务器,串口服务器等等。 二、参考文件 1)TCP_IP详解卷1,2,3 2)RFC 959 (rfc959) - File Transfer Protocol.htm 3)rfc1945- Hypertext Transfer Protocol -- HTTP/1.0 三、技术说明 1)用户应用协议栈则需要编写以太网的数据报收发驱动,就可以使用协议栈提供的标准SOCKET API,完成服务器和客户端应用程序的开发。 2)协议栈运行于非操作系统的环境下,因此它的运行速度与一般采用多任务操作系统的TCP/IP协 议,速度相对说来要快。 3)协议栈完成的功能包括ARP,IP,ICMP(ping),TCP,UDP,暂不支持IGMP,RARP。 4)协议栈采用C代码编写,可方便的移植于各种单片机平台。 5)协议栈在ARM7+RTL8019硬件环境下测试,并建立了FTP服务器和WEB服务器,性能稳定。 6)协议栈建立的FTP服务器和WEB服务器与Internet Explorer浏览器和ftp.exe相互兼容。 7)协议栈每一个SOCKET上建了数据缓冲队列(数据结构),用于接收SOCKET的并发数据,实现 多SOCKET的并发数据报处理,可同时运行FTP服务器和WEB服务器。 8)协议栈实现了ACK的延时答应(200ms),支持TCP多包发送和接收,但未支持TCP数据报的 失序处理,因此适合局域网内使用。 四、SOCKET API函数 1)函数SOCKET * socket(u16 af,u16 type,u16 protocol) 本函数功能是从SOCKET pool中分配一个SOCKET插口,供应用程序使用,其参数说明如下: 1.参数af,type—无意义,保留为扩充功能使用。 2.参数protocol—为分配SOCKET的类型,包括TCP_PROTOCOL和UDP_PROTOCOL两个 类型。 3.返回值:函数执行成功,返回SOCKET*指针指向一个SOCKET,失败返回NULL 2)函数u16 bind(SOCKET * sock,struct sockaddr * address,u8 len) 本函数功能是将IP地址和端口绑定到一个SOCKET 指针* sock指向的SOCKET。 1.SOCKET * sock—指向被绑定的SOCKET。 2.struct sockaddr * address—指向IP地址和端口。 3.len—无意义,保留为扩充功能使用。 4.返回值:SUCC。 3)函数u16 listen(SOCKET * sock, u16 QTY) 本函数功能是启动被绑定了地址和端口的SOCKET * sock,触发其为监听状态。本函数由服务 器端应用程序使用。 1.SOCKET * sock—指向被bind的SOCKET。 2.返回值:SUCC。 4)函数u16 connect(SOCKET * sock, struct sockaddr * sevaddr,u8 len) 本函数功能是用于建立一个连接到服务器,服务器的地址和端口由参数sevaddr指定。该函数由 客户端使用。 1.SOCKET * sock—指向被连接的本地SOCKET。 2.struct sockaddr * sevaddr,-- 服务器的地址和端口.

CycloneTCP协议栈移植与使用简介

Arda Technology Arda Tech P.F.FU 2014-12-19 Ver 0.1 #elif defined(USE_XXXXXX) #include "os_port_xxxxxx.h"

NicType type;//控制器类型。0:以太网接口,1:PPP接口,2:6LowPan接口 NicInit init;//控制器初始化函数指针 NicTick tick;//控制器周期性事务处理函数指针 NicEnableIrq enableIrq;//打开控制器中断函数指针 NicDisableIrq disableIrq;//关闭控制器中断函数指针 NicEventHandler eventHandler;//控制器中断响应函数指针,这个是下半段的中断处理部分。 NicSetMacFilter setMacFilter;//配置多播MAC地址过滤函数指针 NicSendPacket sendPacket;//发送包函数指针 NicWritePhyReg writePhyReg;//写PHY寄存器函数指针 NicReadPhyReg readPhyReg;//读PHY寄存器函数指针 bool_t autoPadding;//是否支持自动填充 bool_t autoCrcGen;//是否支持自动生成CRC校验码 bool_t autoCrcCheck;//是否支持自动检查CRC错误 NicSendControlFrame sendControlFrame;//发送控制帧函数指针 NicReceiveControlFrame receiveControlFrame;//接收控制帧函数指针 NicPurgeTxBuffer purgeTxBuffer;//清除发送缓冲函数指针 NicPurgeRxBuffer purgeRxBuffer;//清除接受缓存函数指针 xxxxEthInitGpio(...)//用于在init中初始化GPIO。 xxxxEthInitDmaDesc(...)//用于在init中初始化DMA任务描述符列表。 XXXX_Handler(...)//用于MAC中断的上半段处理。 xxxxEthReceivePacket(...)//用于在eventHandler中收包,把数据从dma的缓冲复制到外部缓冲。xxxxEthCalcCrc(...)//计算CRC值,这个函数基本上是固定的。 xxxxEthDumpPhyReg(...)//用于调试的打印PHY寄存器列表值。

基于ARM的嵌入式TCPip协议的实现

基于ARM的嵌入式TCP/IP协议的实现 该系统可以将数据按网络协议处理,实现数据的以太网传输。其是一套基于嵌入式实时操作系统的嵌入式网络软件开发平台,即在μC/OS—II的平台上,实现ARM微处理器的TCP/IP协议,在此平台之上,可以方便地进行嵌入式应用系统的开发。 0 引言 以太网具有通用性强、技术成熟、带宽迅速增加等特性,工业控制领域出现嵌入式技术,尤其是ARM技术的发展和DSP在工业控制领域的广泛应用,利用嵌入式技术实现以太网通信已经不难见到。嵌入式实时操作系统接入网络后将使远程监测、远程控制、远程诊断和远程维护变得越来越容易。从根本上讲,嵌入式设备接入网络,当前基本采用基于TCP/IP的通信协议。该方案以LPC2210为核心元件研究基于ARM的嵌入式TCP/IP协议的实现的硬件电路,同时在μC/OS一Ⅱ平台上编写应用软件程序。下面对系统做详实的阐述,并重点介绍嵌入式实时操作系统μC/OS—II应用于TCP/IP时应进行合理的裁减。 1 系统硬件设计 基于ARM的嵌入式TCP/IP网络通信系统主要包括ARM芯片和以太网控制器等芯片组成的以太网接口、驱动软件和嵌入式TCP/IP 协议栈。硬件原理图如图1所示。

该方案设计相对简单,硬件电路中采用的LPC2210是Philips 公司推出的微处理器,带有16 KBRAM,76个通用I/O口,12个独立外部中断引脚,集成有8通道的10位A/D,能够基于芯片设计复杂的系统。虽然LPC2210具有较快的访问速度,但片内没有集成FLASH,所以这里扩展1片16 Mb FLASH SST39VFl60来保存用户程序。其架构满足μC/OS—II正常运行的基本要求。 RTL8019AS是台湾Realtek半导体公司生产的以太网控制器,其性能包括:支持EthernetII和IEEE802.3标准;支持8/16位数据总线;内置16 KWord的SRAM;全双工,收发同时达到10 Mb/s;支持BNC,AUI,UTP介质。RTLS019AS可提供100脚的TQFP封装,减少了PCB面积,更适合于嵌入式系统。HR901170A是汉仁电子有限公司生产的RJ45接口连接器(带网络变压器/滤波器),该连接器满足IEEES02.3和IEEE902.3ab标准,能够较好地抑制电磁干扰。通过HR901170A系统就可以连接到以太网上。

TCPIP协议栈实践报告

《专业综合实践》 训练项目报告训练项目名称:TCP/IP协议栈

1.IP协议 IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情。所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。这是后话,暂且不提 1.1.IP协议头如图所示

挨个解释它是教科书的活计,我感兴趣的只是那八位的TTL字段,还记得这个字段是做什么的么?这个字段规定该数据包在穿过多少个路由之后才会被抛弃(这里就体现出来IP协议包的不可靠性,它不保证数据被送达),某个ip数据包每穿过一个路由器,该数据包的TTL数值就会减少1,当该数据包的TTL成为零,它就会被自动抛弃。这个字段的最大值也就是255,也就是说一个协议包也就在路由器里面穿行255次就会被抛弃了,根据系统的不同,这个数字也不一样,一般是32或者是64,Tracerouter这个工具就是用这个原理工作的,tranceroute 的-m选项要求最大值是255,也就是因为这个TTL在IP协议里面只有8bit。 现在的ip版本号是4,所以也称作IPv4。现在还有IPv6,而且运用也越来越广泛了。 1.2.IP路由选择 当一个IP数据包准备好了的时候,IP数据包(或者说是路由器)是如何将数据包送到目的地的呢?它是怎么选择一个合适的路径来"送货"的呢? 最特殊的情况是目的主机和主机直连,那么主机根本不用寻找路由,直接把数据传递过去就可以了。至于是怎么直接传递的,这就要靠ARP协议了,后面会讲到。 稍微一般一点的情况是,主机通过若干个路由器(router)和目的主机连接。那么路由器就要通过ip包的信息来为ip包寻找到一个合适的目标来进行传递,比如合适的主机,或者合适的路由。路由器或者主机将会用如下的方式来处理某一个IP数据包 如果IP数据包的TTL(生命周期)以到,则该IP数据包就被抛弃。 搜索路由表,优先搜索匹配主机,如果能找到和IP地址完全一致的目标

mtcp协议栈

mTCP:A Highly Scalable User-level TCP Stack for Multicore Systems EunYoung Jeong,Shinae Woo,Muhammad Jamshed,Haewon Jeong Sunghwan Ihm*,Dongsu Han,and KyoungSoo Park KAIST*Princeton University Abstract Scaling the performance of short TCP connections on multicore systems is fundamentally challenging.Although many proposals have attempted to address various short-comings,inef?ciency of the kernel implementation still persists.For example,even state-of-the-art designs spend 70%to80%of CPU cycles in handling TCP connections in the kernel,leaving only small room for innovation in the user-level program. This work presents mTCP,a high-performance user-level TCP stack for multicore systems.mTCP addresses the inef?ciencies from the ground up—from packet I/O and TCP connection management to the application inter-face.In addition to adopting well-known techniques,our design(1)translates multiple expensive system calls into a single shared memory reference,(2)allows ef?cient?ow-level event aggregation,and(3)performs batched packet I/O for high I/O ef?ciency.Our evaluations on an8-core machine showed that mTCP improves the performance of small message transactions by a factor of25compared to the latest Linux TCP stack and a factor of3compared to the best-performing research system known so far.It also improves the performance of various popular applications by33%to320%compared to those on the Linux stack. 1Introduction Short TCP connections are becoming widespread.While large content transfers(e.g.,high-resolution videos)con-sume the most bandwidth,short“transactions”1dominate the number of TCP?ows.In a large cellular network,for example,over90%of TCP?ows are smaller than32KB and more than half are less than4KB[45]. Scaling the processing speed of these short connec-tions is important not only for popular user-facing on-line services[1,2,18]that process small messages.It is 1We refer to a request-response pair as a transaction.These transac-tions are typically small in size.also critical for backend systems(e.g.,memcached clus-ters[36])and middleboxes(e.g.,SSL proxies[32]and redundancy elimination[31])that must process TCP con-nections at high speed.Despite recent advances in soft-ware packet processing[4,7,21,27,39],supporting high TCP transaction rates remains very challenging.For exam-ple,Linux TCP transaction rates peak at about0.3million transactions per second(shown in Section5),whereas packet I/O can scale up to tens of millions packets per second[4,27,39]. Prior studies attribute the inef?ciency to either the high system call overhead of the operating system[28,40,43] or inef?cient implementations that cause resource con-tention on multicore systems[37].The former approach drastically changes the I/O abstraction(e.g.,socket API) to amortize the cost of system calls.The practical lim-itation of such an approach,however,is that it requires signi?cant modi?cations within the kernel and forces ex-isting applications to be re-written.The latter one typically makes incremental changes in existing implementations and,thus,falls short in fully addressing the inef?ciencies. In this paper,we explore an alternative approach that de-livers high performance without requiring drastic changes to the existing code base.In particular,we take a clean-slate approach to assess the performance of an untethered design that divorces the limitation of the kernel implemen-tation.To this end,we build a user-level TCP stack from the ground up by leveraging high-performance packet I/O libraries that allow applications to directly access the packets.Our user-level stack,mTCP,is designed for three explicit goals: 1.Multicore scalability of the TCP stack. 2.Ease of use(i.e.,application portability to mTCP). 3.Ease of deployment(i.e.,no kernel modi?cations). Implementing TCP in the user level provides many opportunities.In particular,it can eliminate the expen-sive system call overhead by translating syscalls into inter-process communication(IPC).However,it also in-

嵌入式TCP/IP网络通信协议的实现

龙源期刊网 https://www.360docs.net/doc/3213187047.html, 嵌入式TCP/IP网络通信协议的实现 作者:龚峰文王剑 来源:《硅谷》2008年第24期 [摘要]TCP/IP已成为网络互联的标准,并成为支持Internet/Intranet的协议标准。就是针对当前流行的TCP/IP网络通信协议的实现进行具体的研究和探讨。 [关键词]TCP/IP协议 Internet 网络通信 中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1220053-01 Internet已经发展得更加商业化,更加面向消费者,尽管基本目的发生了改变,但其最初的质量标准(也就是开放式、抗毁性和可靠性)依然是必需的。这些特性包括可靠传输数据、自动检测、避免网络发生错误等。更重要的就是TCP/IP是一个开放式的通信协议,开放性就意味着在任何组合间,不管这些设备的物理特征有多大差异,都可以进行通信。 一、标准TCP/IP协议 如同OSI参考模型一样,TCP/IP也是一种分层模型。与OSI参考模型不同的是,TCP/IP 参考模型更侧重于互联设备间的数据传送,而不是严格的功能层次划分。TCP/IP通过解释功 能层次分布的重要性来做到这一点,但它仍为设计者具体实现协议留下很大的余地。因此,OSI参考模型适用于解释互联网络的通信机制,而TCP/IP更适合做互联网络协议的市场标 准。 TCP/IP协议是一套把因特网上的各种系统互联起来的协议组,可以保证因特网上数据准 确又快速地传输。TCP/IP协议是一个很大的协议族,通常表示为一个简化的四层模型。这四 层分别是应用层、传输层、网络层和链路层。 二、IP协议的实现

TCPIP协议分析

TCP/IP协议分析及应用 在计算机网络的发展过程中,TCP/IP网络是迄今为止对人类社会影响最重要的一种网络。TCP和IP是两种网络通信协议,以这两种协议为核心协议的网络总称为TCP/IP网络。人们常说的国际互联网或因特网就是一种TCP/IP网络,大多数企业的内部网也是TCP/IP网络。 作为一名学习计算机的学生,我们一定要对TCP/IP协议进行深刻的解析。通过对协议的分析进一步了解网络上数据的传送方式和网络上出现的问题的解决方法。本实验就是对文件传输协议进行分析来确定FTP协议工作方式。 目的:通过访问FTP:202.207.112.32,向FTP服务器上传和下载文件。用抓包工作来捕捉数据在网络上的传送过程。为的方便数据包的分析,通过上传一个内容为全A的TXT文件,来更直观的分析文件传输的过程。 过程: 1.在本机上安装科莱抓包软件 2.对科莱进行进滤器的设置(arp、ftp、ftp ctrl、ftp data) 3.通过运行CMD窗口进行FTP的访问 4.用PUT和GET进行文件的上传与下载 5.对抓到的包进行详细的分析 CMD中的工作过程: C:\Documents and Settings\Administrator>ftp 202.207.112.32 Connected to 202.207.112.32. 220 Serv-U FTP Server v5.1 for WinSock ready... User (202.207.112.32:(none)): anonymous //通过匿名方式访问 331 User name okay, please send complete E-mail address as password. Password: 230 User logged in, proceed. ftp> cd 学生作业上传区/暂存文件夹 250 Directory changed to /学生作业上传区/暂存文件夹 ftp> put d:\aaa123.txt //上传aaa123.txt文件 200 PORT Command successful. 150 Opening ASCII mode data connection for aaa123.txt.

tcp、ip协议栈移植

This article was downloaded by: [University of Jiangnan] On: 27 March 2015, At: 06:51 Publisher: Taylor & Francis Informa Ltd Registered in England and Wales Registered Number: 1072954 Registered office: Mortimer House, 37-41 Mortimer Street, London W1T 3JH, UK Journal of Discrete Mathematical Sciences and Cryptography Publication details, including instructions for authors and subscription information: https://www.360docs.net/doc/3213187047.html,/loi/tdmc20 An abridged protocol stack for micro controller in place of TCP/IP R. Seshadri a a Computer Centre, S.V. University , Tirupati , 517 502 , India Published online: 03 Jun 2013. PLEASE SCROLL DOWN FOR ARTICLE

An abridged protocol stack for micro controller in place of TCP/IP R.Seshadri ? Computer Centre S.V .University Tirupati 517502India Abstract The existing TCP/IP protocol stack running in hosts takes lot of overhead while the node in network is for a speci?c purpose.For example transferring simple messages across network.If the node in the network is not a PC but,some thing like a micro controller,which measures some values and stores in its local memory,then it becomes lavishness in using the micro controller’s memory.As it is a node in a network,working with TCP/IP ,it should be able to transfer those values in the form of messages to other hosts which are in either local network or global network. But in micro controller terms the memory is expensive and compact.The existing TCP/IP stack consumes a few mega bytes of memory.Therefore it can’t be accommodated in the memory of micro controller.Hence one needs to reduce the memory consumption.In this regard,an abridged protocol which replaces the existing TCP/IP has been designed to suit the above needs.For this purpose,the TCP/IP have been combined with KEIL C51features for 8051micro controller to make it work in transferring messages in local area network as well as global network. The above scheme was implemented and tested and the system was working satisfac-torily.The results are found to be more effective in communicating information/message from the micro controller to a PC. Keywords :Ethernet,stack,Transmission Control Protocol (TCP ),Internet Protocol (IP ).Introduction to TCP/IP The name TCP/IP refers to a suite of communication protocols.The name is misleading because TCP and IP are the only two of the dozens of protocols that compose the suite.Its name comes from two of the most ?E-mail :ravalaseshadri@yahoo.co.in —————————————————– Journal of Discrete Mathematical Sciences &Cryptography Vol.9(2006),No.3,pp.523–536 c Taru Publications D o w n l o a d e d b y [U n i v e r s i t y o f J i a n g n a n ] a t 06:51 27 M a r c h 2015

tcpip协议知识点与练习题

第一章 ?TCPIP和OSI分层模型,包含了哪些层,作用是什么 tcp五层 osi七层 ?每层名称,作用不用原话背下来,理解就可以,能用自己的话写下来就行。

?上下层的关系,谁封装谁(tcp),谁在谁的内部(外部) ?TCPIP协议和OSI协议异同点? 相同点:都是层次结构,按照功能分层 不同点:一个是五层,一个是七层;OSI之间有严格的调用关系,两个N层实体间进行通信必须通过下一层N-1层实体,不能越级;TCPIP可以越过紧邻的下一层直接使用更底层所提供的服务,减少了不必要的开销,效率更高。 ?如果题目没有明确说明的情况下,所有的网络环境默认为以太网 第三章 ?以以太网为例,搞清楚帧的最短和最长的限制分别是多少 https://https://www.360docs.net/doc/3213187047.html,/u012503786/article/details/78615551 46-1500 数据部分 计算完整的帧长,需要加上头部和尾部,头部+尾部18字节,所以帧的范围是64-1518 64是怎么来的?46+18 ?CSMA/CD 载波监听冲突检测 一个帧从节点到其他节点发送时,如果其他节点也发送数据,则发生冲突。标准以太网最长距离的往返时间是51.2微妙,这个时间称为冲突窗口。如果发生了冲突,则会在冲突窗口内检测出来,如果没有发生冲突,之后其他节点再发出数据帧时,就会侦听到信道忙,所以就不会发送数据,所以也就不会产生冲突。他会等待一段随机的时间再次试探性地发送,这种产生随机时间的算法叫退避算法 ?每个层上传输数据的名称大家要掌握 第一层比特流 第二层帧

第三层IP数据报 第四层UDP数据报 ?TCP报文 各个层上常用的设备名字 设备都是向下兼容的 物理层传比特流 链路层帧 网络层ip数据报 ?链路层依靠MAC地址进行寻址,网络层依靠IP地址进行寻址 ?MAC地址怎么来的,网卡在出厂时封印在网卡上的,不能重复,不能改变,所以网卡具有唯一性。 ?既然MAC地址是唯一的,为什么还需要IP地址呢? 局域网内IP地址一般都是靠DHCP动态分布的,所以IP和计算机不是绑定的,假设一台机器是192.168.1.1,当这台机器下线了,这个IP就被分配给其他机器了,此时通信就要出问题了。但是MAC和计算机是一一对应的,所以局域网内使用MAC进行通信。早期的以太网只有交换机,因为那时网络规模比较小,没有路由器的,以太网通过MAC方式寻址,后来有了互联网,为了兼容原来的模式,采用了IP+MAC地址通信的方式,为啥不干脆取消MAC呢,因为MAC技术基础和应用太广泛了,如果推倒重建代价太大,看一下现在的IPV6为什么不能推广起来就是这个原因。 机器刚开机时,没有IP地址的,所以要通过MAC地址通知DHCP服务器给他一个IP地址才能使用,所以从这个角度来说MAC地址也不能取消。 第六章 ?ABC类地址前缀 ?ip数据报头部长度是多少,最大长度是多少 头部是20 最大1500-20 1500是帧数据部分最大 ?具体的数据报格式不用背,但是字段的含义和长度要知道

tcp,ip详解卷1,协议,下载

竭诚为您提供优质文档/双击可除tcp,ip详解卷1,协议,下载 篇一:tcp_ip协议详解 tcp/ip协议详解 这部分简要介绍一下tcp/ip的内部结构,为讨论与互联网有关的安全问题打下基础。tcp/ip协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如t1和x.25、以太网以及Rs-232串行接口)之上。确切地说,tcp/ip协议是一组包括tcp协议和ip协议,udp (userdatagramprotocol)协议、icmp (internetcontrolmessageprotocol)协议和其他一些协议的协议组。 tcp/ip整体构架概述 tcp/ip协议并不完全符合osi的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而tcp/ip通讯协议采用了4层的层级结构,每一层都呼叫它的

下一层所提供的网络来完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(smtp)、文件传输协议(Ftp)、网络远程访问协议(telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(tcp)、用户数据报协议(udp)等,tcp和udp给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(ip)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如ethernet、serialline等)来传送数据。 tcp/ip中的协议 以下简单介绍tcp/ip中的协议都具备什么样的功能,都是如何工作的: 1.ip 网际协议ip是tcp/ip的心脏,也是网络层中最重要的协议。 ip层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---tcp或udp层;相反,ip层也把从tcp或udp层接收来的数据包传

tcpip协议的最高层是什么

竭诚为您提供优质文档/双击可除tcpip协议的最高层是什么 篇一:题目4e6750d5360cba1aa811da12 一、整体解读 试卷紧扣教材和考试说明,从考生熟悉的基础知识入手,多角度、多层次地考查了学生的数学理性思维能力及对数学本质的理解能力,立足基础,先易后难,难易适中,强调应用,不偏不怪,达到了“考基础、考能力、考素质”的目标。试卷所涉及的知识内容都在考试大纲的范围内,几乎覆盖了高中所学知识的全部重要内容,体现了“重点知识重点考查”的原则。 1.回归教材,注重基础 试卷遵循了考查基础知识为主体的原则,尤其是考试说明中的大部分知识点均有涉及,其中应用题与抗战胜利70 周年为背景,把爱国主义教育渗透到试题当中,使学生感受到了数学的育才价值,所有这些题目的设计都回归教材和中学教学实际,操作性强。 2.适当设置题目难度与区分度 选择题第12题和填空题第16题以及解答题的第21题,

都是综合性问题,难度较大,学生不仅要有较强的分析问题和解决问题的能力,以及扎实深厚的数学基本功,而且还要掌握必须的数学思想与方法,否则在有限的时间内,很难完成。 3.布局合理,考查全面,着重数学方法和数学思想的考察 在选择题,填空题,解答题和三选一问题中,试卷均对高中数学中的重点内容进行了反复考查。包括函数,三角函数,数列、立体几何、概率统计、解析几何、导数等几大版块问题。这些问题都是以知识为载体,立意于能力,让数学思想方法和数学思维方式贯穿于整个试题的解答过程之中。 篇二:tcpip和osi模型分别分为几层,每层主要作用以及包括的主要协议 tcp/ip协议分为4层 1.网络接口层:对实际的网络媒体的管理,定义如何使用实际 网络(如ethernet、serialline等)来传送数据。 主要协议:ip(internetprotocol)协议 3.传输层:提供了节点间的数据传送服务,如传输控制协议(tcp)、用户数据报协议(udp)等,tcp和udp给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

嵌入式TCPIP协议栈

嵌入式TCPIP协议栈 嵌入式TCP/IP协议栈 目前,市场上几乎所有的嵌入式TCP/IP协议栈都是根据BSD版的TCP/IP协议栈改写的。在商业嵌入式TCP/IP协议栈大都相当昂贵的情况下,很多人转而使用一些源代码公开的免费协议栈,并加以改造应用。目前较为著名的免费协议栈有: lwIP(Light weight TCP/IP Stack)——支持的协议比较完整,一般需要多任务环境支持,代码占用ROM>40KB,不适合8位机系统,没有完整的应用文档; uC/IP(TCP/IP stack for uC/OS)—基于uC/OS的任务管理,接口较复杂,没有说明文档。 笔者采用的协议栈系瑞典计算机科学研究所Adam Dunkels开发的uIP0.9。其功能特性总结如下: *完整的说明文档和公开的源代码(全部用C语言编写,并附有详细注释); *极少的代码占用量和RAM资源要求,尤其适用于8/16位单片机(见表1); *高度可配置性,以适应不同资源条件和应用场合; *支持ARP、IP、ICMP、TCP、UDP(可选)等必要的功能特性; *支持多个主动连接和被动连接并发,支持连接的动态分配和释放; *简易的应用层接口和设备驱动层接口; *完善的示例程序和应用协议实现范例。 表1 uIP在ATMEL AVR上代码和RAM占用情况 协议模块代码大小/B 使用的RAM/B ARP 1324 118 IP/ICMP/TCP 3304 360 HTTP 994 110 校验和函数636 0 数据包缓存0 400 总和6258 988

注:配置为1个TCP听端口,10个连接,10个ARP表项,400字节数据包缓存。 正是由于uIP所具有的显著特点,自从0.6版本以来就被移植到多种处理器上,包括MSP430、AVR和Z80等。笔者使用的uIP0.9是2003年11月发布的版本。目前,笔者已将它成功移植到MCS-51上了。 2 uIP0.9的体系结构 uIP0.9是一个适用于8/16位机上的小型嵌入式TCP/IP协议栈,简单易用,资源占用少是它的设计特点。它去掉了许多全功能协议栈中不常用的功能,而保留网络通信所必要的协议机制。其设计重点放在IP、ICMP和TCP协议的实现上,将这三个模块合为一个有机的整体,而将UDP和ARP协议实现作为可选模块。UIP0.9的体系结构如图1所示。 UIP0.9处于网络通信的中间层,其上层协议在这里被称之为应用程序,而下层硬件或固件被称之为网络设备驱动。显然,uIP0.9并不是仅仅针对以太网设计的,以具有媒体无关性。 为了节省资源占用,简化应用接口,uIP0.9在内部实现上作了特殊的处理。 ①注意各模块的融合,减少处理函数的个数和调用次数,提高代码复用率,以减少ROM占用。 ②基于单一全局数组的收发数据缓冲区,不支持内存动态分配,由应用负责处理收发的数据。 ③基于事件驱动的应用程序接口,各并发连接采用轮循处理,仅当网络事件发生时 ,由uIP内核唤起应用程序处理。这样,uIP用户只须关注特定应用就可以了。传统的TCP/IP实现一般要基于多任务处理环境,而大多数8位机系统不具备这个条件。 ④应用程序主动参与部分协议栈功能的实现(如TCP的重发机制,数据包分段和流量控制),由uIP内核设置重发事件,应用程序重新生成数据提交发送,免去了大量内部缓存的占用。基于事件驱动的应用接口使得这些实现较为简单。 3 uIP的设备驱动程序接口 uIP内核中有两个函数直接需要底层设备驱动程序的支持。 一是uip_input()。当设置驱动程序从网络层收到的一个数据包时要调用这个函数,

tcp-ip协议详细讲解

TCP/IP协议详解 这部分简要介绍一下TCP/IP的部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。 TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。 TCP/IP中的协议 以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的: 1. IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。 IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。 高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一

相关文档
最新文档