一米范文>法律范本>协议范本

tcp协议【优秀3篇】

2023-12-20 13:08:07

读书破万卷下笔如有神,下面一米范文为您精心整理了3篇《tcp协议》,我们不妨阅读一下,看看是否能有一点抛砖引玉的作用。

tcp协议 篇一

关键词:档案库系统;Modbus/TCP;自动识别;COM

中图分类号:TP31

随着信息化建设的不断深入,各单位已经全面的使用电子档案系统,电子档案具有传递便捷、资源共享、查阅方便等多种好处,不过由于纸质档案的形成必须要经过人工操作,对原文件的任何篡改都会留下痕迹,所以纸质档案在法律上的可信度很高,能够起到原始凭证的作用。因此在实际工作中电子档案并不能完全替代纸质档案,很多情况下还是需要用到纸质档案。如何将电子档案利用与纸质档案管理结合起来,大幅度降低档案维护成本,提搞档案管理效率,成为目前迫切需要解决的问题。

本文针对以上问题,提出了自动档案库系统的解决方案。自动档案库由多层档案柜、通信模块和计算机控制系统等组成,能够实现档案的自动借阅和归还,是综合了信息自动化、存储和自动识别技术于一身的立体集成化系统。设计该系统的目标是为了减少档案管理人员的工作量,对档案管理的业务流程进行调整和优化,进而规范档案业务操作,提升档案管理的自动化水平,大大提高工作效率。

1 系统总体设计

本文所设计的控制系统分为三层:应用管理层、档案柜管理层和档案柜控制层。应用管理层与档案柜管理层通过TCP协议进行通信,档案柜管理层与档案柜控制层通过Modbus/TCP进行通信,如图1所示。

应用管理层为档案管理系统,它构件了完整的档案资源信息共享服务平台,支持档案管理全过程的信息化处理,主要包括以下功能:档案接收、档案移交、档案查询、档案统计、档案借阅、档案归还、档案数据维护、档案借阅记录管理、档案发送记录管理、报表打印输出、数据库管理等。

档案柜管理层对档案柜控制层的集中管理,包括两个方面的内容:把应用管理层发来的指令转化为对档案柜控制层的指令,定时读取档案柜控制层的消息,并转为系统事件通知应用管理层进行相应。

档案柜控制层根据档案柜管理的指令,控制档案柜的走层、档案的存取、档案盘库等操作,实时根据传感器改变状态寄存器的内容。

图1 系统总体框架图

2 基于Modbus/TCP的传输控制协议

Modbus是一种应用层报文传输协议,用于实现不同类型的网络连接的设备之间的客户机服务器之间的通信。Modbus/TCP协议一种的开放的通信协议,用户可以根据需要灵活进行扩展。[1]它支持C/S模式,将应用层的Modbus消息封装成IP包在网络上传输。[2]

Modbus/TCP是采用C/S模式来进行报文传输,此模式基于4种类型报文,即请求(Modbus Request)、指示(Modbus Confirmation)、响应(Modbus Indication)和证实(Modbus Response),如图2所示。请求是客户端发送给服务器用来启动报文,指示是服务端接收的请求报文对客户端的反馈,响应是服务器针对客户端的请求发送的具体响应,证实是在客户端接收的响应信息时给服务器的反馈。[3]

图2 Modbus/TCP报文传输

协议档案柜管理层由运行在PC机上档案柜管理程序构成,档案柜控制层由触摸屏(TPC)和控制电机和传感器的可编程逻辑器件(PLC)构成。协议档案柜管理层通过网络的Modbus/TCP协议,对各个触摸屏(TPC)和可编程逻辑器件PLC的位变量、整型变量等的读写实现对档案柜的远程测控,如图3所示。

图3 协议档案柜管理层构成图

3 档案自动识别

目前成熟的档案识别方法有条码识别法[4]、RF识别法[5]。条码识别法是在把打印好的条形码粘贴到档案盒上,把条形码作为识别档案的唯一标示;RF识别法则是通过粘贴在档案盒上的电子标签来识别档案的。两种识别方法特点不一,接下来对这两种方法进行具体讨论。

