一种tcp报文的发送方法、接收方法及装置的制作方法

文档序号:7757004阅读:136来源:国知局
专利名称:一种tcp报文的发送方法、接收方法及装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种TCP报文的发送方法、接收方法及装置。
背景技术
低功耗传感器网络是由部署在监控区域内的大量的传感器节点和无线路由节点组成的网络系统,目前,IETF(The Internet Engineering Task R)rce,互联网工程任务组) 对低功耗传感器网络研究的一个重要方面在于如何提高低功耗传感器网络中的数据传输效率,针对此问题,IETF RFC (Request For Comments,请求评议)4944制定了对IPv6报头进行压缩的基本方法,该方法最多可以把IPv6报头压缩到2个字节,通过对IPv6报头压缩, 增加了可用于传输数据的字节,从而提高了数据传输效率。在此基础上,业界希望可以通过对TCP (Transmission Control Protocol,传输控制协议)报头进行压缩以进一步提高低功耗传感器网络中的数据传输效率,但目前IETF RFC4944还未针对低功耗传感器网络中TCP 报头的压缩提出具体的解决方案。在其他网络环境下的TCP报头压缩方法应用已比较普遍,例如,RFC1144制定的 TCP报头压缩方法,该压缩方法是将IPv4报头和TCP报头一起压缩,并且该压缩方法为有状态的压缩方法,即在生成一个基准的TCP/IP报头后,后续的报文只用传输相对的偏差,使得在接收端能够进行相应的解压缩。根据该方法,发送端和接收端都需要维护会话状态,发送端在每次传输报文时,需要根据维护的会话状态信息只传输报头中差异的字节信息,接收端也需要根据维护的会话状态信息进行相应的解压缩。上述方法可以实现对TCP报头的压缩,但该方法不能很好地适用于低功耗传感器网络,原因在于一方面,根据RFC1144制定的TCP报头压缩方法,需要在接收端和发送端维护TCP 会话的状态,维护会话状态一般需要消耗较多的内存资源,而在低功耗传感器网络中,传感器节点的内存一般都较低(有些不足10K字节),因此,对于传感器节点而言,保存不同的会话状态存在较大困难。因此,这种有状态的TCP报头压缩方法不能与RFC4944对于无状态压缩的要求兼容,不适用于低功耗传感器网络;另一方面,根据RFCl 144制定的TCP报头压缩方法,是将IPv4报头和TCP报头一起压缩,而RFC4944已经针对低功耗传感器网络制定了 IPv6报头的独立压缩方法,并且, RFC4944指定的对IPv6报头的压缩方法是无状态的压缩方法,因此RFCl 144制定的TCP报头压缩方法,不能符合RFC4944的要求,不适用于低功耗传感器网络。综上所述,现有技术还未针对低功耗传感器网络制定出符合IETFRFC4944要求的 TCP报头压缩方法。

