一种局域网内可靠通信的方法

文档序号:7654535阅读:194来源:国知局
专利名称:一种局域网内可靠通信的方法
技术领域
本发明涉及通信技术,尤其涉及一种局域网内可靠通信的方法。
技术背景在网络通信中,两个通信单元之间进行通信时,为保证通信的可靠性,一般釆用TCP (传输控制协议)协议。TCP (Transmission Control Protocol,传输 控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建 立可靠的连接。 一个TCP连接必须要经过三次握手才能建立起来,TCP+办议 通过三次握手,序列化应答和必要时重发数据包为应用程序提供了可靠的连接 服务和传输流服务。TCP协议是在不可靠网络和协议上实现的高可靠性通信协 议。UDP (User Data Protocol,用户数据报协议)是与TCP相对应的协议,它 是面向非连接的协议,"面向非连接"就是在正式通信前不必与对方先建立连 接,不管对方状态就直接发送。在局域网内的网络通信中,由于局域网内部网络的结构较简单,不如城域 网和广域网的网络结构复杂,因此其通信环境较好,丢包率和误码率较低。如 果局域网内的通信单元之间采用TCP协议进行通信,虽然传输可靠性得到了 保证,但其传输速度很慢,传输效率较低。而如果局域网内的通信单元之间采 用UDP协议进行通信,则其传输的可靠性较差,无法保证不出现乱序包,重 复包,丢包等现象。发明内容本发明提供一种局域网内可靠通信的方法,使得局域网内的通信单元在进行通信时能够同时兼顾传输效率及传输可靠性。一种局域网内可靠通信的方法,包括步骤A、 第一通信单元与第二通信单元通过三次握手才几制实现发送序号和接收 序号的同步,完成传输链路的建立;B、 第 一通信单元判断应用进程提交的待发送的数据包是否需要进行拆包, 若是,则将其拆分成若干个子包后发送给第二通信单元,否则,直接将其发送 给给第二通信单元;C、 第二通信单元判断接收到的数据包的包序号与等待接收序号是否相同, 若相同且该数据包未经过拆包处理,则直"J妄将该数据包4是交给应用进程,否则, 在该数据包的包序号位于接收窗口内时,将该数据包存放到接收队列中。较佳的,所述步骤A具体包括步骤链路在初始态时,第一通信单元对链路结构进行初始化操作,初始化完成 后向第二通信单元发送同步包;第二通信单元从收到的同步包中获取第 一通信单元的发送序号,将该序号 加一后赋予等待接收序号,然后向第 一通信单元返回同步包,链路进入同步态;第一通信单元从接收到的同步包获取第二通信单元的发送序号,将该序号 加一后赋予等待接收序号,然后向第二通信单元返回应答包;第二通信单元从接收到的应答包中获取第一通信单元的发送序号,将其赋 予等待接收序号,链路进入完成态。较佳的,所述链路在完成态时,当空闲时长超过第一预设时长时,通信单 元通过发送同步包检测链路的可用性;若间隔第二预设时长后仍没有收到针对所述同步包的应答包,则将等待发送队列中的数据包和接收队列中的数据包清除,进行链路重建。较佳的,所述链路在完成态时,若通信单元收到的同步包的序号与等待接 收序号不一致,则将等待发送队列中的数据包和接收队列中的数据包清除,进 行链路重建较佳的,所述拆包后的各子包包头的包类型中设置有拆包标志。较佳的,所述步骤C中,当接收到的凄t据包的包序号与等待接收序号不同时,若数据包的包序号不在接收窗口内,则将该数据包丢弃;当接收到的数据包的包序号与等待接收序号相同,4旦该数据包为拆分后的子包,则将该数据包存放到接收队列中,待全部子包接收完成后,根据其包头中携带的拆包标志对其进行组包处理。 较佳的,所述步骤C中还包括步骤第二通信单元将数据包提交给应用进程后,将等祠:接收序号加一;第二通信单元判断接收队列中是否存在包序号与当前等待接收序号相同 的数据包,若存在,则将该数据包提交给应用进程,将等待接收序号加一,重 复执行本步骤,否则,等待接收第一通信单元发出的凄史据包。较佳的,所述步骤C中,若当前链路的包传输速率小于第一阈值,则第二 通信单元每接到一个数据包即向第一通信单元返回相应的应答包,或者在未应 答的数据包的累计值达到第三阔值时向第一通信单元返回相应的应答包;若当前链路的包传输速率大于第二阈值,则第二通信单元每间隔预设时长 向第一通信单元返回一个应答包,或者在未应答的凝:据包的累计值达到第四阈 值时向第一通信单元返回相应的应答包;其中第一阈值小于第二阈值,第三闽值小于第四阈值。较佳的,所述第一通信单元收到对数据包的应答包时,判断应答包的序号 是否在等待应答范围内,若是,将该数据包从等待应答队列中删除,否则,丟 弃该应答包。较佳的,链路在完成态时,在发送数据包同时,需设置相应的应答等待时 长,若应答等待时长超时后仍没有收到相应的应答包,则重发该数据包,并将 包重发计数值加一。较佳的,所述重发计数值大于预设数值时,第一通信单元与第二通信单元 进行链路重建。较佳的,链路在完成态时,当成功发送一个非重发的数据包时,将发送窗口的值增加第一预设值,将重发超时时长减少第二预诏 (i,当数据包超时重发 时,将发送窗口的值减少第三预设值,将等待应答时长增加第四预设值。本发明方法依据局域网内通信环境的特点,在UDP协议基础上移植了 TCP 协议的高效和可靠性控制,与现有技术相比,使得局i^网内的通信单元在进行 通信时能够同时兼顾传输效率及传输可靠性,大大降4氐了通信单元在满负荷工 作时的CPU占有率,提高局域网内通信单元的通信能力。


图1为本发明局域网内可靠通信的方法的流程图;图2为本发明中通信单元之间建立传输链路的流程图;图3为本发明中发送方通信单元对欲发送的数据包进行处理的的流程图;图;图5为本发明中接收方通信单元接收数据包的流程图。
具体实施方式
本发明依据局域网内通信环境的特点,在UDP协i义基础上移植了 TCP协 议的高效和可靠性控制,大大降低了通信单元的CPU占有率,实现了一种在 局域网内高效安全可靠的通信方法,提高局域网内通信单元的通信能力。下面结合各个附图对本发明的具体实施过程进行进一步详细的说明。本发明中通信单元的通信链路有三种状态,分别是初始态 (INIT—STATE),同步态(SYN—STATE )和完成态(FIN_STATE )。其中通信 单元启动时链路状态为初始态,同步态用于与对端同步双方包序号,包序号同 步完成后,通信链路进入完成态。在初始态和同步态,链路不能接收数据包。在通信链路上,有三种包类型分别是同步包(SYN—PACKAGE )、数据包(DATA_PACKAGE )和应答包(ACK—PACKAGE ),下面分别对其予以说 明同步包在开始建链时发送,用于向通信对端告诉本端的起始发送序号,在 链路空闲超过预设时间(如2秒)后,也会发送同步包,用于检测链路;数据包用于携带应用数据,当数据包的长度大于预设长度时,需要将其拆 分为若干个子包后发送;在链路进入完成态后,通信单元收到对端发送的凄t据包或同步包后,向对 端返回应答包。本发明中《连路传输的同步包、数据包和应答包使用统一的包头结构,如下 typedef structlong package—no; /*发送包序号*/long package—ack; /*对应答的包序号*/unsigned short sunit—no; /*通信单元编号*/ unsigned short package—type; /*包类型*/ unsigned short bufflen; /*内容长度"} packagehead;其中,同步包和数据包在发送时都占一个发送序号,而应答包不占序号, 大数据包在经过拆包后,每个子包也各占用一个序号。凝:据包拆包的标志使用 位域方式来标识,没有拆包的数据包的包类型为DATA—PACKAGE,而数据拆 包后第一个子包的包类型值为DATA—PACKAGE |SPLIT—START,中间子包的 包类型值为DATA—PACKAGE |SPUT—FLAG,最后一个子包的包类型值为 DATA—PACKAGE |SPLIT—END。内容长度用于指示链^各包所携带的数据长度, 不含包头,对于同步包和应答包,其值为O。本发明中定义的链路包发送队列的结构如下 typedef structunsigned char rescount; /*重发计数*/unsigned short timelen; /*重发剩余时长*/ unsigned char *buff; /*内容緩冲区*/}udpsque;发送队列结构中的重发计数(rescount)用于记录链^各包的重复发送次凄t, 如果一个包(包括数据包和同步包)重发次数超过预_没次数(如6次),则认 为该链路异常,需要重新建立链接。重发剩余时长(timelen)是一个链路包在 链路上发出后,等待对端应答的最大时长,超过该时长后就将该包重发,同时 将重发计数(rescount)加1。内容緩冲区(buff)用于保存发送信息的指针, 包括包头和包内容。本发明中定义的链路包接收队列的结构如下typedef struct{unsigned char *buff; /*内容緩冲区*/}udprquej接收队列中内容緩冲区(buff)用于保存从网络上"t妻收信息的指针,包括包头和包内容。本发明中定义的链路结构如下 typedef structunsigned short state; struct sockaddr一in PeerAddr;unsigned short timeoutjen; unsigned short swindow; long snext—no;long sunackjno;/*链路状态*/ /*对端通信单元IP地址*//*重发超时时长*/ /*发送窗口大小*/ /*等待发送序号*/ /*等待应答序号*unsigned short rwindow; /*才妄4欠窗口大'』、*/long mext—no; /*下一个接收包序号*//*发送队列*/unsigned short sendque_len; unsigned short sendque_start; unsigned short sendque一snext; unsigned short sendque—end;/*发送队列长度*//*开始位置,已发送未应答位置*//*等待发送位置*//*结束位置*/udpsquesendque[MAX—UDP一QUEUE];/*接收队列*/unsigned short recvque一len; /*才妄*]欠队歹寸长度*/ unsigned short recvque—start; /承起i会4立置817 unsigned short recvque一end; /*结束位置*/ udprquerecvque[MAXUDP QUEUE]; }udplink;链路结构中的重发超时时长(timeout—len )和发送窗口大小(swindow ) 用于拥塞控制。接收窗口 (rwindows)为固定值,为发送窗口的最大值。发送 队列用于临时存放需要应答的包,队列由3部分组成l)空白部分,没有存 放数据,从结束位置(sendque一end)开始到开始位置(sendque—start); 2)未 发送部分,还没有在链路上发出的包,从等待发送位置(sendque_snext)开始 到结束位置(sendque—end); 3 )等待应答部分,已在链路上发出等待对方应答, 从开始位置(sendque—start)开始到等待发送位置(sendque—snext )。接收队列 用于存放从链路层接收到的还没有提交给应用层的包,有两种情况的链路包需 要入队列l)经过分拆的数据包,将各子包存放在相应的接收队列中,待全部子包接收完成后,再进行组包;2)乱序的包,后面的包先收到,将其存放 到接收队列中,等待前面的包收到后,再处理提交。请参阅图1,该图为本发明局域网内可靠通信的方法的流程图,其主要包 括步骤步骤10、通信单元启动时,创建本端通信的套接字(SOCKET),用于发 送和接收数据,对链路结构进行清零操作,通信链路进入初始态,启动建链过程。本发明中可为每个通信单元分配一个序号,或利用通信单元配置的IP地 址中的主机标识计算出通信单元的序号。本实施例中采取大序号通信单元主动向小序号通信单元发起建链,小序号 通信单元被动应答的建链策略,下述第一通信单元为大序号通信单元,第二通 信单元为小序号通信单元。步骤11、第一通信单元与第二通信单元通过三次握手机制实现发送序号和 接收序号的同步,完成传输链路的建立。局域网内通信单元间的链路建立使用三次握手机制,通过发送同步包和应 答包实现。请参阅图2,该图为本发明中通信单元之间建立传输链路的流程图, 其主要实现过程如下l)链路在初始态时,第一通信单元对链路结构进行初始化操作,初始化 完成后向第二通信单元发送同步包;第 一通信单元对链路结构进行初始化操作的具体过程为第 一通信单元获 取第二通信单元的IP地址,将发送窗口 (swindow)置预设值(如1 ),重发超 时时长(timeout—len )置预设值(如2秒),预置本端链路结构的发送序号 (snext—no )为随机值,并把该值赋给等待应答序号(sunack—no ),下一个接收 包序号(rnext—no)置为-1,表示未与对端同步序号,将接收窗口 (rwindow) 的值设置为发送窗口 (swindow)的最大值(如100),对发送队列和接收队列 进行初始化。2) 第二通信单元从收到的同步包中获取第一通信单元的发送序号,将该 序号加一后赋予链路结构的等待接收序号(rnext—no),然后向第一通信单元返 回同步包,链路进入同步态。3) 第一通信单元从接收到的同步包获取第二通信单元的发送序号,将该 序号加一后赋予链路结构中的等待接收序号(rnext—no),然后向第二通信单元 返回应答包。4) 第二通信单元从接收到的应答包中获取第一通信单元的发送序号,将 其赋予链路结构中的等待接收序号(rnext—no ),链路进入完成态。步骤12、第一通信单元向第二通信单元发送数据包,同时设定相应的应答 等待时长;请参阅图3,该图为本发明中发送方通信单元对^t发送的数据包进行处理 的的流程图,其具体实现过程为步骤120、第一通信单元中的应用进程要发送数据包时,调用协议层接口 函数,接口函数先判断链路状态是否为完成态,若是,执行步骤122,否则, 执行步骤121;步骤121、接口函数向应用进程返回失败消息;步骤122、接口函数判断应用进程提交的待发送的数据包的长度是否大于 预设的长度MAX—PACKET—UNIT,若是,执行步骤125,否则,执行步骤123;步骤123、申请数据包长度的緩沖区,把包类型(package—type)置为数据 包类型,通信单元编号(sunit—no)置为本端编号;步骤124、将数据包添加到发送队列尾,通过调用链路的发送队列发送过 程进行数据包的发送;步骤125、接口函数对数据包进行拆包处理,将其拆分成若干个子包,并 在各子包包头的包类型中设置拆包标志,其中拆包后第一个子包的包类型值为 DATA—PACKAGE |SPLIT—START,中间子包的包类型值为DATA—PACKAGE ISPLIT—FLAG,最后一个子包的包类型值为DATA—PACKAGE |SPLIT—END、以便第二通信单元接收到包时,能够进行组包处理;步骤126、为各个子包申请緩沖区,把包类型(package_type)置为数据包 类型,通信单元编号(sunit一no)为本端编号,其中起始子包和中间子包的内 容长度为MAX—PACKET—UNIT减去包头长度,结束包的内容长度为剩余长度;步骤127、将各个子包依次添加到发送队列尾,通过调用链路的发送队列 发送过程进行数据包的发送。请参阅图4,该图为本发明中通过调用链if各的发送队列发送过程进行数据 包发送的流程图,主要包括步骤步骤220、通过判断发送队列中的等待发送位置(sendque—snext)是否和 队列尾位置(sendque—end )相等确定发送队列中是否有数据包未发送,若是, 则返回,否则,执行下一步骤;步骤221、通过判断发送队列中已发送未应答数据包的数目是否超过链路 当前的发送窗口 (swindow)确定发送窗口是否已满,所述已发送未应答数据 包的数目为发送队列起始位置(sendque—start)和等待发送位置(sendque_snext) 之间的包数目,若是,则返回,否则,执行下一步骤;步骤222、对包头置上包序号和应答序号,从SOCKET发送出去。步骤223、将发送队列的重发计数置1,将重发剩余时长置为链路结构中 的重发超时时长,将链路结构的发送序号加1,将发送队列中的等待发送位置 (sendque—snext)指向下 一个位置。步骤13、第二通信单元接收第一通信单元发出的数据包;请参阅图5,该图为本发明中接收方通信单元接收数据包的流程图,其具 体过程为步骤130、判断接收到的数据包的包序号(package—no)与等待接收序号 (mext—no)是否相同,若相同,执行步骤133,否则,执行步骤131;步骤131、判断接收到的数据包的包序号是否在接收窗口内,若是,执行 步骤132,否则,将该数据包丢弃;步骤132、将该数据包存放到接收队列中。步骤133、判断所述数据包是否经过拆包处理,若是,执行步骤132,否 则,执行步骤134;步骤134、将该数据包提交给应用进程,将等待接收序号(mextjio)加一;步骤135、判断接收队列中是否存在包序号与当前等待接收序号(mext一no ) 相同的数据包,若存在,则返回步骤134,否则,执行步骤136;步骤136、等待接收第一通信单元发出的数据包。步骤14、第二通信单元在第一通信单元的应答等待时长超时前向第一通信 单元返回应答包;若当前链路的包传输速率小于第一阈值,则第二通信单元每接到一个数据 包即向第一通信单元返回相应的应答包,或者在未应答的数据包的累计值达到 第三阈值时向第一通信单元返回相应的应答包;若当前链路的包传输速率大于第二阈值,则第二通信单元每间隔预设时长 向第一通信单元返回一个应答包,或者在未应答的勒:据包的累计值达到第四阈 值时向第一通信单元返回相应的应答包;其中第一阔值小于第二阈值,第三阈值小于第四阔值。发送应答包时,将包类型(package—type )置为应答包类型,内存长度 (bufflen)置为0,通信单元编号(sunit—no )置为本端编号,把链路结构中等 待发送序号(snext_no)赋给发送包序号(package_no ),链路结构中下一个接 收包序号(rnext—no)赋给对应答的包序号(package—ack),然后直接将应答包 从SOCKET发送出去即可。步骤15、第一通信单元接收应答包;第 一通信单元在接收到对数据包的应答包时,应判断应答包的序号 (package_ack)是否在等待应答范围内,即(package—ack)在链路的等待应 答序号(sunack_no)和等待发送序号(snext—no )之间,若是,则将该数据包 从等待应答队列中删除,否则,丢弃该应答包。若第一通信单元在应答等待时长超时后仍没有收到相应的应答包,则重发 该数据包,并将包重发计数值加一,当所述重发计数值大于预设数值时,第一 通信单元与第二通信单元进行链路重建。本发明所述方法中,两种情况下需要发送同步包,第一种情况时在链路建 立时;第二中情况是在链路处于完成态时,当链路空闲超过第一预设时长(如 2秒)后,需要通过发送同步包检测链路的可用性,这两种情况下均要求发送 队列为空。上述第二种情况下发送同步包时,可采用由大序号通信单元向小序号通信 单元发送同步包的同步包发送机制,若间隔第二预设时长(如10秒)后大序 号通信单元仍没有收到针对所述同步包的应答包,则说明链路异常,大序号通 信单元将等待发送队列中的数据包和接收队列中的数据包清除后,进行链路重 建。所述链路在完成态时,若通信单元收到的同步包的序号与等待接收序号不 一致,则将等待发送队列中的数据包和接收队列中的数据包清除后,进行链路 重建。本发明中发送同步包的主要实现过程为步骤301、判断发送队列是否为空,若是,执行步骤302,否则,直接返回;步骤302、申请包头结构(packagehead )长度的緩冲区,把包类型 (package—type)设置为同步包类型,内存长度(bufflen )置零,通信单元编 号(sunit—no)设置为本端编号,把等待发送序号(snext—no)赋予发送包序号 (package—no ),将下一个接收包序号(rnext—no )赋予对应答的包序号 (package—ack);步骤303、将同步包添加到发送队列中,调用链路发送该同步包。 本发明通过链路结构中的重发超时时长(timeout—len )字段和发送窗口 (swindow)字段实现拥塞控制。其中发送窗口 ( swindow)用于控制向链路上同时发送数据包不必马上等待应答包的数目;重发超时时长(timeout—len)用于 控制包重发的时间长度,值越大等待的时间越长。链路刚建立时,发送窗口大 小为初始值(如1 ),重发超时时长为UDP—NORMALRXT (2秒)。在发送成 功一个没有重发的数据包时,将发送窗口的值增加第一预设值(如l),将重发 超时时长减少第二预设值(如200ms),当数据包超时重发时,将发送窗口的 值减少第三预设值(如5),将等待应答时长增加第四预设值(如400ms )。链路在完成态时,当成功发送一个非重发的数据包时,将发送窗口的值增 加第一预设值,将重发超时时长减少第二预设值,当数据包超时重发时,将发 送窗口的值减少第三预设值,将等待应答时长增加第四预设值。明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种局域网内可靠通信的方法,其特征在于,包括步骤A、第一通信单元与第二通信单元通过三次握手机制实现发送序号和接收序号的同步,完成传输链路的建立;B、第一通信单元判断应用进程提交的待发送的数据包是否需要进行拆包,若是,则将其拆分成若干个子包后发送给第二通信单元,否则,直接将其发送给给第二通信单元;C、第二通信单元判断接收到的数据包的包序号与等待接收序号是否相同,若相同且该数据包未经过拆包处理,则直接将该数据包提交给应用进程,否则,在该数据包的包序号位于接收窗口内时,将该数据包存放到接收队列中。
2、 如权利要求l所述的方法,其特征在于,所述步骤A具体包括步骤 链路在初始态时,第一通信单元对链路结构进行初始化操作,初始化完成后向第二通信单元发送同步包;第二通信单元从收到的同步包中获取第一通信单元的发送序号,将该序号 加一后赋予等待接收序号,然后向第 一通信单元返回同步包,链路进入同步态;第 一通信单元从接收到的同步包获取第二通信单元的发送序号,将该序号 加一后赋予等待接收序号,然后向第二通信单元返回应答包;第二通信单元从接收到的应答包中获取第一通信单元的发送序号,将其赋 予等待接收序号,链路进入完成态。
3、 如权利要求1所述的方法,其特征在于,所述链路在完成态时,当空 闲时长超过第一预设时长时,通信单元通过发送同步包检测链路的可用性;若间隔第二预设时长后仍没有收到针对所述同步包的应答包,则将等待发送队列中的数据包和接收队列中的数据包清除,进行链路重建。
4、 如权利要求1所述的方法,其特征在于,所述链路在完成态时,若通 信单元收到的同步包的序号与等待接收序号不一致,则将等待发送队列中的数 据包和接收队列中的数据包清除,进行链路重建。
5、 如权利要求1所述的方法,其特征在于,所述拆包后的各子包包头的 包类型中设置有拆包标志。
6、 如权利要求5所述的方法,其特征在于,所述步骤C中,当接收到的 数据包的包序号与等待接收序号不同时,若数据包的包序号不在接收窗口内, 则将该数据包丢弃;当接收到的数据包的包序号与等待接收序号相同,但该数据包为拆分后的 子包,则将该数据包存放到接收队列中,待全部子包接收完成后,根据其包头 中携带的拆包标志对其进行组包处理。
7、 如权利要求6所述的方法,其特征在于,所述步骤C中还包括步骤 第二通信单元将数据包提交给应用进程后,将等待接收序号加一; 第二通信单元判断接收队列中是否存在包序号与当前等待接收序号相同的数据包,若存在,则将该数据包提交给应用进程,将等待接收序号加一,重 复执行本步骤,否则,等待接收第一通信单元发出的lt据包。
8、 如权利要求l所述的方法,其特征在于,所述步骤C中,若当前链路 的包传输速率小于第 一阈值,则第二通信单元每接到一个数据包即向第 一通信 单元返回相应的应答包,或者在未应答的数据包的累计值达到第三阈值时向第 一通信单元返回相应的应答包;若当前链路的包传输速率大于第二阈值,则第二通信单元每间隔预设时长 向第一通信单元返回一个应答包,或者在未应答的数据包的累计值达到第四阈 值时向第一通信单元返回相应的应答包;其中第一阈值小于第二阔值,第三阈值小于第四阈值。
9、 如权利要求8所述的方法,其特征在于,所述第一通信单元收到对数 据包的应答包时,判断应答包的序号是否在等待应答范围内,若是,将该数据 包从等待应答队列中删除,否则,丟弃该应答包。
10、 如权利要求l所述的方法,其特征在于,链路在完成态时,在发送数 据包同时,需设置相应的应答等待时长,若应答等待时长超时后仍没有收到相应的应答包,则重发该数据包,并将包重发计数值加一。
11、 如权利要求l所述的方法,其特征在于,所述重发计数值大于预设数 值时,第一通信单元与第二通信单元进行链路重建。
12、 如权利要求l所述的方法,其特征在于,链3各在完成态时,当成功发 送一个非重发的数据包时,将发送窗口的值增加第一预设值,将重发超时时长 减少第二预设值,当数据包超时重发时,将发送窗口的值减少第三预设值,将 等待应答时长增加第四预设值。
全文摘要
本发明公开了一种局域网内可靠通信的方法,包括第一通信单元与第二通信单元通过三次握手机制建立传输链路,第一通信单元判断应用进程提交的待发送的数据包是否需要进行拆包,若是,则将其拆分成若干个子包后发送给第二通信单元,否则,直接将其发送给第二通信单元,第二通信单元判断接收到的数据包的包序号与等待接收序号是否相同,若相同且该数据包未经过拆包处理,则直接将该数据包提交给应用进程,否则,在该数据包的包序号位于接收窗口内时,将该数据包存放到接收队列中。本发明使得局域网内的通信单元在进行通信时能够同时兼顾传输效率及传输可靠性。
文档编号H04L1/22GK101325539SQ20071011108
公开日2008年12月17日 申请日期2007年6月15日 优先权日2007年6月15日
发明者王新余, 高克林 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1