线上期刊服务咨询,发表咨询:400-808-1701 订阅咨询:400-808-1721

tcp协议8篇

时间:2022-12-05 00:07:07

tcp协议

tcp协议篇1

【关键词】TCP/IP协议;通信报文;路由寻址;通信流程

1 概述

随着信息科学技术和通信技术的不断快速发展,基于互联网的网络通信应用在社会各个领域中的应用越来越广泛,使得互联网通信应用成为现代人日常生产生生活不可或缺的一部分,通过互联网络通信,网络用户之间可以实现数据传输、信息共享,从而极大地提高了人们的生活质量。然而,互联网络中的数据传输过程,并不是杂乱无章的随机传送,而是在计算机网络通信协议的基础上,双方都按照协议的内容和机制,来发送数据信息和读取分析数据信息,进而实现互联网络的数据传输和信息共享的功能,TCP/IP协议就是互联网络中重要的通信协议,它的存在奠定了整个互联网络通信的基础,所以对于TCP/IP通信协议的学习对于理解互联网通信机制来辅助互联网学习和工作具有很大的帮助。

2 计算机网络的TCP/IP通信协议

TCP/IP协议是“Transmission Control Protocol / Internet Protocol”的简写,是Internet网络基本的协议,它为计算机通讯的数据打包传输以及网络寻址提供了标准的方法。由于TCP/IP协议的优越性,使得越来越多的通信设备支持TCP/IP协议,使互联网络逐步走向规范化,最终TCP/IP协议成为了当前网络通信协议标准中最基本的网络通信协议、Internet国际互联网络的基础。

2.1 计算机网络TCP/IP协议

针对计算机互联网络的通信协议,国际标准组织ISO创立了七层OSI网络模型,自上而下,分别为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。而TCP/IP协议则是应用在传输层和网络层的数据传输控制协议,来规定网络设备接入互联网络以及设备间数据通信的标准。在通信设备经过互联网络进行数据传输时,通信设备数据发送端,发送TCP/IP通信报文,此时TCP/IP协议携带着通信设备发送端的传输数据内容以及目标通信设备的地址标示在互联网络中进行寻址,从而正确地传送到目标通信设备。当目标通信设备接收到TCP/IP通信报文后,按照协议内容,去除通信标示,来获取传输数据内容,并加以校验,如果经校验后发生差错,目标通信设备会发出TCP/IP信息重发报文,让发送通信设备再次将TCP/IP通信报文发展目标通信设备,去掉通信标示来获取传输数据信息。

2.2 TCP/IP通信协议报文格式

在互联网络中,基于TCP/IP通信协议传输的数据内容都是以通信报文的形式在互联网络内部进行传输,通信报文实质上就是一串二进制字符串,而字符串内不同位置的二进制字符标示不同的含义。从TCP/IP通信协议的主要报文格式可以看出,IP协议是基于TCP协议至上的,TCP协议报文时作为IP通信报文的数据部分来进行传输的。实际上,互联网内传输的通信字符串还有其他的通信协议,TCP/IP通信报文也是作为其外层协议的通信数据部分嵌入到通信报文中在互联网内进行传输。

在IP协议首部,包含了一些关于IP协议的标示、通信地址等信息,主要包括数据字符串总长度的信息、通信标示号、源IP地址和目标IP地址等信息,当IP通信报文经过路由寻址时,会根据首部内记录的目标IP地址来选择传输方向,最终根据目标IP地址传输至目标通信设备。此外,IP通信报文首部还包含其他信息,比如IP协议版本号、首部长度、校验信息、该IP通信报文生存时间(即该报文经过多少个路由后自动取消传输)等与IP通信报文相关的信息,以确保IP报文传输的正确性和安全性。TCP协议通信报文是作为IP通信报文数据内容存在的,TCP协议也分为TCP报文首部和TCP通信数据。TCP通信报文首部主要包括了源端口号和目标端口号等信息,当TCP/IP通信报文经过互联网络到达目标通过新设备后,通信设备会根据TCP报文首部的目的端口号选择设备端口号来接受该数据信息,进而实现互联网络的数据传输。

2.3 TCP/IP协议通信过程

互联网络的通信设备基于TCP/IP协议建立通信过程,也是根据TCP/IP协议来实现的。当源通信设备想向目标设备发送数据时,首先会发送一个TCP/IP通信报文来确认连接,该通信报文在互联网络中经过寻找传输后找到目标设备,目标设备也会向源通信设备发送一个TCP/IP报文以确认建立通信连接,此时,源通信设备就会将通信数据以TCP/IP通信报文的形式进行数据打包,然后向目标数据进行传输,在收到数据后,目标设备同样会发送TCP/IP报文以确认收到信息。当然,TCP/IP通信数据长度是一定的,当通信数据超过报文长度时,源通信设备会将其分段发送,而目标设备则会根据IP报文首部的标识号进行数据重组来重现传输数据信息,进而完成互联网络通信设备数据传输。

3 总结

TCP/IP网络协议是当前互联网络最基本的通信协议。根据TCP/IP网络协议,连接在互联网内的通信设备可以根据TCP/IP通信报文格式的内容将传输数据打包在TCP/IP通信报文内,并以其规定的通信流程进行数据传输,从而实现互联网络内的数据高效安全的传输。

参考文献:

[1]杨绍文.谈计算机网络的TCP/IP协议[J].科技信息.2011(02)

[2]查东辉.试论计算机网络通信协议[J].电脑知识与技术.2013(14)

[3]杨娇娟.浅谈TCP/IP协议[J].数字技术与应用.2012(03)

tcp协议篇2