使用条码管理档案,做法是为每个档案盒编配唯一的条码,条码中包含特定规则的位置信息,然后将条码贴到档案盒外面的背脊上。一旦档案盒中有档案存入时,条码、档案盒和档案就建立起了唯一的映射关系。将这种对应关系信息录入到计算机上的档案管理系统中,为每一份档案建立一条记录,保存这份档案对应的条码、在档案柜中的位置、是否在柜等信息,这样就打好了档案识别的基础。档案首次入库时,条码与档案的映射关系建立,数据库中产生相关记录。当需要借阅或者归还档案时,档案识别系统就可以通过条码定位档案盒,找到了档案盒就相当于找到了目标档案。

射频识别系统由电子标签和阅读器两部分组成。在档案识别系统中通常的做法是把阅读器安装在档案柜中,把电子标签粘贴到档案盒上。电子标签中保存的数据通过特定的编码存储在电子标签中,阅读器可以非接触的读取电子数据。系统工作过程分为能力供给和信号识别两个部分。其中能力供给指的是电子标签对电子标签阅读器发出的微波查询信号进行转换,把微波信号转换为电流;信号识别指的是微波查询信号经过电子标签内部的电路处理之后,携带了电子标签内部存储的数据信息,利用电子标签自带的微型天线返回到阅读器中。经过能力供给和信号识别两个过程,阅读器就可以拿到电子标签存储的数据信息,实现档案识别。以下针对条码识别法、RF识别法分别比较两者优缺点,如表1所示。

表1 条码识别法、RF识别法优缺点比较

条码识别法 RF识别法

扫描速度 扫描枪一次只能扫描一个条码 RFID阅读器可同时辨识读取多个RFID标签

抗污染能力和耐久性 条形码采用纸张打印,抗污染能力和耐久性差 RFID一般采用塑料材质封装,具有很强的耐污性和耐久性

穿透性和无屏障阅读 在没有阻挡和近距离的情况下,条码才能被识别 RFID通信具有一定的穿透性,除金属材质外一般材质都能穿透

成本 条码和条码扫描枪成本很低 RFID标签和RFID阅读器成本较高

针对条码识别法、RF识别法的特点,各单位可以根据需求选用不同的方案。条码识别法和RF识别法在系统中识别和传输过程中,由于条码被污染和斜放等情况,RF识别法信道中有噪声干扰和标示有重叠的情况,引起数字信号波形的失真导致错误,针对错码的问题,通过两种策略来处理。一种方法是在档案标识上设置冗余的信息位,在一定错误率的情况下可以通过算法推算出错误的信息,常用算法有循环冗余CRC校验;另外一种是设置校验位,通过校验位来验证发送的信息,验证不通过的情况下让接收方请求重传,常用算法有奇偶校验、汉明校验。因为档案柜在扫描枪扫描过程中一般都是一次扫描,所以我们一般采用纠错码的策略来解决误码的问题。

5 档案自动盘库

为了解决人工归还和借阅档案时放错位置的问题,设计档案自动盘库功能,通过该功能可以对整个档案柜的档案进行批量整理并与档案信息系统中存放的档案存放信息进行核对修改。

自动盘库操作流程如下所示:(1)执行档案柜走层操作,准确走到确定层;(2)启动盘库扫描枪从左到右运动扫描整个层中的档案,一层扫描完成后,盘库扫描枪从右到左运动回到起始点再执行走层动作,直到扫描完毕,经过扫描得到的柜号、层号、档案标识通过Modbus/TCP协议传给档案柜控制层,档案柜控制层通知应用层程序,对扫描的数据进行处理;(3)档案柜向上走一层,继续流程2,直到完成所有层的扫描,自动盘库完成。

在进行盘库操作时,档案柜控制层把盘库扫描枪扫描到一个档案标识就会将柜号、层号、档案标识发送给档案柜管理层,档案柜管理层触发应用层程序的事件,应用程序处理相应事件显示差异信息,用户根据差异信息选择进行更新档案存取信息和借阅情况。

5 档案管理层接口规范