发明内容
有鉴于此,本发明实施例提供一种TCP报文的发送方法、接收方法及装置,采用该技术方案对TCP报头进行压缩,能够符合IETF RFC 4944的要求,能够适用于低功耗传感器
6网络。本发明实施例通过如下技术方案实现根据本发明实施例的一个方面,提供了一种TCP报文的发送方法,包括确定待发送TCP报文的TCP报头的压缩状态;根据所述TCP报头的压缩状态,对所述TCP报头中预留出的设定比特位的用于指示所述TCP报头的压缩状态的扩展标识头赋值;在根据确定的所述压缩状态对包括赋值后的扩展标识头的所述TCP报头压缩后, 发送所述TCP报文。根据本发明实施例的一个方面,提供了一种TCP报文的接收方法,包括接收TCP报文;获取所述TCP报文的TCP报头中设定比特位的用于指示所述TCP报头的压缩状态的扩展标识头信息;根据所述扩展标识头信息确定所述TCP报头的压缩状态;根据确定的所述压缩状态对所述TCP报头进行解压缩处理。根据本发明实施例的一个方面,提供了一种TCP报文的发送装置,包括状态确定单元,用于确定待发送TCP报文的TCP报头的压缩状态;扩展标识头赋值单元,用于根据所述状态确定单元确定的TCP报头的压缩状态, 对所述TCP报头中预留出的设定比特位的用于指示所述TCP报头的压缩状态的扩展标识头赋值;报头处理单元,用于在根据所述状态确定单元确定的所述压缩状态对包括赋值后扩展标识头的所述TCP报头压缩后,发送所述TCP报文。根据本发明实施例的一个方面,提供了一种TCP报文的接收装置,包括接收单元,用于接收TCP报文;获取单元,用于获取所述接收单元接收的TCP报文的TCP报头中设定比特位的用于指示所述TCP报头的压缩状态的扩展标识头信息;压缩状态确定单元,用于根据所述获取单元获取的扩展标识头信息确定所述TCP 报头的压缩状态;解压缩单元,用于根据所述压缩状态确定单元确定的所述压缩状态对所述TCP报头进行解压缩处理。通过本发明实施例提供的上述至少一个技术方案,在发送TCP报文时,首先确定待发送TCP报文的TCP报头的压缩状态,然后根据确定出的TCP报头的压缩状态,对该TCP 报头中预留出的设定比特位的用于指示TCP报头的压缩状态的扩展标识头赋值,并在根据确定的压缩状态对TCP报头压缩后,发送该TCP报文;在接收TCP报文时,首先获取该TCP 报文的TCP报头中设定比特位的用于指示TCP报头的压缩状态的扩展标识头信息,然后根据该扩展标识头信息确定TCP报头的压缩状态,并根据确定的压缩状态对TCP报头进行解压缩处理。该技术方案提供了 TCP报头的独立压缩与解压缩方法,通过TCP报头中的扩展标识头指示TCP报头的压缩状态,对于TCP报文的发送端而言,无需依据TCP会话的状态以确定对TCP报头的压缩方式,因此,无需维护TCP的会话状态;对于TCP报文的接收端而言, 根据接收的TCP报文的TCP报头中包括的扩展标识头确定对TCP报头的解压缩方式,无需依据TCP会话的状态以确定对TCP报头的解压缩方式,因此,无需维护TCP的会话状态,从而实现了 TCP报头的无状态压缩,能够适用于低功耗传感器网络,并且符合IETF RFC4944 的要求。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中图1为本发明实施例提供的TCP报头的格式示意图;图2为本发明实施例提供的TCP报头的扩展格式示意图;图3为本发明实施例提供的TCP报头中包括的扩展标识头的示意图;图4为本发明实施例提供的压缩处理后的TCP报头的具体示例;图5为本发明实施例提供的TCP报文的发送方法流程图;图6为本发明实施例提供的TCP报文的接收方法流程图;图7为本发明实施例提供的根据扩展标识头信息确定TCP报头的压缩状态的流程图一;图8为本发明实施例提供的根据扩展标识头信息确定TCP报头的压缩状态的流程图二;图9为本发明实施例提供的TCP报文的发送装置示意图;图10为本发明实施例提供的TCP报文的接收装置示意图;图11为本发明实施例提供的另一 TCP报文的接收装置示意图。
具体实施例方式为了给出能够符合IETF RFC 4944要求的TCP报头压缩方案,本发明实施例提供了一种TCP报文的发送方法、接收方法及装置,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。如图1所示,为TCP报头的格式,其中,TCP报头包括16比特位的源端口域和16比特位的目的端口域;32比特位的报文序列号域;32比特位的确认序列号域;4比特位的首部长度域、6比特位的保留比特位域、6比特位的控制域(UAPRSF)、16 比特位的窗口大小域;16比特位的校验和域、16比特位的紧急指针域;不定长度的选项域和填充域,其中,选项域长度不定,但长度必须以字节记,并且选项的具体内容视具体命令而定;填充域长度也不定,填充的内容必须为0。32比特位的数据载荷域,用于承载数据。
根据TCP报头的上述结构,在低功耗传感器网络中存在未被使用到的域以及存在冗余的域,具体如下一、TCP报头中未在低功耗传感器网络中实际使用到的域包括6比特位的保留比特位域,保留比特位域在首部长度之后,未被实际使用到;16比特位的紧急指针域,紧急指针域在校验和之后,在特殊情况下才被使用到,对于低功耗传感器网络来说,该域也未被实际使用到;选项域,由于选项域常用于标识MSS(最大报文段),因此在MTU (Maximum Transmission Unit,最大传输单元)值固定的低功耗传感器网络中该域未被实际使用到;16比特位的校验和域,由于在低功耗传感器网络中,802. 15. 4规定了对MAC层的校验措施,因此,在TCP协议层可以不采取校验措施,该校验和域未被实际使用到。根据本发明实施例,以上未被使用到的域可以在压缩时丢弃,具体地,对TCP报头压缩之前,丢弃该TCP报头中的设定域对应的比特位。其中,该设定域包括以上所述的保留比特位域、紧急指针域、选项域、校验和域中的至少一个域。二、TCP报头中在低功耗传感器网络中存在冗余比特位的域源端口域和目的端口域,分别为16比特位,但是在低功耗传感器网络中应用相对较少,因此,端口长度可以减少,该源端口域和目的端口域存在冗余比特位;具体地,端口域一般用于区分不同的应用类型,源端口域以及目的端口域包括的16位的端口号可以分别区分2的16次方种不同的应用。但是在低功耗传感器网络中的应用类型较少,所以端口号不用太长,压缩到4bit足够,即可以标识2的4次方种不同的应用。报文序列号域和确认序列号域,分别为32比特位,在低功耗传感器网络中,由于 TCP连接发送的数据包数量较少,因此,无需分配过长的序列号,该报文序列号域和确认序列号域存在冗余比特位;首部长度域,为4比特位,表示TCP报头的实际长度,但是TCP报头经过压缩,远远低于4比特可以标识的首部长度;窗口大小域,为16比特位,该域主要用于进行流量控制,由于低功耗传感器网络中传输的数据量较小,因此,该窗口大小域存在冗余比特位,一般可以压缩为8比特位。根据以上分析,本发明实施例提供了一种对TCP报头压缩的方法,具体如图2所示,为TCP报头的扩展格式,扩展后的TCP报头包括扩展标识头以及压缩后的TCP报头;其中,扩展标识头占用TCP报头的设定比特位,用于指示TCP报头的压缩状态,根据本发明优选实施例中,一般将TCP报头的前设定比特位预留为扩展标识头对应的比特位,以方便确定扩展标识头信息,进而对后续的报文进行压缩或解压缩处理,应当理解,扩展标识头占用TCP报头的前设定比特位仅为实施本发明的优选方式,实际应用中,该设定比特位的扩展标识头还可以占用TCP报头的其它比特位,以下以扩展标识头占用TCP报头的前设定比特位为例详细说明本发明实施例提供的技术方案。具体地,图2中所示的扩展标识头可以包括设定个分别占用1比特位的扩展标识位,其中每个扩展标识位与TCP报头中的域一一对应,并且该扩展标识位用于通过不同的值标识与其对应的域的不同压缩状态。
本发明一个优选实施例中,扩展标识头可以占用TCP报头的前8个比特位,具体如图3所示,该扩展标识头包括8个扩展标识位,每个扩展标识位占1比特位,其中,扩展标识头中的各扩展标识位代表的含义可以预先定义,例如,扩展标识头中各扩展标识位可以分别用于指示TCP报头中存在冗余比特位的域的压缩状态;或者,扩展标识头中的一部分扩展标识位可以用于指示TCP报头中未在低功耗传感器网络中实际使用到的域的压缩状态, 另一部分扩展标识位可以用于指示TCP报头中存在冗余比特位的域的压缩状态。根据本发明实施例,扩展标识头占用8个比特位仅为实施本发明的优选方式,实际应用中,可以根据实际需要设置该扩展标识头的位数,具体根据要指示的域的个数确定, 具体地,该扩展标识位的比特位数与要指示压缩状态的域的个数确定。为了更好地理解本发明实施例提供的扩展标识头,以下结合更为具体的实施例对该扩展标识头的具体含义进行说明该实施例中,以扩展标识头包括8个分别占用1比特位的扩展标识位为例,分别针对该扩展标识头中的8个扩展标识位代表的含义进行了定义,具体地,扩展标识头中各扩展标识位的定义如下Hl用于指示TCP报头中源端口域的压缩状态;H2用于指示TCP报头中目的端口域的压缩状态;H3用于指示TCP报头中报文序列号域的压缩状态;H4用于指示TCP报头中确认序列号域的压缩状态;H5用于指示TCP报头中首部长度域的压缩状态;H6用于指示TCP报头中窗口大小域的压缩状态;H7、H8两比特位为保留比特位,赞未定义。以上仅为实施本发明的优选方式,实际应用中,该扩展标识头可以包括以上扩展标识位中的一个或多个。根据该实施例定义的各扩展标识位代表的含义,Hl H6分别代表源端口域、目的端口域、报文序列号域、确认序列号域、首部长度域以及窗口大小域的压缩状态,H7、H8作为预留比特位,该扩展标识头一般占用TCP报头的前设定位,优选地,占用TCP报头的前8个比特位,即按照计算机程序处理数据的最小单位一个字节(8比特)。应当理解,该实施例中针对Hl H8定义的含义仅为实施本发明实施例的一种优选实施方式,该扩展标识头中各扩展标识位的具体含义可以根据实际需要灵活定义,此处不再赘述。考虑到报文接收端接收到TCP报文后,对TCP报头中各域的解析顺序,本发明优选实施例中,一般在对Hl H8代表的域进行定义时依据报文接收端解析域的顺序,即Hl H8分别代表的域在报文接收端依次被解析。根据本发明实施例,在确定扩展标识头中各扩展标识位在TCP报头中所对应的域后,可以进一步为该扩展标识位赋值,并通过扩展标识位的不同值标识与该扩展标识位对应的域的不同压缩状态。本发明一个更为具体的实施例中,针对上述各扩展标识位分别所指示的压缩状态,对各扩展标识位可以进行如下定义Hl = 0用于指示TCP报头的源端口域未被压缩、Hl = 1用于指示TCP报头的源端口域被压缩,进一步可以定义该源端口域被压缩的位数,例如,被压缩为4比特位;
H2 = 0用于指示TCP报头的目的端口域未被压缩、H2 = 1用于指示TCP报头的目的端口域被压缩,进一步可以定义该目的端口域被压缩的位数,例如,被压缩为4比特位;H3 = 0用于指示TCP报头的报文序列号域未被压缩、H3 = 1用于指示TCP报头的报文序列号域被压缩,进一步可以定义该报文序列号域被压缩的位数,例如,被压缩为4比特位;H4 = 0用于指示TCP报头的确认序列号域未被压缩、H4 = 1用于指示TCP报头的确认序列号域被压缩,进一步可以定义该确认序列号域被压缩的位数,例如,被压缩为4比特位;H5 = 0用于指示TCP报头的首部长度域未被压缩、H5 = 1用于指示TCP报头中的首部长度域被压缩,进一步可以定义该首部长度域被压缩的位数,例如,被压缩为2比特位;H6 = 0用于指示TCP报头的窗口大小域未被压缩、H6 = 1用于指示TCP报头的窗口大小域被压缩,进一步可以定义该窗口大小域被压缩的位数,例如,被压缩为8比特位。应当理解,该实施例中针对Hl H6的赋值以及各赋值代表的具体状态仅为实施本发明实施例的一种具体实施方式
,该扩展标识头中各扩展标识位的赋值以及各赋值代表的具体状态可以根据实际需要灵活定义,此处不再赘述。根据以上实施例,若TCP报头的扩展标识头为11111100,根据该扩展标识头,TCP 报头将被压缩为4个字节,具体如图4所示,为扩展标识头的编码是11111100时对应的压缩后的TCP报头,其中,源端口域和目的端口域对应的扩展标识位为1,该两个域均被压缩为4比特;报文序列号域和确认序列号域对应的扩展标识位为1,该两个域均被压缩为4比特;首部长度域对应的扩展标识位为1,该域被压缩为2比特,Flag(控制域)仍然为6bit,; 窗口大小域对应的扩展标识位为1,该域被压缩为8bit。基于上述TCP报头的扩展格式,本发明实施例提供了一种TCP报文的发送方法,如图5所示,该方法包括如下步骤步骤501、确定待发送TCP报文的TCP报头的压缩状态;步骤502、根据确定的该TCP报头的压缩状态,对TCP报头中预留出的前设定比特位的用于指示TCP报头的压缩状态的扩展标识头赋值;步骤503、在根据确定的压缩状态对该包括赋值后的扩展标识头的TCP报头压缩后,发送该TCP报文。上述实施例中,通过TCP报头中的扩展标识头指示TCP报头的压缩状态,对于TCP 报文的发送端而言,无需依据TCP会话的状态以确定对TCP报头的压缩方式,因此,无需维护TCP的会话状态。图5所示流程的步骤501中,确定待发送TCP报文的TCP报头的压缩状态时,可以根据具体的网络环境确定对TCP报头的各个域是否压缩,例如,在低功耗网络内部各网络节点之间通信时,由于对端的网络节点都支持该压缩方法,因此TCP报文发送端可以把TCP 报头的扩展标识头中的各扩展标识位都置为1 (如将Hl H6均置为1),这样,相关比特位都会被压缩。接收端接收到该经过压缩处理的TCP报头后,根据各扩展标识位的值,判断出相关比特位都已经进行压缩,则按照压缩的方式读取TCP报头,获取相关信息;在低功耗网络中的某一个网络节点和某网关通信时,由于网关上需要的端口号较多,目的端口不能被压缩,因此可以置目的端口号域对应的扩展标识位的值为用于指示未压缩的值(例如,根据上述实施例,可以置H2 = 0),而其他比特位置为1,这样,TCP报文的接收端就可以根据该目标端口域对应的扩展标识位的值,确定目标端口域未被压缩,从而从该未压缩字段中得到端口号的信息,进行TCP通信。具体地,上述步骤502中,根据确定的TCP报头的压缩状态,对TCP报头中预留出的前设定比特位的用于指示TCP报头的压缩状态的扩展标识头赋值时,可参照上述实施例中对扩展TCP报头的定义,具体依据对扩展标识头中各扩展标识位所定义的与该扩展标识位对应的域,以及该扩展标识位的不同值与对应域的不同状态之间的对应关系,例如,上述针对扩展标识头的具体实施例中,定义Hl用于指示TCP报头中源端口域的压缩状态,并且,Hl = 0用于指示TCP报头的源端口域未被压缩、Hl = 1用于指示TCP报头的源端口域被压缩为4比特位;根据上述定义,若步骤501确定源端口域不被压缩,则步骤502中置Hl = 0,若步骤501确定源端口域被压缩,则步骤502中置Hl = 1。步骤502的具体赋值过程与上述过程基本一致,此处不再赘述。基于上述TCP报头的扩展格式,本发明实施例提供了一种TCP报文的接收方法,如图6所示,该方法包括如下步骤步骤601、接收TCP报文;步骤602、获取该TCP报文的TCP报头中前设定比特位的用于指示TCP报头的压缩状态的扩展标识头信息;步骤603、根据获取的扩展标识头信息确定该TCP报头的压缩状态;步骤604、根据确定的所述压缩状态对所述TCP报头进行解压缩处理。上述实施例中,通过TCP报头中的扩展标识头指示TCP报头的压缩状态,对于TCP 报文的接收端而言,根据接收的TCP报文的TCP报头中包括的扩展标识头确定对TCP报头的解压缩方式,无需依据TCP会话的状态以确定对TCP报头的解压缩方式,因此,无需维护 TCP的会话状态。图6所示流程的步骤603中,根据扩展标识头信息确定TCP报头的压缩状态的过程,如图7所示,具体包括如下步骤步骤701、根据扩展标识头信息,确定该扩展标识头中包括的设定个分别占用1比特的扩展标识位的值;步骤702、分别根据各扩展标识位的值,确定各扩展标识对应的域的压缩状态。基于上述实施例针对各扩展标识位以及各扩展标识位的值的定义,上述步骤701 中,即根据扩展标识头信息,确定该扩展标识头中包括的设定个分别占用1比特的扩展标识位的值,具体包括根据该扩展标识头信息,确定该扩展标识头信息包括的用于指示TCP报头中源端口域压缩状态的扩展标识位Hl的值、用于指示TCP报头中目的端口域压缩状态的扩展标识位H2的值、用于指示TCP报头中报文序列号域压缩状态的扩展标识位H3的值、用于指示 TCP报头中确认序列号域压缩状态的扩展标识位H4的值、用于指示TCP报头中首部长度域压缩状态的扩展标识位H5的值、以及用于指示TCP报头中窗口大小域压缩状态的扩展标识位H6的值中的一个或多个。
基于上述实施例针对各扩展标识位以及各扩展标识位的值的定义,上述步骤702 中,即根据各扩展标识位的值,确定各扩展标识对应的域的压缩状态,具体包括在Hl为0时,确定TCP报头中的源端口域未被压缩、在Hl为1时,确定TCP报头中的源端口域被压缩,例如,被压缩为4比特位(具体根据对该报文压缩时定义的压缩位数确定);在H2为0时,确定TCP报头中的目的端口域未被压缩、在H2为1时,确定TCP报头中的目的端口域被压缩,例如,被压缩为4比特位(具体根据对该报文压缩时定义的压缩位数确定);在H3为0时,确定TCP报头中的报文序列号域未被压缩、在H3为1时,确定TCP 报头中的报文序列号域被压缩,例如,被压缩为4比特位(具体根据对该报文压缩时定义的压缩位数确定);在H4为0时,确定TCP报头中的确认序列号域未被压缩、在H4为1时,确定TCP 报头中的确认序列号域被压缩,例如,被压缩为4比特位(具体根据对该报文压缩时定义的压缩位数确定);在H5为0时,确定TCP报头中的首部长度域未被压缩、在H5为1时,确定TCP报头中的首部长度域被压缩,例如,被压缩为2比特位(具体根据对该报文压缩时定义的压缩位数确定);在H6为0时,确定TCP报头中的窗口大小域未被压缩、在H6为1时,确定TCP报头中的窗口大小域被压缩,例如,被压缩为8比特位(具体根据对该报文压缩时定义的压缩位数确定)。以上述实施例针对各扩展标识位的定义为例,TCP报文的接收端根据扩展标识头信息确定TCP报头的压缩状态时,首先分析TCP报头的扩展标识头中的8个扩展标识位,如果Hi为1,则表示相应的域被压缩,否则表示TCP报头中相应的域未被压缩。具体如图8所示,包括如下步骤步骤801、获取扩展标识头中的扩展标识位的值Hi ;步骤802、判断Hi = 0是否成立,若是,执行步骤803,若否,执行步骤804 ;步骤803、确定该扩展标识位对应的域未被压缩,则直接读取对应域的信息,至此, 流程结束;步骤804、确定该扩展标识位对应的域被压缩,则进行解压缩处理获取对应域的信息,至此,流程结束。上述流程中,步骤801中的i取值分别1、2......n,其中,η为扩展标识头中包括
的扩展标识位。相应地,与上述方法流程对应,本发明实施例还提供了一种TCP报文的发送装置, 如图9所示,该发送装置包括状态确定单元901、扩展标识头赋值单元902以及报头处理单元903 ;其中状态确定单元901,用于确定待发送TCP报文的TCP报头的压缩状态;扩展标识头赋值单元902,用于根据所述状态确定单元确定的TCP报头的压缩状态,对所述TCP报头中预留出的设定比特位的用于指示所述TCP报头的压缩状态的扩展标识头赋值;报头处理单元903,用于在根据所述状态确定单元确定的所述压缩状态对包括赋值后扩展标识头的所述TCP报头压缩后,发送所述TCP报文。本发明优选实施例中,图9所述的扩展标识头赋值单元902,具体用于对所述TCP报头中预留出的设定个分别占用1比特的扩展标识位赋值;其中,所述扩展标识位与所述TCP报头中的域一一对应,并且所述扩展标识位用于通过不同的值标识与其对应的域的不同压缩状态。本发明优选实施例中,图9所示的扩展标识头赋值单元902,具体用于对所述TCP 报头中预留出的如下扩展标识位中的一个或多个赋值用于指示TCP报头中源端口域压缩状态的扩展标识位Hl ;用于指示TCP报头中目的端口域压缩状态的扩展标识位H2 ;用于指示TCP报头中报文序列号域压缩状态的扩展标识位H3 ;用于指示TCP报头中确认序列号域压缩状态的扩展标识位H4 ;用于指示TCP报头中首部长度域压缩状态的扩展标识位H5 ;用于指示TCP报头中窗口大小域压缩状态的扩展标识位H6 ;预留扩展标识位H7 ;预留扩展标识位H8。本发明优选实施例中,图9所示的扩展标识头赋值单元902,具体用于在所述TCP报头中的源端口域的压缩状态为未被压缩时,所述Hl赋值为0 ;在所述TCP报头中的源端口域的压缩状态为被压缩时,所述Hl赋值为1 ;在所述TCP报头中的目的端口域的压缩状态为未被压缩时,所述H2赋值为0 ;在所述TCP报头中的目的端口域的压缩状态为被压缩时,所述H2赋值为1 ;在所述TCP报头中的报文序列号域的压缩状态为未被压缩时,所述H3赋值为0 时;在所述TCP报头中的报文序列号域的压缩状态为被压缩时,所述H3赋值为1 ;在所述TCP报头中的确认序列号域的压缩状态为未被压缩时,所述H4赋值为0 ; 在所述TCP报头中的确认序列号域的压缩状态为被压缩时,所述H4赋值为1 ;在所述TCP报头中的首部长度域的压缩状态为未被压缩时,所述H5赋值为0 ;在所述TCP报头中的首部长度域的压缩状态为被压缩时,所述H5赋值为1 ;在所述TCP报头中的窗口大小域的压缩状态为未被压缩时,所述H6赋值为0 ;在所述TCP报头中的窗口大小域的压缩状态为被压缩时,所述H6赋值为1。本发明优选实施例中,图9所示的报头处理单元903,还用于在根据所述状态确定单元确定的所述压缩状态对包括赋值后扩展标识头的所述 TCP报头压缩之前,丢弃所述TCP报头中的设定域对应的比特位。本发明优选实施例中,图9所示的报头处理单元903,具体用于在根据所述状态确定单元确定的所述压缩状态对包括赋值后扩展标识头的所述 TCP报头压缩之前,丢弃所述TCP报头中的保留比特位域、紧急指针域、选项域、校验和域中的至少一个域对应的比特位。上述发送装置可以应用于低功耗传感器网络中。应当理解,以上发送装置包括的单元仅为根据该装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的TCP报文的发送装置所实现的功能与上述实施例提供的TCP报文的发送方法流程一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例中已做详细描述,此处不再详细描述。相应地,与上述方法流程对应,本发明实施例还提供了一种TCP报文的接收装置, 如图10所示,该接收装置包括接收单元1001、获取单元1002、压缩状态确定单元1003以及解压缩单元1004 ;其中接收单元1001,用于接收TCP报文;获取单元1002,用于获取接收单元1001接收的TCP报文的TCP报头中设定比特位的用于指示所述TCP报头的压缩状态的扩展标识头信息;压缩状态确定单元1003,用于根据获取单元1002获取的扩展标识头信息确定所述TCP报头的压缩状态;解压缩单元1004,用于根据压缩状态确定单元1003确定的所述压缩状态对所述 TCP报头进行解压缩处理。如图11所示,本发明优选实施例中,图10所示的压缩状态确定单元1003,包括扩展标识位值确定模块1003A,用于根据所述扩展标识头信息,确定所述扩展标识头中包括的设定个分别占用1比特的扩展标识位的值;压缩状态确定模块1003B,用于分别根据所述扩展标识位值确定模块确定的扩展标识位的值,确定所述扩展标识对应的域的压缩状态。本发明优选实施例中,图11所示的扩展标识位值确定模块1003A,具体用于根据所述扩展标识头信息,确定所述扩展标识位信息中包括的用于指示TCP报头中源端口域压缩状态的扩展标识位Hl的值、用于指示TCP报头中目的端口域压缩状态的扩展标识位H2的值、用于指示TCP报头中报文序列号域压缩状态的扩展标识位H3的值、用于指示TCP报头中确认序列号域压缩状态的扩展标识位H4的值、用于指示TCP报头中首部长度域压缩状态的扩展标识位H5的值、以及用于指示TCP报头中窗口大小域压缩状态的扩展标识位H6的值中的一个或多个。本发明优选实施例中,图11所示的压缩状态确定模块1003B,具体用于在所述Hl为0时,确定所述TCP报头中的源端口域未被压缩、在所述Hl为1时, 确定所述TCP报头中的源端口域被压缩;在所述H2为0时,确定所述TCP报头中的目的端口域未被压缩、在所述H2为1时, 确定所述TCP报头中的目的端口域被压缩;在所述H3为0时,确定所述TCP报头中的报文序列号域未被压缩、在所述H3为1 时,确定所述TCP报头中的报文序列号域被压缩;在所述H4为0时,确定所述TCP报头中的确认序列号域未被压缩、在所述H4为1 时,确定所述TCP报头中的确认序列号域被压缩;在所述H5为0时,确定所述TCP报头中的首部长度域未被压缩、在所述H5为1时, 确定所述TCP报头中的首部长度域被压缩;在所述H6为0时,确定所述TCP报头中的窗口大小域未被压缩、在所述H6为1时, 确定所述TCP报头中的窗口大小域被压缩。
上述接收装置可以应用于低功耗传感器网络中。应当理解,以上接收装置包括的单元仅为根据该装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的TCP报文的接收装置所实现的功能与上述实施例提供的TCP报文的接收方法流程一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例中已做详细描述,此处不再详细描述。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种TCP报文的发送方法,其特征在于,包括 确定待发送TCP报文的TCP报头的压缩状态;根据所述TCP报头的压缩状态,对所述TCP报头中预留出的设定比特位的用于指示所述TCP报头的压缩状态的扩展标识头赋值;在根据确定的所述压缩状态对包括赋值后的扩展标识头的所述TCP报头压缩后,发送所述TCP报文。
2.如权利要求1所述的方法,其特征在于,所述TCP报头中预留出的设定比特位的扩展标识头,包括设定个分别占用1比特的扩展标识位;其中,所述扩展标识位与所述TCP报头中的域一一对应,并且所述扩展标识位用于通过不同的值标识与其对应的域的不同压缩状态。
3.如权利要求2所述的方法,其特征在于,所述扩展标识位具体包括如下中的一个或多个用于指示TCP报头中源端口域压缩状态的扩展标识位Hl ; 用于指示TCP报头中目的端口域压缩状态的扩展标识位H2 ; 用于指示TCP报头中报文序列号域压缩状态的扩展标识位H3 ; 用于指示TCP报头中确认序列号域压缩状态的扩展标识位H4 ; 用于指示TCP报头中首部长度域压缩状态的扩展标识位H5 ; 用于指示TCP报头中窗口大小域压缩状态的扩展标识位H6 ; 预留扩展标识位H7 ; 预留扩展标识位H8。
4.如权利要求3所述的方法,其特征在于,所述扩展标识位用于通过不同的值标识与其对应的域的不同压缩状态,具体包括所述Hl为0时,用于指示所述TCP报头中的源端口域未被压缩、所述Hl为1时,用于指示所述TCP报头中的源端口域被压缩;所述H2为0时,用于指示所述TCP报头中的目的端口域未被压缩、所述H2为1时,用于指示所述TCP报头中的目的端口域被压缩;所述H3为0时,用于指示所述TCP报头中的报文序列号域未被压缩、所述H3为1时, 用于指示所述TCP报头中的报文序列号域被压缩;所述H4为0时,用于指示所述TCP报头中的确认序列号域未被压缩、所述H4为1时, 用于指示所述TCP报头中的确认序列号域被压缩;所述H5为0时,用于指示所述TCP报头中的首部长度域未被压缩、所述H5为1时,用于指示所述TCP报头中的首部长度域被压缩;所述H6为0时,用于指示所述TCP报头中的窗口大小域未被压缩、所述H6为1时,用于指示所述TCP报头中的窗口大小域被压缩。
5.如权利要求1所述的方法,其特征在于,在根据确定的所述压缩状态对包括赋值后的扩展标识头的所述TCP报头压缩之前,还包括丢弃所述TCP报头中的设定域对应的比特位。
6.如权利要求5所述的方法,其特征在于,所述设定域包括保留比特位域、紧急指针域、选项域、校验和域中的至少一个域。
7.—种TCP报文的接收方法,其特征在于,包括 接收TCP报文;获取所述TCP报文的TCP报头中设定比特位的用于指示所述TCP报头的压缩状态的扩展标识头信息;根据所述扩展标识头信息确定所述TCP报头的压缩状态; 根据确定的所述压缩状态对所述TCP报头进行解压缩处理。
8.如权利要求7所述的方法,其特征在于,根据所述扩展标识头信息确定所述TCP报头的压缩状态,包括根据所述扩展标识头信息,确定所述扩展标识头中包括的设定个分别占用1比特的扩展标识位的值;分别根据所述扩展标识位的值,确定所述扩展标识对应的域的压缩状态。
9.如权利要求8所述的方法,其特征在于,根据所述扩展标识头信息,确定所述扩展标识头中包括的设定个分别占用1比特的扩展标识位的值,具体包括根据所述扩展标识头信息,确定所述扩展标识位信息中包括的用于指示TCP报头中源端口域压缩状态的扩展标识位Hl的值、用于指示TCP报头中目的端口域压缩状态的扩展标识位H2的值、用于指示TCP报头中报文序列号域压缩状态的扩展标识位H3的值、用于指示 TCP报头中确认序列号域压缩状态的扩展标识位H4的值、用于指示TCP报头中首部长度域压缩状态的扩展标识位H5的值、以及用于指示TCP报头中窗口大小域压缩状态的扩展标识位H6的值中的一个或多个。
10.如权利要求9所述的方法,其特征在于,分别根据所述扩展标识位的值,确定所述扩展标识对应的域的压缩状态,具体包括在所述Hl为0时,确定所述TCP报头中的源端口域未被压缩、在所述Hl为1时,确定所述TCP报头中的源端口域被压缩;在所述H2为0时,确定所述TCP报头中的目的端口域未被压缩、在所述H2为1时,确定所述TCP报头中的目的端口域被压缩;在所述H3为0时,确定所述TCP报头中的报文序列号域未被压缩、在所述H3为1时, 确定所述TCP报头中的报文序列号域被压缩;在所述H4为0时,确定所述TCP报头中的确认序列号域未被压缩、在所述H4为1时, 确定所述TCP报头中的确认序列号域被压缩;在所述H5为0时,确定所述TCP报头中的首部长度域未被压缩、在所述H5为1时,确定所述TCP报头中的首部长度域被压缩;在所述H6为0时,确定所述TCP报头中的窗口大小域未被压缩、在所述H6为1时,确定所述TCP报头中的窗口大小域被压缩。
11.一种TCP报文的发送装置,其特征在于,包括状态确定单元,用于确定待发送TCP报文的TCP报头的压缩状态; 扩展标识头赋值单元,用于根据所述状态确定单元确定的TCP报头的压缩状态,对所述TCP报头中预留出的设定比特位的用于指示所述TCP报头的压缩状态的扩展标识头赋报头处理单元,用于在根据所述状态确定单元确定的所述压缩状态对包括赋值后扩展标识头的所述TCP报头压缩后,发送所述TCP报文。
12.如权利要求11所述的装置,其特征在于,所述扩展标识头赋值单元,具体用于 对所述TCP报头中预留出的设定个分别占用1比特的扩展标识位赋值;其中,所述扩展标识位与所述TCP报头中的域一一对应,并且所述扩展标识位用于通过不同的值标识与其对应的域的不同压缩状态。
13.如权利要求12所述的装置,其特征在于,所述扩展标识头赋值单元,具体用于对所述TCP报头中预留出的如下扩展标识位中的一个或多个赋值用于指示TCP报头中源端口域压缩状态的扩展标识位Hl ; 用于指示TCP报头中目的端口域压缩状态的扩展标识位H2 ; 用于指示TCP报头中报文序列号域压缩状态的扩展标识位H3 ; 用于指示TCP报头中确认序列号域压缩状态的扩展标识位H4 ; 用于指示TCP报头中首部长度域压缩状态的扩展标识位H5 ; 用于指示TCP报头中窗口大小域压缩状态的扩展标识位H6 ; 预留扩展标识位H7 ; 预留扩展标识位H8。
14.如权利要求13所述的装置,其特征在于,所述扩展标识头赋值单元,具体用于 在所述TCP报头中的源端口域的压缩状态为未被压缩时,所述Hl赋值为0 ;在所述TCP报头中的源端口域的压缩状态为被压缩时,所述Hl赋值为1 ;在所述TCP报头中的目的端口域的压缩状态为未被压缩时,所述H2赋值为0 ;在所述 TCP报头中的目的端口域的压缩状态为被压缩时,所述H2赋值为1 ;在所述TCP报头中的报文序列号域的压缩状态为未被压缩时,所述H3赋值为0时;在所述TCP报头中的报文序列号域的压缩状态为被压缩时,所述H3赋值为1 ;在所述TCP报头中的确认序列号域的压缩状态为未被压缩时,所述H4赋值为0 ;在所述TCP报头中的确认序列号域的压缩状态为被压缩时,所述H4赋值为1 ;在所述TCP报头中的首部长度域的压缩状态为未被压缩时,所述H5赋值为0 ;在所述 TCP报头中的首部长度域的压缩状态为被压缩时,所述H5赋值为1 ;在所述TCP报头中的窗口大小域的压缩状态为未被压缩时,所述H6赋值为0 ;在所述 TCP报头中的窗口大小域的压缩状态为被压缩时,所述H6赋值为1。
15.如权利要求11所述的装置,其特征在于,所述报头处理单元,还用于在根据所述状态确定单元确定的所述压缩状态对包括赋值后扩展标识头的所述TCP 报头压缩之前,丢弃所述TCP报头中的设定域对应的比特位。
16.如权利要求15所述的装置,其特征在于,所述报头处理单元,具体用于在根据所述状态确定单元确定的所述压缩状态对包括赋值后扩展标识头的所述TCP 报头压缩之前,丢弃所述TCP报头中的保留比特位域、紧急指针域、选项域、校验和域中的至少一个域对应的比特位。
17.—种TCP报文的接收装置,其特征在于,包括 接收单元,用于接收TCP报文;获取单元,用于获取所述接收单元接收的TCP报文的TCP报头中设定比特位的用于指示所述TCP报头的压缩状态的扩展标识头信息;压缩状态确定单元,用于根据所述获取单元获取的扩展标识头信息确定所述TCP报头的压缩状态;解压缩单元,用于根据所述压缩状态确定单元确定的所述压缩状态对所述TCP报头进行解压缩处理。
18.如权利要求17所述的装置,其特征在于,所述压缩状态确定单元,包括扩展标识位值确定模块,用于根据所述扩展标识头信息,确定所述扩展标识头中包括的设定个分别占用1比特的扩展标识位的值;压缩状态确定模块,用于分别根据所述扩展标识位值确定模块确定的扩展标识位的值,确定所述扩展标识对应的域的压缩状态。
19.如权利要求18所述的装置,其特征在于,所述扩展标识位值确定模块,具体用于 根据所述扩展标识头信息,确定所述扩展标识位信息中包括的用于指示TCP报头中源端口域压缩状态的扩展标识位Hl的值、用于指示TCP报头中目的端口域压缩状态的扩展标识位H2的值、用于指示TCP报头中报文序列号域压缩状态的扩展标识位H3的值、用于指示 TCP报头中确认序列号域压缩状态的扩展标识位H4的值、用于指示TCP报头中首部长度域压缩状态的扩展标识位H5的值、以及用于指示TCP报头中窗口大小域压缩状态的扩展标识位H6的值中的一个或多个。
20.如权利要求19所述的装置,其特征在于,所述压缩状态确定模块,具体用于 在所述Hl为0时,确定所述TCP报头中的源端口域未被压缩、在所述Hl为1时,确定所述TCP报头中的源端口域被压缩;在所述H2为0时,确定所述TCP报头中的目的端口域未被压缩、在所述H2为1时,确定所述TCP报头中的目的端口域被压缩;在所述H3为0时,确定所述TCP报头中的报文序列号域未被压缩、在所述H3为1时, 确定所述TCP报头中的报文序列号域被压缩;在所述H4为0时,确定所述TCP报头中的确认序列号域未被压缩、在所述H4为1时, 确定所述TCP报头中的确认序列号域被压缩;在所述H5为0时,确定所述TCP报头中的首部长度域未被压缩、在所述H5为1时,确定所述TCP报头中的首部长度域被压缩;在所述H6为0时,确定所述TCP报头中的窗口大小域未被压缩、在所述H6为1时,确定所述TCP报头中的窗口大小域被压缩。
全文摘要
本发明公开了一种TCP报文的发送方法、接收方法及装置,在发送TCP报文时,确定待发送TCP报文的TCP报头的压缩状态,根据确定出的TCP报头的压缩状态,对该TCP报头中预留出的设定比特位的用于指示TCP报头的压缩状态的扩展标识头赋值,在根据确定的压缩状态对TCP报头压缩后,发送TCP报文;在接收TCP报文时,获取TCP报文的TCP报头中设定比特位的用于指示TCP报头的压缩状态的扩展标识头信息,根据该扩展标识头信息确定TCP报头的压缩状态,根据确定的压缩状态对TCP报头进行解压缩处理。采用该技术方案对TCP报头进行压缩,能够符合IETF RFC 4944的要求,能够适用于低功耗传感器网络。
文档编号H04L12/56GK102377651SQ20101025406
公开日2012年3月14日 申请日期2010年8月13日 优先权日2010年8月13日
发明者周博, 曹振, 邓辉 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1