目前最完成,最被大众接受的通信协议标准就是TCP/IP协议。它的存在能使不相同的硬件结构,操作系统的计算机互相通信。在20世纪60年代末,美国政府出资近资助了一个分组(包)交换网络研究项目ARPAnet,这就是TCP/IP的最初样貌。最初ARPAnet使用的是租用的以点对点为主的通信线路,在后面当通信网和卫星通信系统发展起来之后,它最初开发的网络协议在通信可靠性较差的通信子网络中产生了很多问题,为了解决这些问题,TCP/IP协议就应运而生。作为一个开放的协议,有很多不同的厂家生产了很多型号的计算机,他们各自有完全不同的操作系统,但是在TCP/IP协议组件下,他们能进行通信。在如今的社会,TCP/IP已经成为一个由成千上万的计算机和其使用者组成的全球化网络,此时的ARPAnet也就顺理成章的变成了Internet。TCP/IP是Internet的基础。TCP/IP协议是以套件的形式推出的,在这个套件中包括有一组互相补充、互相配合的协议。在TCP/IP协议族中就包含有IP(互联网协议)、TCP(传输控制协议)和其他协议,在网络通讯中,只有这些协议相互配合,才能实现网络上的信息传输。IP和TCP的组合不仅仅只是表示两个协议,还指整个协议套件,TCP和IP只是作为其中最主要的两个协议,读者应该更好省核此术语的真正含义。TCP/IP协议如果在严格上来说只是人们习惯的说法,更为专业的说法应该称其为Internet协议。同时在国际上,TCP/IP协议也不是ITU-T或OSI的标准,但是它作为一种事实的标准被执行着,并且完全独立于任何硬件或者软件厂商,可以运行在不同体系的计算机上。它采用通用的寻址方案,通过寻址的方法,一个系统能访问到任何其他系统,就算在Internet这样庞大的全球性网络内,寻址的运行也可以说是游刃有余。不管是局域网,还是广域网,TCP/IP都是其中的最大协议最广的使用协议。

二管理TCP/IP的组织机构

Internet因为其开放性,所以不受任何政府部门或者组织所拥有和控制,因此没有统一的管理机构,但是还有非营利机构管理其标准化过程。这些机构承担Internet的管理职责,建立和完善TCP/IP和相关协议标准。与TCP/IP协议相关的组织机构简介如下:

1ISOCISOC为Internet的国际化提供支持、并且是一个非营利性的组织,同时也作为上级组织管理所有Internet委员会及任务组。

2IABIAB是ISOC的技术顾问,主要负责处理Internet技术,协议和研究。

3IETF与IESGIETF制定草案,提出建议,维护Internet标准都是其负责的。IESG在Internet制定标准以及IETF的各项活动中负责。

4IRTF与IRSGIRTF,在Internet发展中所遇到的技术问题,并且处理与TCP/IP相关的协议和一般体系结构研究活动。IRSG则是作为IRTF的指导小组,指导其工作。

tcp协议篇3

关键词:TCP/IP协议;TCP通路

众所周知,计算机连接因特网都要作TCP/IP协议设置,显然该协议成了当今世界计算机相互通信的标准协议。尽管它不符合OSI设计的七层模型,但实际上成为了业界的事实上的标准协议。作为实际的网络标准,许多问题都需要在深刻了解该协议的基础上才能更好的得到解决和优化。本文通过研究,进一步了解其工作原理、运行机制。

一、TCP/IP整体构架

TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的七层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。而TCP/IP通讯协议采用了四层的层级结构,每一层都使用它的下一层所提供的网络来完成自己的需求。这四层分别为:

应用层:应用程序间通信的层,如SMTP、FTP、Telnet等。

传输层:它提供了节点间的数据传送服务,如TCP、UDP等,它们给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(不检查是否被正确接收),如IP协议。

网络接口层:对实际的网络媒体的管理,定义如何使用实际网络来传送数据。

二、TCP通路的建立和终结

不同主机需要进行通信时,首先必须建立起一个连接,当通信结束后,则必须关闭这个连接以释放资源。TCP协议是构建在不可靠的协议之上,故需要一种“握手”机制来建立连接。通常我们将这种建立连接的方式称为“三次握手”机制。

TCP连接包括三个状态:连接建立、数据传送和连接终止。TCP用三次握手建立一个连接,四次握手过程来释放一个连接。

TCP连接的正常建立通常是一端打开一个端口监听连接请求,这就是通常所指的被动打开。服务器端被动打开以后,用户端就能开始建立主动打开。

1、客户端向服务器端发送一个SYN来建立一个主动打开,作为三次握手的一部分。

2、服务器端为一个合法的SYN回送一个SYN/ACK。

3、最后客户端再发送一个ACK。这样就完成了三次握手,连接建立。

三、TCP连接状态

TCP可具有如下几种状态:

1、CLOSED

关闭状态。在两个通信端建立连接前即处于该状态。

2、LISTEN

监听状态。处于此状态服务器端此时正在等待客户端的连接请求。

3、SYN-SENT

客户端发送一个SYN 报文请求建立与服务器端的连接后,设置为此状态。如果已得到对方应答,则进入ESTABLISHED 状态。

4、SYN-RECV

一般服务端在接收到客户端发送的SYN报文后,会发送一个附带ACK的SYN报文进行与对方的同步,之后将其状态设置为SYN-RECV。

5、ESTABLISHED

客户端接收到其之前发送的SYN报文的ACK后,设置为此状态。而此时处于SYN-RECV状态的服务端在接收到此ACK后也会将自己的状态设置为此状态。到此连接完全建立,之后二者即可进行数据传输。

6、FIN-WAIT-1

客户端发起关闭操作,此时客户端将发送一个FIN报文给对方,并将其状态设置为此状态。

7、FIN-WAIT-2

处于FIN-WAIT-1状态的客户端在接收到之前发送的FIN的ACK报文后,将其状态设置为此状态,然后一直处于该状态,直到接收到对方发送FIN报文。收到后将进入TIME-WAIT状态。

8、CLOSE-WAIT

服务端在接收到对方的FIN报文时,将本地状态设置为此状态,并即刻发送ACK报文给对方。此后本地仍可以发送尚未发送的数据直到数据发送完。

9、CLOSING

当连接双方同时发送FIN时,会进入此状态。

10、LAST-ACK

此状态从CLOSE-WAIT状态变化而来。当服务端发送完用户数据后,进行关闭操作,便发送一个FIN报文完成通信通道的完全关闭。在服务端发送这个FIN报文后,设置为此状态,等待最后一个客户端响应的ACK报文,一旦接收到,则连接完全关闭,服务端将状态设置为CLOSED。对于客户端,当接收到服务端发送的FIN时,其首先发送一个ACK报文给服务端,之后将状态从FIN-WAIT-2设置为TIME-WAIT。

11、TIME-WAIT