不同厂商采用的硬件类型一般是不同的,同一厂商的不同型号的设备通常也有所区别,传统的档案管理软件基本都是针对某一款特定的档案柜设计的,所以不具有通用性。硬件上一些小改动或升级就会导致整个应用程序的大范围改动甚至重写。传统的档案管理程序与设备是一一对应的,每一种设备都需要开发专用的管理程序和相应驱动。传统档案管理层的开发示意图如图4所示。

图4 传统档案管理层的开发示意图

在实际的大型档案管理系统中,档案柜类型往往不止一种,同种类型的档案柜每隔一段时间也会进行硬件升级,在这种情况下,档案管理层的接口如果仍然按照传统的结构进行设计,必然会带来很多问题,在很大程度上增加系统开发和维护的成本。在本文的档案柜系统设计中,档案柜管理层为了实现与底层硬件设备的无关性,需要硬件设备已经统一的基于COM组件,不同硬件设备指需要按照统一COM编写自己组件,就可以实现协议档案柜管理层对档案柜控制层的操作,如图5所示。

图5 基于COM组件的档案层接口规范

6 结束语

通过对自动档案库系统合理设计,将系统分为应用管理层、档案柜管理层和档案柜控制层。应用管理层与档案柜管理层通过TCP/IP协议进行通信,档案柜管理层与档案柜控制层通过Modbus/TCP协议进行通信,针对人工归还和借阅档案时放错位置的问题,专门设计档案自动盘库功能,同时为了实现档案柜管理层与底层硬件设备的无关性,制定了档案管理层接口规范。实际使用表明:基于Modbus/TCP协议自动档案库系统可以方便快捷的实现电子档案系统与纸载档案管理的无缝结合,在大幅度提高档案的管理效率和档案管理自动化水平的同时,降低了档案管理费用和档案管理人员的工作量,充分提高工作效率。

参考文献:

[1]乔永卫,程帅。基于Modbus协议的自动控制系统的通信研究[J].自动化与仪表,2012(08):34-37.

[2]白焰,钟艳辉,秦宇飞。基于VC的Modbus协议通信测试软件的实现―Modbus串口通信与Modbus/TCP通信[J].现代电力,2008(06):76-81.

[3]翁建年,张浩,彭道刚。基于嵌入式ARM的Modbus_TCP协议的研究与实现[J].计算机应用与软件,2009(10):36-39.

[4]张应福。物联网技术与应用[J].通信与信息技术,2010(01):50-54.

[5]杜晓明,葛世伦。基于RFID和条形码的中小企业仓库管理系统研究[J].组合机床与自动化加工技术,2010(02):106-110.

[6]郎为民。射频识别(RFID)技术原理与应用[M].北京:机械工业出版社,2006.

[7]康东,石喜勤,李勇鹏。射频识别RFID核心技术与典型应用开发案例[M].北京:人民邮电出版社,2008.

[8]Don 本质论[M].潘爱民,译。北京:中国电力出版社,2001.

[9](美)WilliamA.Shay.高传善等译。数据通信与网络教程[M].北京:机械工业出版社,2005.

[10]胡啸,陈星,吴志刚。无线射频识别安全初探[J].信息安全与通信保密,2005(06).

[11]柴先明,黄知涛。信道编码盲识别问题研究[J].通信对抗,2008(02):1-4.

[12]Vaidya N,Das S R.RFID based networks exploiting diversity and redundancy[J].ACM SIGMOBILE Mobile Computing and Communications Review,2008(01):2-14.

[13]叶佳帆。基于modbus/tcp以太网技术的静电除尘器的研究[D].硕博学位论文,2009.

tcp协议 篇二

关键词:TCP/IP;网络拥塞;拥塞控制;算法

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)07-1513-03

随着网络用户的不断增加,制约网络应用和发展的关键瓶颈是网络拥塞问题,对进入网络的数据流量进行控制是拥塞控制的主要目的,通过控制拥塞保证用户发送的数据流对通信网络不造成阻塞,并且瓶颈资源能够被合理的使用。可以在网络协议的不同层次上实施拥塞控制,首先对网络拥塞产生的原因进行分析,分类、归纳拥塞控制,持续时间越长的拥塞需要越高的控制层次来解决拥塞问题,并且拥塞控制的实现主要在传输层和网络层。

