基于TCP协议下的网络数据提取算法研究

基于TCP协议下的网络数据提取算法研究

ID:46419698

大小:68.00 KB

页数:7页

时间:2019-11-23

基于TCP协议下的网络数据提取算法研究_第1页
基于TCP协议下的网络数据提取算法研究_第2页
基于TCP协议下的网络数据提取算法研究_第3页
基于TCP协议下的网络数据提取算法研究_第4页
基于TCP协议下的网络数据提取算法研究_第5页
资源描述:

《基于TCP协议下的网络数据提取算法研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于TCP协议下的网络数据提取算法研究摘要通过TCP协议发送的数据包都会按字节进行编号处理,其目的是当对方在接到数据,在校验无误的情况下接收方将会发出ACK(传输正确确认信息)。如果发送数据端在预先设定时间内没有接到来自来接收端的确认信息,那么发送方将认为数据报文未止确到达接收端,需要重新发送数据。数据包进行编号的优点还有一个是确保接收端在收到数据时,能够正确快速的处理数据,确保有序,有效重组报文以及丢弃无效或冗余数据。【关键词】网络数据提取算法通过TCP协议发送的数据包都会按字节进行编号处理,其目的是为对方在接到数据,在校验无误的情况下接收方将

2、会发出ACK(传输正确确认信息)。如果发送数据端在预先设定时间内没有接到来自来接收端的确认信息,那么发送方将认为数据报文未正确到达接收端,需要重新发送数据。数据包进行编号的优点还有一个是确保接收端在收到数据时,能够正确快速的处理数据,确保有序,有效重组报文以及丢弃无效或冗余数据。TCP协议也不是I•全十美,其可靠性保障措施是以牺牲部分传输效率为代价而换来的。因而在实际网络应用中,TCP协议只用来传输关键的、靠性要求很高的网络键数据;而对于如即时视频数据、音频数据等等,因为其不惧怕掉包,所以在这类网络环境的传输则采用高效率的UDP协议。1TCP粘包

3、原因研究粘连数据包发生的原因可以两个方面来进行剖析,其原因可能是由数据发送端产生,也可能是由数据接端方造成。假如网络数据量较小,发送的网络数据包都很少,根据TCP协议自身的优化算法,通常会把这些数据整合成一个报文传输到接收端,基于这个原因接收方就收到了儿个数据包合成的粘包数据。第二,由于接收方计算机性能或者其它原因,可能不能及时的从网络1()缓存区中取走数据,进而导致发生在接收端的网络数据粘包。这是TCP协议自身算法原因,在网卡从网络上收到正确无误的数据时,需要将数据暂时放入系统网络10接收缓存区,等待上层应用程序从系统缓冲区取走网络数据,假如在

4、新的数据报文到达时,缓存区中旧的数据报文内容还没有被上层应用程序取走,那么就会发生新到数据包紧挨着旧数据包存放,形成一个大的数据块。而且上层应层程序只能按固定定大小的缓存区来取数据,由于有多个报文存在,程序从网络接收缓存区中取出的数据,极冇可能是来自多个数据报文。粘包的方式有下面两种,一种是操作系统接收多个数据包,并缓存在缓冲区,用户出缓冲区取出的网络包为多个完整的数据包,另一种情况也是最常见是用户取出的多个包粘在一起,并且不是完整的包。粘连在一起的网络数据包也不一定都需要进一步的处理,比如在粘连的数据包(文件交换),这种数据没有具体格式,不间断

5、地“流”式数据,不必要做包分离处理(简称“分包”),如果在实际的网络传输中,大部分的信息都需耍分开,所以在这些原始数据上都加入一定的数据格式,再次封装,在接收端按照一定的算法进行分包处理。当网络数据包的格式数固定长度时(即按固定长度发送数据),所使用的分包算法则相对简单一些;对于在网络数据没有固定格式,需要通过多步计算来确定数据结构的,它们所使用的算法就变地相对困难,其中最为关键的难度就在于如果一个完整的网络包被分成两部分,•部分先接收,后一部分后接收,在这其中如果需要重新打包,计算包长,所以处理起来难度就比较大。为了避免在实际的网络环境使用中出

6、现粘包,从常用的技术中归避粘包,软件设计人员常使用如下三种方式;发送者所引起的网络粘包,在发送者i端用户可以通过网络编程来配置网络参数来规避,例如强制数据立即传送:在TCP网络通信中的紧急通信标记PUSH,在底层操作系统的网络模块TCP协议收到该操作标记时,会将当前TCP缓存区的数据立即推送到网络上去,而不必等待TCP发送系统缓存区满;第二种情况是因为接收者处理不当导致地的网络粘包,可以通过在调高接收线程或者接收进程的CPU等级,使CPU优先调度,还可以精简接收线程接收代码,使其只负责接收数据,分配其它线程处理接收到的数据包,在这种优化方式下,可

7、以迅速的接收网络中的数据,进而规避粘连包;第三种方式为接收者从网络中,只读取按之前约定大小的数据,既不多读也不少读。如果约定数据较小,那么需要多次读取网络数据,并且在最后才能合成一个完整包。上述所的三方案都冇严重的缺点。方案一用程序代码的方式设置PUSH标记,解决了粘包问题,但是新问题是TCP发送数据的优化算法在停用状态下,将导致网络利用率大幅度下降,进一步影响整个系统的整体性能,止常情况下不应使用该方法;方案二也只是降低了网络粘包的概率,没有从根木上杜绝。方案三的缺点应用程序需要多次读系统网络接口,工作效率较低,对耍求快速响应网络环境不推荐使用

8、。2TCP分包算法设计在实际应用开发过程屮,发现基于数据流处理传输的TCP协议,当在传输人批量的网络数据包时会出现粘包现象,即是发送方以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。