静等待状态。这是对于首先发送关闭操作的一端(一般即客户端)所最后经历的状态。2个报文最大生存时间的等待时间对于应用程序编程的影响即一般在关闭一个客户端套接字后,系统不会允许立刻建立一个同样通道的套接字连接。

四、小结

本文对TCP协议进行了介绍,分析了该协议运行机制、链路的连接、数据传输、状态转化等方面的内容。对TCP/IP的工作原理、运行机制有了更深入的了解。

tcp协议篇4

TCP/IP协议是当前Internet(广域网)和以太网(局域网)普遍使用的基本的通信协议簇,TCP/IP协议不是一个协议,而是由一系列协议(包括TCP和IP协议)组成的协议簇,正是因为有了TCP/IP协议,Internet才得以迅速发展成为世界上最大的、开放的计算机通信网络。

在使用Windows操作系统的主机中,系统会自动为主机中的网卡绑定TCP/IP协议,简单配置一下该协议,主机就可以使用该网卡与其它主机进行通信了。

TCP/IP协议是美国国防部(DoD)基于战争的需要,在寻求把分散的计算机互联成网络的过程,随着第一个计算机网络ARPA网的出现而出现的。由于TCP/IP协议最初只是在一个小范围内应用,缺少安全性方面的考虑,随着计算机网络的普及,TCP/IP逐渐成为一种开放的网络标准协议,其安全性缺陷也逐渐显现,主要表现在以下几个方面:

1) TCP/IP协议使用明文传输数据,不对数据进行加密处理。如果传输的数据被截获,就会有泄密的风险。

2) TCP/IP协议没有认证机制。发送者无法确认接受方是不是合法的接收者,同样,接收者也无法确认数据的发送方是不是合法的发送者。

3) TCP/IP协议没有数据完整性检测机制。即使要传输的数据在传输的过程中被第三方篡改过,接收者也无从知晓。

2 Sniffer软件的数据捕获与解码

Sniffer是一款可以对计算机网络上发生的不同的数据传送进行跟踪、分析从而对网络行为进行统计、管理的软件。Sniffer提供了丰富的图形工具,可以非常直观地呈现当前网络的连接情况。

Sniffer软件还可以对发生在本网络内的数据传送进行捕获,并进而在网络模型的数据链路层、网络层、传输层等各层进行解码分析,从而找出数据传送的规律或问题。从这一点上看,Sniffer就像是一个外科医生,它可以深入到网络通信的内部,获取网络通信的数据。

当前所广泛使用的以太网(局域网)或者是Internet(广域网)都是使用TCP/IP协议进行工作的,TCP/IP协议是明文传输的,没有采取加密措施,这种明文传输的数据一旦被拦截、捕获,就会发生信息泄露,给正常的数据通信造成威胁。该文就是利用Sniffer软件可以对网络内的数据传送进行捕获这一功能,获取网络内的数据通信的一些样本,再对这些样本进行分析,从而更加清楚地看出TCP/IP协议缺乏安全机制这一特点。

3 TCP/IP数据通信实例的Sniffer分析

在使用TCP/IP协议的网络中,可以进行多种类型的数据通信服务,其中Telnet是一种应用较广泛的服务,它是一个通过创建虚拟终端提供连接到远程主机从而可以实现终端仿真的TCP/IP应用。Telnet远程登录服务通常需要通过用户名和口令进行认证,其实现过程一般分为以下几个步骤:

1) 本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的IP地址或域名。

2) 将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包。

3) 将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果。

4) 最后,本地终端撤消与远程主机之间的连接。

本文就以Telnet服务为实例,使用SnifferPro 4.70,抓取其通信过程中的数据,获取其用以建立TCP连接的用户和密码以及在连接建立完成后所发送的通信数据。

首先,确定好用以进行Telnet远程连接的主机其Telnet服务已经开启。在本实例中,远程主机IP地址为192.168.0.106,本地主机IP地址为192.168.0.100,在捕获数据前,可以先进行Telnet远程登录测试,以确保实验可以正常进行。

在确定远程主机可以正常Telnet登录后,打开Sniffer Pro软件,点击工具栏上的开始捕获按钮,Sniffer就开始对网络内的数据通信进行捕获数据了。此时,打开本地主机的命令提示符窗口,在命令提示符下输入telnet 192.168.0.106,回车后输入远程登录的用户名和administrator,密码345678,就可以Telnet到远程主机。

Telnet登录成功后,就可以操作远程主机了,比如,要查看远程主机当前的文件目录,可以在命令提示符下输入dir命令,该命令返回远程主机当前目录的文件列表。

从以上捕获结果可以看出,使用TCP/IP协议进行数据通信的Telnet服务,从初始TCP连接的建立到用户认证,以及通过用户认证后在远程主机上所执行的命令,都可以被Sniffer捕获并分析出来。这种数据通信过程如果被截获,用户名和密码就会被第三方所掌握,远程主机上的资料也会泄露,由此会带来很大的安全问题。

4 基于TCP/IP协议的数据通信安全

通过对网络内数据通信的Sniffer捕获并解码,可以清楚地看出,TCP/IP协议并没有提供数据通信的安全机制,从这一点上说,TCP/IP协议是存在安全缺陷的。但这并不能否认TCP/IP在网络通信中的作用,正是有了TCP/IP协议,才有了今天Internet的蓬勃发展,其在网络通信中基础性作用和地位至今无法憾动,更没有哪一种协议能够取代TCP/IP协议。

人们要做的是在TCP/IP协议的基础上,增加安全性的措施,对TCP/IP加以弥补和完善。从TCP/IP网络模型上看,可以从应用层、传输层或者网际层入手,增加安全性的措施和机制,提高TCP/IP网络的通信安全。

从应用层来看,可以对要传输的数据加密,这样加密后的数据,即使被第三方所捕获,也无从获知其内容,避免数据泄露。在应用层上还可以对要传数据进行哈希运算,以防止要传输的数据被篡改。