1 网络拥塞概述

网络的性能会逐渐下降,当过多的数据包存在于网络中时,这种现象被称为网络拥塞。吞吐量下降在发生网络拥塞的时候,并且严重的时候拥塞崩溃的现象会在发生。通常而言,增加的网络负载导致网络效率降低,在此时容易发生拥塞崩溃的现象。拥塞现象的描述如图1 。

图1 拥塞现象的描述

在较小的网络负载时,吞吐量随着负载的增长也会增长,两者为线性关系,相应的时间也缓慢增长。当网络容量被负载达到的时候,相应的时间急剧增加,吞吐量呈现缓慢增长,这一点被成为Knee点。吞吐量在负载超过一定量时开始急剧下降,路由器在负载继续增加的情况下开始丢包,这一点是死锁点。在拥塞控制机制中有拥塞控制和拥塞避免两种方式,前者的目的是在控制运行在死锁点附近的网络拥塞现象,后者是避免网络运行在Knee点的时候发证拥塞现象。前者是一种恢复措施,使网络从拥塞中恢复过来,进入正常运行状态;后者是一种预防措施,使网络维持在低延迟、高吞吐量状态,网络拥塞现象得以避免。

2 分析网络拥塞产生的原因

网络的处理能力和资源容量被网络的负载超出了是网络拥塞产生的根本原因,也就是网络对资源的总需求量大于总的可用资源,下面分析一下网络拥塞产生的原因。

1)不足的存储空间

一个输出端口需要对各种报文在接收端口的缓冲区域中进行排队,因为它接受的报文是由多个端口转发而来的,若满足使用要求的缓冲空间在输出端,报文就会丢失,尤其是突发的数据流也会丢失。这一矛盾的缓解通过增加存储空间来实现。但将会出现更加严重的拥塞现象在不断增加存储容量时。因为缓冲区网络结点的延时增加的时候,报文也会增加,最终端到端的确认时间也增加了,就会产生超时重发。网络负载因此会进一步增加,拥塞现象最终会加重。

2)不足的宽带容量

在低速链路中流通的高速数据流经常会产生拥塞现象,在数据发送率小于信道容量的时候,拥塞现象才会避免。不然在节点的缓冲区域堆集大量的报文就会产生拥塞。

3)速度缓慢的节点处理机

报文被放入其CPU队列中进行缓存当被路由器对其进行接收的时候,路由器来选择路由并且把报文转发到相应的节点。此时路由器的处理速度的快慢是能否出网络现拥塞的关键因素。

总而言之,只有考虑到从以上三方面的因素,来解决拥塞现象,优化整体性能。只考虑一方面内的因素拥塞问题不仅不能够解决,反而拥塞问题还会更加严重。

3 控制拥塞的策略

1)Tahoe和Reno拥塞控制算法

随着网络技术的发展,TCP拥塞控制有快速恢复(fast recovery)、快速重传(fast retransmit)、拥塞避免(congertion avoidance)、慢启动(slow start)这四种,其中常用的是TCP Tahoe和TCP Reno两种算法。快速重传、拥塞避免、慢启动是Tahoe包括的三个部分,并且改进了往返时间RTT,从而对超时重发计时器进行更好的重新设定,具体的算法描述如下:

最多发一个报文在一个RTT内。其中窗口的大小由w来表示,慢启动门限值由ssthresh来表示,是慢启动进入拥塞避免的分界值。

这种算法的基本思想是通过线性增加速率源端对网络中的空闲容量进行探测,当拥塞被检测到的时候用指数递减它的速率,在源端丢包被检测到的时候确认拥塞。实现拥塞避免和慢启动的例子如图图2 慢启动和拥塞避免的实现举例

由上图可知,每当一个丢包被检测到的时候,慢启动门限值被源端设置为当前窗口的一半,对丢失的包重传,窗口被设置为1,重新进入慢启动。

2)TCP中拥塞控制的关键