SSL(Secure Sockets Layer安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。

参考文献:

tcp协议篇5

引 言

超文本传输协议(HTTP)是目前通过Internet进行信息交换最主要的方式。HTTP协议是建立在请求/响应(request/response)模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME(Multipurpose Internet Mail Extensions)样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息(包含服务器的信息、资源实体的信息和可能的资源内容)。图1给出了HTTP协议实现的一个简单模型。HTTP/1.0[3]为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。一次TCP链接的建立将需要3次握手。另外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性,因此HTTP/1.1[4]提出了可持续链接的实现方法。HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息,因此减少了链接建立的次数和经常性的链接开销。

可持续链接减少了每次TCP链接建立的时间,但是一个空闲的TCP链接将需要一个Socket和相应的存储缓冲区。一个Socket缓冲区的最小长度必须大于一个TCP包的最大长度,即64 KB,而且很多实现方法在链接建立时将预分配一些缓冲区。可用的Socket的数量是有限的,很多基于BSD的操作系统对于能够同时打开的链接数都有一个缺省的最大值。

无线掌上设备PDA的应用(如浏览器)[5]特点表现在:① 因为页面是针对掌上设备制作的,一般在1 K~2 K字节,比较小;② 目前无线通信网络的带宽很窄,GSM的数据信道带宽只有9.6 K。当前Web页面的访问大多通过HTTP协议,并使用TCP作为下层的传输控制协议。但不幸的是,TCP并不适合短会话的应用情况,不同于现在采用的使用单一TCP传输协议进行数据传输的方式。本文提出了采用动态选择传输层协议(TCP、UDP)的方法来改善取回页面的延迟、网络拥塞以及服务器的负荷。

这种混合TCP-UDP的方法结合两个方面的优点:首先,对于需要比较少数据传输的情况,它将使用UDP作为传输层的协议,从而避免了TCP链接的多次握手开销;另外,对于需要较多数据传输的情况,它将使用可靠的带有重排序和拥塞控制的TCP协议作为传输层的协议。混合TCP-UDP的实现方法只需要对应用层的改动,而操作系统的核心代码不用任何更改。仅采用UDP协议的缺点在于,需要在应用层建立一套类似于TCP复杂的控制协议,从而进行重排序和拥塞控制来保证传输的可靠性。

1 背 景

HTTP是一个请求/响应协议,客户端的应用程序通过提供一个URL可以从服务器上得到所需的数据。HTTP可以用来访问各种不同类型的资源,其中包括文本、图形、影音、可执行文件、数据库查询结果等等。

图2给出了在客户端发起HTTP GET请求后,在客户端和服务器之间进行数据包交换的示意。图中只有两个数据包是有用的(即携带了数据):一个是HTTP GET请求,另一个是HTTP的响应。其它的都是TCP用来进行握手操作的数据包。为了减轻Web服务器的负荷,经常采用重定向机制。这样从服务器发来的重定向响应报文是很短的数据包。使用TCP作为传输协议需要至少7个数据包,而使用UDP则只需要2个数据包就足够了。

2 设 计

我们使用混合传输层[6]的方法即对于少量数据传输的链接采用UDP,而对于大量数据传输的链接采用TCP作为传输层协议。这样对于短链接而言就避免了TCP经常性的握手开销,而对于长链接则仍可获得TCP的优点,如超时重传、拥塞控制、错误恢复机制等。这种方法中,客户端首先尝试使用UDP作为传输层的协议,如果对于所请求的URL UDP并不适合,则再次使用TCP链接。这种方法提供了以下保证:

如果初始的UDP数据包丢失,将采用TCP重新链接而不会受到影响。

如果所链接的服务器没有使用混合传输层的实现机制,客户端将使用TCP重新进行链接。

图3给出了混合TCP、UDP的实现算法。一个采用混合算法的HTTP客户端首先使用UDP作为传输层的协议发出HTTP GET请求,同时启动超时定时器。

当服务器处理客户端发来的请求时,它可以从以下两点做出选择:

① 如果响应的数据足够小(比如,可放到一个数据包中),服务器将使用UDP发回响应。像比较小的网页或HTTP REDIRECT响应就属于这一类。

② 如果响应的数据很大,无法放进一个UDP数据包中,服务器则要求客户端使用TCP重试。这可以通过添加一个HTTP的头部字段来解决如 TCPRETR。

在客户端,将会出现以下三种情况:

客户端从服务器接收到响应。如果响应中包含了所需的HTTP响应,客户端将对数据进行处理。如果服务器要求客户端重试,客户端将使用TCP作为传输层重试。

如果服务器没有处理通过UDP传输的HTTP包,客户端就会收到ICMP错误消息(目的地址无法到达/协议无法到达)。此时客户端将会使用TCP重试。

如果定时器超时,客户端应使用TCP重试。

图4给出了在定时器超时情况下,客户端和服务器之间数据包的交换。这种超时机制提供了可靠性,以及与未使用混合TCP-UDP方法的服务器的兼容性。

图5示意了服务器要求客户端使用TCP重发请求时,客户端和服务器之间的数据包交换。

3 结 语

混合TCP-UDP方法改善了参与HTTP传输的三个方面:客户端、服务器和网络。

对于客户端而言,可以避免由于TCP而引入的三向握手的时间,从而减少了浏览的延迟时间。

tcp协议篇6

【关键词】 嵌入式 TCP/IP协议 以太网

一、引言

嵌入式网络通信在各个方面都得到了非常广泛的运用。目前最常见的就是总线和USB数据传输方式,传输速度即使可以达到较快的水平,但是其并不能够满足长距离的数据传输。因此,以太网能够弥补其在数据传输方面的缺陷。以太网能够实现一百米距离点对点的数据传输,如果要实现更加远距离的数据传输,则需要使用路由器或者交换机来完成。此文基于对CP2200嵌入式TCP/IP协议进行探究,并实现以太网嵌入式系统设计。

二、嵌入式TCP/IP协议的探究与实现

TCP/IP协议栈从上到下分别是由应用层、运输层、网络层和网络接口层所组成的四层结构,每一层各司其职,都有着不同的网络协议。依据软件实际使用的情况,在嵌入式系统当中为了达到网络通信的目的,需要对TCP/IP协议族进行裁剪。在对软件进行初始化的时候,也对单片机同时进行了初始化,其中包括对系统时钟、定时器、端口和串口进行了初始化。当然还有CP2200进行初始化,其中包括对MAC层和物理层进行初始化,并且中断使能。

在TCP/IP协议栈当中,运用层包含HTTP协议,运输层包含TCP协议和UDP协议,网络层包含ARP协议、IP协议和ICMP协议。以下是嵌入式TCP/IP协议的每个模块的实现流程:

1、HTTP协议模块。HTTP协议的发送函数http_send()即是TCP协议的发送函数和数据信息的结合,但是http_ send()函数主要是实现设计网页内容,JPEG的图片和HTML(超文本标记语言)等信息的使用依靠其函数实现。

2、TCP协议模块。TCP协议的发送函数tcp_send()是需要发送一个不包含任何数据的TCP报文,其作用是能够对字节头和校验和进行处理。通过对时间功能的设定,TCP协议的重传函数tcp_retransmit()能够实现对数据最多为两次重传的传输功能,实现传输功能的应用程序是依靠传送页数据而实现的,即是HTTP服务程序。TCP协议的保活函数tcp_ inacivity()是没半秒运行一次,当连接正在建立的状态下,保活期满了的时候并且没能被再次使用,就会中断连接。TCP协议的接收函数tcp_rcve()实现对字节头和校验和的运算,进而对HTTP服务程序和其连接状态等情况进行断定,最后进行TCP有限的状态机判断数据包的程序。

3、UDP协议模块。UDP协议的发送函数udp_send()能够实现对字节头和校验和进行处理,其接收函数udp_rcve()是对所接收的UDP报文进行处理,如果没有受到UDP报文数据,就需要发送ICMP终点不可到达报文。

4、ARP协议模块。ARP协议的发送函数arp_send(),在发送请求报文的时候,对于不清楚目的物理地址的,则是广播报文;在发送应答报文的时候,接收的一方的目的物理地址需要添加物理地址。ARP协议的重传函数arp_retransmit()能够实现当其发出ARP请求之后的半秒时间内没有任何响应,则进行再一次发送的功能,但是当两次发送没有得到响应就会对报文进行删除。ARP协议的缓存更新函数age_ arp_cache()能够每一分钟更新一次。ARP的解析函数arp_ resolve()能够对所发送的IP报文目的IP地址进行解析,如果发送IP地址和目的IP地址都不在相同的一个网络当中,那么此IP地址是网关IP地址,然后在缓存表当中对其进行查找,如果找不到就需要发送ARP请求报文。ARP协议的接收函数arp_rcve()能够实现对报文进行接收或者应答,对缓存表需要进行更新和重新定时,如果所接受的报文是应答报文,则需要发送等候地址解析的IP报文,但是所接收到的报文是请求报文 ,则需要发送ARP应答报文。

5、IP协议模块。IP协议的发送函数ip_send9()能够实现对发送IP报文的20字节头和校验和进行处理,进而使用网络接口层进行发送。IP协议接收函数ip_rcve()能够根据版本情况和所接收报文的种类转移到相应的接收函数来处理。

6、ICMP协议模块。ICMP协议模块的接收函数icmp_ rcve()是实现对ping请求的接收进行处理,并且处理ICMP不同种类的报文。其中Ping命令请求信息函数ping_send()是用来检测发送接收两方的接收情况。

三、结言

综上所述,此文对TCP/IP的网络结构中的各层协议模块进行探究,基于网络控制芯片CP2200的以太网接口和单片机C8051F340,并用编程语言来实现嵌入式以太网通信,同时进一步通过对各个层协议的裁剪,实现嵌入式以太网的数据通信。根据现阶段来看,嵌入式网络通信基本上都是依靠TCP/IP协议来实现的,嵌入式设备和网络两者相结合是嵌入式系统今后发展的主要方向。因此,我们要更加深入地对嵌入式TCP/IP协议进行探究以及更深层次的功能实现。

参 考 文 献

tcp协议篇7

关键词 计算机网络教学;TCP协议;NS2;确认机制;拥塞控制

中图分类号:TP393.01 文献标识码:A 文章编号:1671-489X(2012)03-0013-03

Research on Application of NS2 in TCP Protocol Teaching//Wang Xiaofeng, Mao Li

Abstract TCP is one of the most important protocols of computer networks, but as its implementation mechanisms are complex, the TCP teaching has become a difficult point in computer network teaching. The TCP teaching demonstration based on NS2 is presented, which can analyze and demonstrate the TCP protocol’s key implementation mechanisms, such as connection establishment, acknowledgement scheme and congestion control etc., and thus can improve teaching effectiveness.

Key words computer network teaching; TCP protocol; NS2; acknowledgement scheme; congestion control

Author’s address School of Internet of Things Engineering, Jiangnan University, Wuxi, Jiangsu, China 214122

1 引言

Internet作为20世纪人类最伟大的发明之一,已经深入人类社会的各个方面。当前,以Internet为代表的计算机网络技术得到飞速发展,计算机网络课程已逐渐成为高校计算机相关专业的一门专业基础课。计算机网络教学涉及大量复杂的网络协议,尤其是作为Internet核心协议之一的TCP协议。为实现在不可靠的IP协议上的可靠数据交付,TCP协议包含了大量复杂的机制[1],这使得初学者感到抽象难懂,因此,TCP协议成为计算机网络教学的一个难点。

为提升学生对TCP协议的直观认识,增强学习的兴趣与效果,可搭建由物理网络设备组成的网络实验平台,但这花费成本高、运用不便。鉴于当前网络模拟技术已得到广泛研究,各种成熟的网络模拟工具层出不穷,通过现有网络模拟软件,构建虚拟的TCP协议模拟与仿真教学环境,不仅可以增强学生对TCP协议复杂机理的直观理解,提高学习的兴趣与效率,而且可以为教师提供有力的TCP协议教学辅助工具。本文基于经典NS2网络模拟软件,提出TCP协议关键实现机理(包括连接建立、确认机制以及拥塞控制等)的分析和演示教学方法。

2 网络模拟器简介

2.1 网络模拟技术介绍

在众多研究计算机网络的方法中,由于网络模拟技术具有成本低,实现简单,使用方便,并能用于研究尚未实施的网络机制等优点,因此被广泛应用于网络研究的每一个角落,各种网络模拟器也层出不穷[2]。当前网络模拟器一般都基于离散事件模拟技术实现。所谓离散事件模拟,就是模拟系统的状态变化在离散模拟时间点上发生,事件的发生使得模拟系统从一个状态跳转到另一个状态。离散事件网络模拟技术则针对数据包的每一跳转发都依靠离散事件来刻画。下面介绍当前比较经典的网络模拟器。

1)NS2[3]。NS2(Network Simulator 2)是一个单机多协议离散事件网络模拟工具,由USI/ISI、Xerox PARC、LBNL和UC Berkeley等美国大学和实验室合作,在DARPA资助的VINT工程研究中实现的模拟工具。NS2有很多特点,比如具有开放的体系结构;可扩展、易配置和可编程的事件驱动模拟引擎;带有大量协议库的支持,尤其适合于对基于TCP/IP的网络进行模拟;支持大规模多协议网络模拟;提供开放的用户接口、可视化工具:可动画显示网络模拟过程,图形显示数据结果等。NS2是一个完全免费的软件,在国际上享有很高的学术声誉,被世界各国的网络研究者广泛使用。