TCP协议在Internet上被95%的数据流使用,对发送端的发送速率进行控制是TCP中拥塞控制的关键。可以采用控制算法中的乘法减少加法增加(AIMD)的来解决拥塞问题。每个拥塞窗口由发送方维持着,如果没有发生窗口中的报文丢失,那么目前是良好的网络状况,窗口的大小被发送者加大,同时报文的发送速率加大。当窗口内的一个报文被发送方发现丢失的时候,则认为报文的丢失是由网络拥塞造成的,于是窗口的大小减半,随之发送速率也减小,拥塞加重的现象得以避免。

3)慢启动阶段的拥塞控制

一个连接被TCP启动的时候多个数据包被发送到网络时会造成不必要的网络拥塞和数据丢失,而慢启动可以避免这种现象的发生,还能避免吞吐量在AIMD算法中增加引起网速过慢的问题。初始化拥塞窗口cwnd为一个数据包大小在新的TCP连接建立的时候,按照cwnd大小源端进行数据的发送,也就是随着RTT的增长cwnd呈指数增长。

4)拥塞避免阶段

处理丢失数据包的方法被称为拥塞避免算法。当重复确认被发送方收到或数据包超时被发送方发现的时候,网络拥塞就会发生,此时进入拥塞避免阶段,置为1的cwnd在数据包发送超时并且重复确认被发送方收到时,那么每收到一个ACK,cwnd将增加segsize*segsize/cwnd。其中数据包的大小被称为segsize,cwnd在拥塞避免阶段不是呈指数增长而是呈线性增长的。

5)快速恢复和快速重传阶段

当3个或3个以上的重复ACK被源端收到的时候,发送方认为出现数据包丢失的现象,对数据包进行重新传输,而且启动阈值ssthresh被设置为一半的当前cwnd,然后对丢失的数据包重新传输,这个过程被称为快速传输。系统执行的不是慢启动算法而是拥塞避免算法,这被称为快速恢复,能够使TCP连接的吞吐量提高。另外,不必要的重传超时要想避免可以应用一种受限传输机制:在接收方中允许如果有广播窗口,一个或两个重复的ACK被发送方接收到后,发送方对新的报文段继续传输,具有较小窗口的TCP在受限的传输机制的允许下进行错误码恢复,不必要的重传得以避免。

6)IP 拥塞控制策略

对于Internet 的健壮性而言基于窗口的端到端的TCP拥塞控制起着关键性作用,在Internet的迅速发展的今天网络的规模也越来越大,并且日趋复杂的结构在不断出现,端对端的拥塞控制已经不能满足需求,那么对拥塞的控制也需要在网络层进行,需要在路由器中采用数据丢弃和排队算法策略。其中丢弃策略进行分配缓存是通过决定哪些包被丢弃来实现的,排队算法进行分配宽带是是通过决定哪些包可以被传输来实现的。IP 拥塞控制的方法有:先进先出、公平排队算法、加权公平排队算法。

总而言之,无论哪种拥塞控制方法都有它的优势,总体上包括TCP 拥塞控制和IP 拥塞控制两种,下面表格针对这两种方式进行了比较:

[TCP 与IP 拥塞控制的比较\&参数\&TCP 拥塞控制\&IP 拥塞控制\&实现位置\&端系统中\&网络内部\&短期拥塞\&可以处理\&较好处理\&长期拥塞\&可以处理\&无法处理\&不同数据流间的公平性\&难于实现\&可以实现\&延迟\&较大\&无\&]

4 结束语

通过上述网络拥塞概述、网络拥塞产生的原因、控制拥塞的策略,可以得知,随着互联网用户越来越多,网络宽带等资源也在持续增加,但是用户的需求仍然不能得到满足,逐渐暴漏出网络拥塞问题,拥塞如何更好的预防和控制,使网络具有同时到达资源并且低延时和低丢包率的最大效用。无论TCP拥塞控制还是IP 拥塞控制都有自身的优势,要想在这个基础上更好的解决网络拥塞问题,需要结合各种方法并且灵活的使用。

参考文献:

[1] The Stream Control Transmission Protocol (SCTP) as a Transport for the Session Initiation Protocol(SIP).internet Draft,IETF,Jan,2005 Work in Progress.

[2] 黄卫平。TCP/IP 协议中拥塞控制算法探讨[J].广西工学院学报,2003,14(2):71-73.