2)OPNET。OPNET是美国OPNET Technologies Ins公司的产品,是一个单机的、基于离散事件驱动的网络模拟器。OPNET的特点包括:支持面向对象的建模方式,并提供图形化的编辑界面;提供各种通信网络和信息系统的结构化模拟模块;具有完善的结果分析器,为网络性能的分析提供有效而直观的工具;具有支持各种业务的模型等。目前OPNET是公认的优秀通信网络、通信设施、通信协议的模拟与建模工具,在全球的通信、电讯、网络及国防科技产业上已经被普遍采用并受到好评。但是由于是收费的商业软件,限制了其在研究领域的广泛应用。

3)SSF[4]。SSF(Scalable Simulation Framework)是一组用来描述离散事件模拟的应用程序接口,它采用DML(Domain Modeling Language)语言来描述网络模拟应用。SSF具有面向对象、简洁、功能强大等特点,此外,它支持高性能并行网络模拟并且在不同的计算环境之间具有可移植性。SSF有好几个实现版本,包括SSFNet、iSSF(即DaSSF)等。SSFNet采用JAVA实现,是DARPA支持的项目S3(Scalable Self-organizing Simulations)中的一部分,主要支持IP包级别上的细粒度模拟,链路层和物理层的协议模型以独立的组件方式提供。DaSSF采用C++实现,由达特茅斯学院开发,目前被设计为能够基于MPI运行在分布式内存并行计算机上。

2.2 NS2网络模拟器

从上述分析看出,NS2是一款非常优秀的开源软件,并且提供开放的用户接口以及提供模拟过程的动画演示及模拟结果的图形显示,因此非常适合于计算机网络教学。本文基于NS2实现TCP协议教学演示。下面是基于NS2的网络模拟基本步骤分析。

1)基于Otcl脚本语言设置模拟网络的拓扑结构以及链路的基本特性。

2)基于Otcl脚本语言设置协议,包括协议绑定和建立通信业务量模型。

3)设置trace对象、NAM对象等。依靠trace以及NAM可以记录网络模拟过程中所产生的各种数据。

4)其他的辅助命令的设置,如设定模拟结束时间、各种通信业务量的起止时间等。

5)对1~4步编写的Otcl脚本用NS2解释执行,并形成trace、NAM文件记录。

6)分析trace文件,得出实验所需数据;或分析NAM文件,动画演示网络模拟运行的整个过程。

7)对配置拓扑结构和通信业务量模型进行调整,并重复进行上述模拟过程,直至模拟效果满意为止。

3 NS2在TCP协议教学中的实例

3.1 模拟应用设置

基于NS2模拟器,设置所模拟的网络拓扑如图1所示,共有6个网络节点,并将Router(0)与Router(1)之间的链路设为瓶颈链路。Host(0)与Server(0)之间进行UDP数据流的传输,这作为背景流量;Host(1)与Server(1)之间进行TCP数据流的传输,这作为TCP协议教学的示范应用。设定模拟时间为5秒,其中UDP数据流持续时间为2.5~5.0秒,TCP数据流持续时间为0.1~5.0秒。模拟应用设置的关键TCL脚本代码如图2所示。

3.2 模拟结果分析与演示

在模拟过程中开启NS2的trace记录、NAM记录以及Queue Monitoring记录,并进行相应分析与演示。

1)TCP连接建立的分析与演示。图3中显示了关键的trace记录,为了能够便于分析,做了一些精简(trace记录中每一跳数据包转发记录仅保留enque记录,删除deque记录以及接收记录)。依靠图中第1行~第7行、第9行与第11行,可以演示TCP建立连接的3次握手过程。其中第1~3行表明3次握手中的第一个报文,经过三跳数据包转发到达目的节点,4~6行表明3次握手中的第二个报文,上述2个报文不涉及数据的传递,报文字节长度为40。第7、9、11行为3次握手中的第三个报文,该报文采用捎带应答,伴随数据传送一并进行,其字节长度为1 040。

2)TCP确认机制的分析与演示。TCP的可靠传输依靠确认机制实现,以图3中第7~17行、第20行为例,可以演示TCP的确认机制。其中第7~12行,TCP的发送方连续发出2个长度为1 040字节的报文(标号分别为2与3),这两个报文分别经过三跳数据包转发到达目的节点;第13行与第14行分别表明,当目的节点分别收到标号为2与3的报文后,发出ACK报文4与5进行确认。

依靠NAM记录,生成相应的NAM动画,如图4所示,可以比较分析有确认机制的TCP协议以及无确认机制的UDP协议的区别,加深学生对确认机制的印象和理解。当NAM动画演示的模拟时间推进到2.5秒之后,同时出现UDP数据流以及TCP数据流,如图4所示,可以演示出UDP数据流仅是从Host(0)到Server(0)的单向传输;而TCP数据流不仅包括从Host(1)到Server(1)方向的数据传输,还包括从Server(1)到Host(1)方向的确认报文传输。