[3] Gonzalo Camarillo,Raimo Kantola.Evaluation of Transport Protocols for SIP .IEEE Network September/October 2003.

[4] 武航星,慕德俊,潘文平。网络拥塞算法综述[J].计算机科学,2007,34(2):51-54.

tcp协议 篇三

关键词:嵌入式IP;TCP/IP;嵌入式TCP;嵌入式Internet

中图分类号:TP393文献标识码:A文章编号:1009-3044(2010)08-1815-02

The Design and Implementation of the Embedded TCP/IP Protocol

LIU Chun-yan1, YAN Xing-jian2

(1.Yunnan Province School of Posts and Telecommunications, Kunming 65000, China; 2.China Mobile Group Yunnan Co., Ltd., Kunming 65000, China)

Abstract: This paper analyzed the designed principal and the implementation method of the embedded TCP/IP protocol stack. The source code of the embedded TCP/IP protocol is developed with the GNU tool chain on the Linux operating system. In the concrete implementation, this paper concentrates in the reduction of the standard TCP/IP protocoland is mainly achieved IP, TCP, ARP, ICMP protocol to make it applicable to embedded systems.

Key words: embedded IP; TCP/IP; embedded TCP; embedded Inernet

1 概述

嵌入式系统应用日益广泛,其TCP/IP协议的实现,业界开展了不少工作,结合对嵌入式TCP/IP协议栈的分析,本文给出了一种设计实现并就相关问题进行了探讨,为方便以后的叙述,将所设计和实现的嵌入式TCP/IP协议栈命名为EmbedIP。

2 EmbedIP设计与实现描述

使用Linux系统作为嵌入式TCP/IP的设计与实现开发的操作系统。GNU工具的编译器和项目管理工具,主要包括:GNU GCC,Make,Gdb,Binutils等。源代码调试工具使用gnu gdb, DDD和kgdb作为辅助的源代码调试工具。对于TCP/IP协议开发来说必须使用IP包处理工具来完成IP包的发送和侦测,这里选用netwag作为IP包的发送和侦测的工具。netwag共集成221相关的网络工具,其中最为常用的工具为sniff和spoof两个工具。另也同时使用ethereal,它是优秀的网络抓包工具,并有一定错误提示功能。并且一般linux系统都有基于命令行的tcpdump,这个软件也是一很好的IP包侦测工具。将netwag,ethereal,tcpdump三种工具灵活地组合使用将极大地帮助了嵌入式TCP/IP的设计与实现,高质量和快速地完成。

在PC机系统上TCP/IP协议栈的实现通常符合RFC标准,而在嵌入式环境下进行TCP/IP协议栈设计时不可能像PC机系统一样实现完全符合RFC标准的TCP/IP协议栈。嵌入式TCP/IP协议的设计与实现必须对TCP/IP协议进行一定裁减,并尽可能在最大程度上兼容和满足RFC标准。

结合实际的应用,在EmbedIP中实现了必要的几种协议:IP、 TCP、 ARP、ICMP。现对EmbedIP的整体执行流程作一介绍,EmbedIP整体流程看参见图1。

由图1可看出,EmbedIP的处理是基于事件处理模型的思路设计的,该设计思路主要参考了uip 0.6[4] 的实现方法。

在图1中,读入的链路层数据帧存储于一长度为1500字节的缓冲区内,处理好的数据放入这1500字节的发送缓冲区内,然后将数据发送。图中超时处理由文件eip_tcp.c中的TCPTimerProc()函数来进行时钟的管理,ARP协议的处理由位于文件eip_arp.c中的ARPProc()函数来进行处理,IP包头的处理由位于eip_ip.c中的IPProc()函数来进行处理,TCP协议处理由位于eip_tcp.c中的函数TCPProc()来进行处理。

以下对两个主要协议进行说明。

3 EmbedIP中的IP协议

IP层是整个INTERNET层次模型中的核心部分。IP协议规范在RFC791中进行了定义,IP协议是网络层的核心协议,在EmbedIP中暂不支持IP包的分片传送和重组,在这样的情况下,通常IP包头长度都是标准的20字节。