3)TCP拥塞控制的分析与演示。依靠Queue Monitoring对Host(1)与Router(0)间的链路进行记录并进行相应处理,获得整个模拟过程中TCP数据流的发送速率,如图5所示,依靠该图演示TCP的拥塞控制过程。在0.1秒,Host(1)开始发送TCP数据流,流量大小逐渐上升,到0.3秒流量达到最大值,这个过程可以演示为TCP协议的慢开始阶段。在0.3秒,TCP流量瞬时发送速率达3.66 Mb/s,远超过Router(0)与Router(1)之间的链路带宽2 Mb/s,因此出现网络拥塞,于是TCP协议执行拥塞避免的“乘法减小”策略,在0.35秒,TCP流量瞬时发送速率减为2.16 Mb/s,在随后的过程中,TCP流量发送速率基本维持在2.00 Mb/s。

从2.5秒开始,Host(0)开始发送UDP数据流,并与TCP数据流争用瓶颈链路带宽,这使得网络频繁出现拥塞,TCP协议执行“乘法减小”策略,拥塞窗口多次减少,导致TCP流量发送速率从2.55秒的2.00 Mb/s逐渐减为2.95秒的0 b/s,随后TCP协议继续进行慢开始过程,流量大小逐渐增大,直到再次探测到出现网络拥塞。

4 结论

本文基于网络模拟软件NS2,编写用于TCP协议教学的TCL脚本,并通过NS2的trace记录、NAM记录以及Queue Monitoring记录工具,实现对TCP协议连接建立、确认机制以及拥塞控制等机理的演示教学。通过在TCP协议教学中使用网络模拟软件NS2,能让学生更加轻松地学习网络理论知识,提升学生的钻研兴趣,并取得良好的教学效果。在以后的教学工作中,拟在计算机网络实验环节让学生自己动手编写计算机网络协议模拟代码,进一步提升学生的能动性,培养创新思维。

参考文献

[1]谢希仁.计算机网络[M].5版.北京:电子工业出版社,2008:180-220.

[2]王晓锋.提高大规模离散事件网络模拟性能方法的研究[D].哈尔滨:哈尔滨工业大学,2007:4-10.

tcp协议篇8

关键词:嵌入式系统;以太网;TCP/IP协议;UDP;ARP

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)04-10947-03

1 引言

目前,嵌入式系统与网络的结合已经成为嵌入式系统发展过程中所必须要面对的问题之一。嵌入式系统的网络接入一般可以通过RS-232或RS-485等间接接入,也可以通过网络协议直接与网络相互连,其中,直接接入方式正逐步成为嵌入式系统接入网络的主要方式,但是需要精简TCP/IP协议栈的支持。目前使用广泛的通用TCP/IP协议栈所包含的协议内容比较全,但同时也比较复杂。由于硬件平台的差别,这些协议站无法直接应用于嵌入式系统,主要表现在以下三个方面:

(1)嵌入式操作系统都面向特定的领域和需求,嵌入式应用对实时性要求比较高。

(2)多任务操作系统的内存分配是动态的,但是在嵌入式系统中片RAM是静态分配的,用于存放收到的数据包的的空间很有限。

(3)嵌入式系统在程序的具体实现上与通用计算机系统有所不同,主要体现在指针、参数传递、变量和数据结构的定义等方面。

因此,需要通用TCP/IP协议栈的基础上进行精简和改写,以设计出精简、高效的TCP/IP协议子集,以供嵌入式系统接入网络使用。

2 TCP协议分析与简化

通用计算机系统有足够的资源支持,但是嵌入式系统则不同,因为其CPU处理能力和系统存储能力都受到成本限制,充分利用资源、提高系统性价比是开发嵌入式应用的根本特点。

2.1 嵌入式TCP/IP协议栈的特点

嵌入式系统一般都是为了满足某一特定的需求,对网络支持的要求相对比较低,需要什么协议就添加相应的模块,不需使用完整的TCP/IP协议。嵌入式TCP/IP协议栈应具有以下的特点:

(1)代码比较简洁,占用的存储空间尽可能小,尽可能为应用程序节省系统资源。

(2)需要传输的数据量一般比较少,协议的实现代码要有较高的执行效率,具有较高的实时性。

(3)便于裁剪和扩展,对于面向不同应用的嵌入式系统应当根据特点对协议进行简化或扩展,整个协议栈在满足功能需求的前提下尽可能精简。

TCP/IP协议栈具有层次特性,各个协议都有自己的数据格式,每次发送数据都要进行上下层协议的数据交换,进行打包和拆包的过程,在这个过程中如果采用数据拷贝的策略进行数据传递则会大大增加系统开销。在嵌入式系统中,往往无法建立起数据传递的缓冲区,需要采用“零拷贝”技术用传递数据指针的方法来解决各层协议间的数据传递,以提高系统的实时性能。

2.2 TCP/IP协议的精简

TCP/IP是几百种网络协议的集合。通用计算机系统有足够的资源支持通信协议在内核实现,因此完整的TCP/IP协议栈(如图1)能够在数据传输的可靠性和数据流量的控制上做很多工作。

但是对于嵌入式系统来说,其硬件资源十分有限,同时对协议的要求也相对较低,必须对通用的TCP/IP协议进行精简。进行精简的途径有两种:

(1)将无关于系统功能的协议削减掉。即保留必需的协议,而对其它无关协议进行裁剪。

(2)对单独的协议进行简化。例如完整的ARP协议支持以太网、令牌环等网络,但是嵌入式系统可能是面向于某一具体类型网络的,对于其他的部分就可以简化掉。

图1

简化后的协议仍然需要符合规定的标准:在网络接口层,系统需实现ARP应答协议,该协议用于将IP地址映射成以太网MAC地址;在网际层,需要实现IP协议,主要负责IP报文报头的正确性,并且对TCP和ICMP报文实行分流,此外,为了能够测试系统与网络的连接,在网际层还需要实现ICMP协议中的Ping应答协议,主要用于检查网络在传输层是否连通。作为运输层的主要协议,TCP和UDP协议一般都不能缺少,对于具体的应用,一般都至少要实现其中之一。HTTP、FTP等应用层协议一般无需实现。这样简化后,就可以得到图2所示的嵌入式TCP/IP协议栈的结构:

图2 嵌入式TCP/IP协议栈结构

3 各协议的具体实现

本文实现的嵌入式TCP/IP协议运行于以89C51单片机和RTL8019AS网络控制器为核心元件的硬件平台上,协议代码在Keil C51 V7.0环境下编写。在程序的initial文件中提供了相关函数对89C51和RTL8019AS进行了初始参数设置,限于文章篇幅,与具体硬件相关的问题不再作详细说明。

3.1 ARP协议的实现

ARP协议不携带用户的有效数据,报头长度为28字节。在ARP报头中操作码域表明了ARP包是ARP请求还是ARP回答,其值为1时为请求,为2时为应答。目标以太地址为目标节点IP对应的MAC地址,解析前是未知的。发送ARP请求应使用广播方式,网段内的各个主机收到后检查包内的IP地址,如果和本机的IP地址一样则使用单播的方式返回ARP应答,在应答ARP包中源以太地址的域中填入自己的MAC地址。在具体设计时,要考虑到系统解析地址的实时性,如果每次互联都要进行地址解析,则系统的实时性要下降,一般的做法是建立一个ARP地址映射表,存放常用IP地址与MAC地址的映射,这样在解析地址时首先遍历该表,如果目标地址已经被解析过则可以省去解析过程了。解析过程中还需要为ARP缓存中每个新生成条目赋予一个初始生存时间,使用定时器中断,经过某一时间间隔对所有条目进行刷新检测,若发现有条目发生超时,将其从ARP缓存中删除。ARP缓存条目结构设计如下:

typedef struct

{unsigned long ip_addr; //IP地址

unsigned char macaddr[6]; //MAC地址

unsigned char timer; //定时器}

ARP_CACHE; //ARP缓存条目结构

3.2 IP协议及Ping 应答的实现

IP协议是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP包都以IP数据报格式传输。IP报头的标准长度为20字节。在具体项目中由于数据量比较小,可以不考虑数据报分段的问题,即不允许数据报超出IP包的有效载荷。标准以太网帧数据域为1500字节,除去IP头之外还有1480字节可以为上层协议提供有效的数据载荷,应该能够满足数据传送的要求。这样简化可以省去软件处理IP数据分段和重组的开销,可以提高系统数据传输的实时性。IP协议对上一层传下来的报文加上IP首部和IP校验和并发往下一层,同时还要对下一层传上来的报文进行校验和检查,将校验正确的去掉IP首部,送往上一层。

为了便于测试,需要实现PING程序,在收到ICMP的回显请求包后按照格式组装一个ICMP的回显应答包并发送。相关的主要函数有:

void ping_request() //PING请求

void ping_answer() //PING应答

void ping_echo() //PING应答收到后回显

3.3 UDP协议的实现

UDP际上是直接利用IP协议进行数据报的传输,也就是将报文包含在IP数据包中 。UDP的数据传输是无连接,不可靠的,因为它不像TCP那样,为了达到目标,首先要在两点之间建立一个可靠的连接,因此UDP协议无法保证数据可靠性。但UDP协议具有对网络资源开销较小,数据处理速度快的优点,UDP协议属于简单的端到端的数据传输协议,其报头只有8字节,其中源端口表示UDP应用进程的端口号,除了0~1023预定的端口外,其余的都可以使用。具体实现时要完成对应用层传下来的数据包,加上UDP首部和UDP校验和,发往下一层。以及对下一层传上来的数据包,进行校验和检查,若正确去掉UDP首部,提出数据送给应用层。需注意的是,要产生一个伪首部用于UDP数据检验和计算,涉及到的主要函数有:

unsigned char verifyudpcrc(union netcard xdata *pRxdnet) //对ucp头进行校验,错误返回0

void udp_send(union netcard xdata *pTxdnet, unsigned char xdata * psource, unsigned int len) //UDP包发送处理

void udp_recieve(union netcard xdata *pRxdnet)UDP包接收处理

3.4 TCP协议的实现

TCP协议是面向连接的、端对端的可靠通信协议,可分以下几个步骤实现:

(1)建立连接。这一过程就是我们常说的三次握手过程。

(2)验证。采取相应的措施消除传输中的错误,保障传输的可靠性,利用序列号解决通信时重复和失序的问题。

(3)流量控制。设置发送和接收窗口。

TCP协议的功能是为应用层协议提供可靠的面向连接的数据传输服务,是嵌入式应用系统协议栈中最为复杂的协议。在TCP协议实现中,由于请求发起端(客户端)与请求相应端(服务器端)在通信中所处地位不同,相应地两者的中间演变状态也不完全相同。客户端与服务器端在一个TCP连接从正常建立到正常中止分别经历5个和6个状态,相应控制信息均在TCP头部信息的6位控制标记位中得以表示。对于嵌入式系统中TCP协议的实现,应从嵌入式应用的角度出发,尽可能减少冗余状态。程序中需要构造一个TCP_STATUS结构来记录每一个TCP连接的状态信息,其结构如下:

typedef struct

{unsigned long ip_addr; //源IP 地址

unsigned int port; //端口号

unsigned long remo_sequ; //对方序列号

unsigned long local_sequ; //本方序列号

unsigned long old_sequ; //上一次序列号

unsigned long remo_ack; //对方应答号

unsigned char timer; //超时用定时器

unsigned char quiet; //连接活动性

unsigned char state; //当前状态

}TCP_STATUS; //连接状态结构

4 结束语

嵌入式系统的应用非常广泛,解决嵌入式系统的网络接入问题具有十分重要的意义。本文实现的精简TCP/IP协议栈在具体应用中有良好表现,可以满足正常的数据传输。由于设计与实现的过程中将应用层协议全部精简,协议在运行过程中的流量控制能力及协议自身的安全性都有所下降,在对安全性和稳定性要求较高的应用场合(如军事、金融等领域),需要对协议的简化有所斟酌。

参考文献:

[1]罗蕾. 嵌入式实时操作系统及应用开发[M]. 北京:北京航空航天大学出版社. 2005.

[2]徐爱钧,彭秀华. Keil Cx51 V7.0单片机高级语言编程与μVision2应用实践[M]. 北京:电子工业出版社,2004.

[3]程耕国,高厚礼. 基于TCP/IP协议单片机上网的设计与实现[J]. 武汉科技大学学报(自然科学版),2004,(2).

[4]田夏利,汪继军,薛胜军. 嵌入式Internet中UDP协议的实现[J]. 计算机与数字工程,2006,(2).

推荐范文
推荐期刊