根据IP包头的协议格式可以得出IP包头的C语言描述。IP包头的C语言描述见上。对于网络层来说主要处理的是IP包头,由IP包头的判断决定下一步使用的处理协议。IP包头的处理流程参见图2。在图2中有5个包含有检查字样的活动状态,在这5个检查状态中一旦检查出错就直接转到终止状态。

4 EmbedIP中的TCP协议

为使TCP协议能在嵌入式的环境中运行,可进行裁减。

现设计的嵌入式TCP/IP主要应用于服务器端,因此那些在客户端才会使用的TCP协议部分就将其裁减掉。这样在TCP协议中就不支持主动打开,与之相应的状态就不再实现,而仅支持被动打开。同时地,超时处理的相关模块也就不用实现与之相关的内容。考虑到在实用中时很少使用urgent功能,所以urgent功能也裁减掉,不实现。因窗口协议需要大量的缓冲区,这在嵌入式系统中,没有足够的RAM来完成这一要求,因此,TCP窗口协议也裁减掉,不实现。这样一来,TCP协议就变得相对简单,TCP协议的实现也就集中到TCP状态机的实现上,这不仅能符合实际需求,还能使TCP协议能在小型嵌入式系统上良好的运行。

TCP协议的整体流程见图3。IP包头处理完后,若是TCP协议,那么程序就会转入TCP处理模块,这也就是TCP协议处理的开始。TCP协议的处理通常是按照TCP的标志位进行分流的,从而转向不同的处理过程。TCP协议在开始处理时,最为重要的步骤是根据TCP段的IP地址,端口号区分该段是一要求建立新连接的段还是一已存在的连接的TCP段,然后才进行进一步的处理。对于是一要求建立新连接的TCP段,先找到一个未用的连接数据结构,然后根据所得的TCP段填写相关的内容,一切好了以后,被动打开端应返回确认帧,并为三次握手定理作好准备,这个时候作为被动打开端的服务器的TCP连接状态处于SYN_RCVD状态。当TCP段的IP地址和端口信息为某一连接的信息时,证明该TCP段为某一连接应处理的TCP段,这个时候,程序对TCP段进行必要的处理后就进入到TCP状态机的处理。

当所有输入处理都完成了,程序将根据是否有数据要发送的信号为数据的发送准备数据,最终设置并启动数据发送函数。

TCP状态机的处理通常伴随着超时处理,两者相辅相成共同完成任务。因在TCP协议的实现时对TCP协议进行了裁减,并裁减了一部分TCP状态,这造成在状态机转换时与RFC标准有所不同,但实现了的状态机转换一定必须符合RFC标准。现已实现的TCP状态机转化和超时处理见图4。

图4 状态机转化和超时处理 图5 TCP层数据发送流程

TCP协议是基于IP协议的,所以其在进行数据发送时就比IP协议的数据发送处理要复杂,这里就对TCP协议进行发送的流程作一说明。TCP协议层的数据发送过程见图5。

以上的流程在实现时用两个函数TCPSndPreProc()和TCPAppDataSnd()进行了抽象。由图5可见,数据发送时,由高层数据开始,往底层处理,处理每一层时加上符合该层的数据,最终调用链路层接口将数据发送出去。

5 结束语

在本嵌入式TCP/IP的设计与实现中,设计和实现了TCP/IP协议通信的必要部分,这包括:IP、TCP、ARP、ICMP协议的实现四个部分。结合应用实践,实现时进行了必要剪裁,通过测试该协议正确,在此基础上今后可进一步对EmbedIP进行完善,以使其更为有用和更为健壮。

参考文献:

[1] Stevens W R.TCP/IP详解 卷一:协议(英文版)[M].北京:机械工业出版社,2002.

[2] Stevens W R.TCP/IP详解 卷三:TCP事务协议(英文版)、HTTP、NNTP和UNIX域协议(英文版)[M].北京:机械工业出版社,2002.

[3] Stevens W R.TCP/IP详解 卷二:实现(英文版)、HTTP、NNTP和UNIX域协议(英文版)[M].北京:机械工业出版社,2002.

读书破万卷下笔如有神,以上就是一米范文为大家带来的3篇《tcp协议》,希望可以启发您的一些写作思路。

最新范文

113 14195