基于TCP/IP协议的灵活数据传输协议的灵活数据传输方法技术

技术编号:23404658 阅读:25 留言:0更新日期:2020-02-22 16:34
本发明专利技术涉及一种基于TCP/IP协议的灵活数据传输协议的灵活数据传输方法,在原有的UDP协议首部填加一些控制字段而形成一种面向连接的基于消息包的传输协议。采用所述累计确认机制代替原有的停止等待协议;采用立即重传机制并去掉不必要的拥塞控制机制,利用发送、确认、重传机制相互配合增加传输的灵活性;引入基于GBN的滑动控制机制并对其做相应的改进作为流量控制机制;采用乒乓缓存机制将发送队列拆成2个队列同时操作。相较于传统传输协议,在UDP协议所具有的高速传输的基础之上兼具TCP协议的安全可靠的特点。有益效果:可以实现网络数据包在传输过程中保证数据可靠性传输的功能同时还拥有较高的传输速率。

Flexible data transmission method of flexible data transmission protocol based on TCP / IP protocol

【技术实现步骤摘要】
基于TCP/IP协议的灵活数据传输协议的灵活数据传输方法
本专利技术属于计算机网络通信
,涉及一种基于TCP/IP协议的灵活数据传输协议的灵活数据传输方法。
技术介绍
以太网作为当今最通用的局域网通信协议标准,具有通信可靠、传输速度快、远距离传输和适配多种传输介质等优点。而TCP/IP协议具有开放的协议标准,不依赖固定的硬件或软件系统,可以将TCP/IP协议集成于不同的网络标准中,是目前应用最广泛的网络通信协议。在TCP/IP协议族中完成数据传输与控制的协议主要有TCP和UDP。TCP协议是一种基于流的、面向连接的可靠数据传输协议,能实现通信双方无差错地发送和接收网络数据,在传输过程中不会出现数据丢包、数据错包以及数据包重复、乱序、和数据较多造成的网络拥塞等现象,常见的可靠机制如握手连接、滑动窗口、拥塞窗口、漏发重发、累积确认等机制虽实现了网络数据传输的可靠性,但这些机制增加了数据的复杂度和数据处理的工作量,这些会导致数据的传输效率变低,所以TCP协议适用主要用于对数据的可靠性要求比较高而对数据传输的效率要求不严的场合。UDP即用户数据报协议,与TCP协议相比,UDP协议较为简单,它的特点是提供无连接、尽最大努力交付基于消息包的不可靠数据传输服务。由于其无连接性故不需要设计建立连接与连接释放的功能,可以节省部分资源,此外它不提供可靠服务,故不需要维护待确认数据,进一步节约资源同时也节省了重传、等待确认的时间。流量控制也是UDP协议不提供的,故而又会省出用来控制流量的资源。总的来说UDP协议以损失可靠性为代价换来极高的传输效率。由此看出TCP协议可靠性和安全性较高,但由于传输过程冗杂,所以速率相对不高;UDP协议由于其面向无连接、程序机构较简单,所以有很高的传输速率,但也有不可靠、不稳定的弊端。
技术实现思路
要解决的技术问题为了避免现有技术的不足之处,本专利技术提出一种基于TCP/IP协议的灵活数据传输协议的灵活数据传输方法,通过将TCP相关可靠机制进行改进后引入UDP中,将两者优势结合,可实现网络数据包在传输过程中保证数据可靠性传输的功能同时还拥有较高的传输速率。同时也能根据工程实际需要提供侧重点不同的传输功能。技术方案一种基于TCP/IP协议的灵活数据传输协议的灵活数据传输方法,其特征在于:位于应用层和UDP传输协议层之间设立面向连接的基于消息报的传输协议的控制字段,其格式为:第一层的16位是:第一字符1位的标志位SYN:该标志位在建立连接的时候使用,当SYN为1且ACK为0时,代表请求连接包,若另一方同意连接,则把SYN和ACK同时置1,代表一个连接应答包,当SYN和FIN标志位一起为1时代表请求关闭包;第二字符1位的标志位ACK:当ACK值为1时表明这是一个应答包,本标志位与其它标志位配合使用例如当SYN和ACK都置1代表这是一个连接应答包,当FIN和ACK都置1代表这是一个关闭应答包,仅有它为1代表数据确认包;第三字符1位的标志位FIN:该标志位在关闭连接的时候使用,当FIN为1且ACK为0时,代表请求关闭包,若另一方同意关闭,则把FIN和ACK同时置1,代表一个关闭应答包;第四字符1位的标志位RETR:当RETR为1时表明当前是一个重发请求包,用于重传机制,发送方收到重传请求后会从发送队列里面重新传送数据包;第五字符1位的标志位TES:TES用在发送方和接收方建立连接后开始传输数据之前,发送方探测接收方缓存大小;第六字符1位的标志位ACKREQ:当ACKREQ为1时表明发送方已经连续发送了一批数据包并且需要接收方及时确认;其余位是保留位;第二层为16位的序列号:标记发送的数据包的顺序号,接收方期望包寄存器与之比对产生相应的动作;第三层为16位的确认/重发序号:以填充需要确认的ORUDP包序号或需要重新发送的ORUDP包的序号;第四层为16位的重传地址:以填充需要重传的包在发送方发送队列里面的位置,和重传请求一起使用;第五层为16位窗口大小:进行流量控制;传输中采用累计确认机制、立刻重传机制、流量控制机制和双队列加速机制,数据传输步骤如下:步骤1、通过三次握手建立连接:以A是客户端,B是服务器,发起三次握手建立连接时,A首先向B发送连接请求,将SYN置1并且将自己的序列号a发送给B,B收到A建立连接的请求后,如果同意则向A发送确认包,该确认包中SYN和ACK都置1,同时反馈确认号和自身的序列号,确认号就是A的序列号加1即ack=a+1,序列号就是B的初始序号Seq=b。A接收到B的确认包后,继续向B发送确认包,确认号为B的序列号加1即ack=b+1,序列号为自身序列号加1即Seq=a+1,同时将ACK置1。经过三次握手,A与B的通信连接就建立了起来;步骤2、接收和发送进程:接收:在建立连接之后接收方处于空闲状态,如果收到请求确认包并且序列号一致,应用层内存充足则进入接收待回复状态,提取数据包回复数据确认包并回到空闲状态;如果收到的是请求确认包且包号与期望序列号差1则进入待回复状态,当接到应用层缓存足够回复数据确认包后回到空闲状态;如果收到数据包并且序列号一致,应用层内存充足则进入接收状态提取数据包;其它情况下收到数据包则进入待重传状态,接收方内存足够发送重传请求包后回到空闲状态,收到数据确认包进入丢弃状态,丢弃完毕后回到空闲状态;发送:在建立连接之后发送方处于空闲状态,如果应用进程需要发送数据,首先会把数据发送到自己的FIFO缓冲区当中,后续的发送任务就交给本设计协议处理;该协议一旦发现应用进程的FIFO中有数据时先把数据搬到自己的发送队列里面,发送队列存满数据或者把应用层FIFO的数据都装到装载队列里,等待一定的时间还是不能装满则离开装载状态;如果是第一次发送数据包在发送之前先发送一包窗口探测包,收到探测应答包后,更新滑动窗口的状态、队列切换进入发送状态,否则直接进入发送状态,进入发送后先检查窗口是否调整,没有就进入调整状态,调整完开始发送,这样做避免发出不完整的包文;发送队列里面的数据由滑动窗口管理,发送队列在发送数据的过程中接收队列也在缓存数据,两个队列互不影响同时工作极大地提高传输效率,发送队列发送完毕后会根据缓存队列的情况选择工作模式,如果装载队列装满则直接切换队列将装载变成发送队列并进入发送状态,如果装载队列没有装满,进入预装载状态进行装载后再进入发送状态,进入发送状态后由滑动窗口管理发送过程;步骤3、结束后双方都要独立关闭自己的传输通道:开始传输数据之前,发送方和接收方必须通过三次握手建立连接;数据传输任务结束后双方都要独立关闭自己的传输通道,只有经过四次握手才能彻底关闭连接。有益效果本专利技术提出的一种基于TCP/IP协议的灵活数据传输协议的灵活数据传输方法,在原有的UDP协议首部填加一些控制字段而形成一种面向连接的基于消息包的传输协议。采用所述累计确认机制代替原有的停止等待协议;采用立即重传机制并去掉不必要的拥塞控制机制,利用发送、确认、重传机制相互配合增加传输的灵活性;引入基于GBN的滑动控制机本文档来自技高网
...

【技术保护点】
1.一种基于TCP/IP协议的灵活数据传输协议的灵活数据传输方法,其特征在于:位于应用层和UDP传输协议层之间设立面向连接的基于消息报的传输协议的控制字段,其格式为:第一层的16位是:第一字符1位的标志位SYN:该标志位在建立连接的时候使用,当SYN为1且ACK为0时,代表请求连接包,若另一方同意连接,则把SYN和ACK同时置1,代表一个连接应答包,当SYN和FIN标志位一起为1时代表请求关闭包;第二字符1位的标志位ACK:当ACK值为1时表明这是一个应答包,本标志位与其它标志位配合使用例如当SYN和ACK都置1代表这是一个连接应答包,当FIN和ACK都置1代表这是一个关闭应答包,仅有它为1代表数据确认包;第三字符1位的标志位FIN:该标志位在关闭连接的时候使用,当FIN为1且ACK为0时,代表请求关闭包,若另一方同意关闭,则把FIN和ACK同时置1,代表一个关闭应答包;第四字符1位的标志位RETR:当RETR为1时表明当前是一个重发请求包,用于重传机制,发送方收到重传请求后会从发送队列里面重新传送数据包;第五字符1位的标志位TES:TES用在发送方和接收方建立连接后开始传输数据之前,发送方探测接收方缓存大小;第六字符1位的标志位ACKREQ:当ACKREQ为1时表明发送方已经连续发送了一批数据包并且需要接收方及时确认;其余位是保留位;第二层为16位的序列号:标记发送的数据包的顺序号,接收方期望包寄存器与之比对产生相应的动作;第三层为16位的确认/重发序号:以填充需要确认的ORUDP包序号或需要重新发送的ORUDP包的序号;第四层为16位的重传地址:以填充需要重传的包在发送方发送队列里面的位置,和重传请求一起使用;第五层为16位窗口大小:进行流量控制;传输中采用累计确认机制、立刻重传机制、流量控制机制和双队列加速机制,数据传输步骤如下:/n步骤1、通过三次握手建立连接:以A是客户端,B是服务器,发起三次握手建立连接时,A首先向B发送连接请求,将SYN置1并且将自己的序列号a发送给B,B收到A建立连接的请求后,如果同意则向A发送确认包,该确认包中SYN和ACK都置1,同时反馈确认号和自身的序列号,确认号就是A的序列号加1即ack=a+1,序列号就是B的初始序号Seq=b。A接收到B的确认包后,继续向B发送确认包,确认号为B的序列号加1即ack=b+1,序列号为自身序列号加1即Seq=a+1,同时将ACK置1。经过三次握手,A与B的通信连接就建立了起来;/n步骤2、接收和发送进程:/n接收:在建立连接之后接收方处于空闲状态,如果收到请求确认包并且序列号一致,应用层内存充足则进入接收待回复状态,提取数据包回复数据确认包并回到空闲状态;如果收到的是请求确认包且包号与期望序列号差1则进入待回复状态,当接到应用层缓存足够回复数据确认包后回到空闲状态;如果收到数据包并且序列号一致,应用层内存充足则进入接收状态提取数据包;其它情况下收到数据包则进入待重传状态,接收方内存足够发送重传请求包后回到空闲状态,收到数据确认包进入丢弃状态,丢弃完毕后回到空闲状态;/n发送:在建立连接之后发送方处于空闲状态,如果应用进程需要发送数据,首先会把数据发送到自己的FIFO缓冲区当中,后续的发送任务就交给本设计协议处理;该协议一旦发现应用进程的FIFO中有数据时先把数据搬到自己的发送队列里面,发送队列存满数据或者把应用层FIFO的数据都装到装载队列里,等待一定的时间还是不能装满则离开装载状态;如果是第一次发送数据包在发送之前先发送一包窗口探测包,收到探测应答包后,更新滑动窗口的状态、队列切换进入发送状态,否则直接进入发送状态,进入发送后先检查窗口是否调整,没有就进入调整状态,调整完开始发送,这样做避免发出不完整的包文;发送队列里面的数据由滑动窗口管理,发送队列在发送数据的过程中接收队列也在缓存数据,两个队列互不影响同时工作极大地提高传输效率,发送队列发送完毕后会根据缓存队列的情况选择工作模式,如果装载队列装满则直接切换队列将装载变成发送队列并进入发送状态,如果装载队列没有装满,进入预装载状态进行装载后再进入发送状态,进入发送状态后由滑动窗口管理发送过程;/n步骤3、结束后双方都要独立关闭自己的传输通道:/n开始传输数据之前,发送方和接收方必须通过三次握手建立连接;数据传输任务结束后双方都要独立关闭自己的传输通道,只有经过四次握手才能彻底关闭连接。/n...

【技术特征摘要】
1.一种基于TCP/IP协议的灵活数据传输协议的灵活数据传输方法,其特征在于:位于应用层和UDP传输协议层之间设立面向连接的基于消息报的传输协议的控制字段,其格式为:第一层的16位是:第一字符1位的标志位SYN:该标志位在建立连接的时候使用,当SYN为1且ACK为0时,代表请求连接包,若另一方同意连接,则把SYN和ACK同时置1,代表一个连接应答包,当SYN和FIN标志位一起为1时代表请求关闭包;第二字符1位的标志位ACK:当ACK值为1时表明这是一个应答包,本标志位与其它标志位配合使用例如当SYN和ACK都置1代表这是一个连接应答包,当FIN和ACK都置1代表这是一个关闭应答包,仅有它为1代表数据确认包;第三字符1位的标志位FIN:该标志位在关闭连接的时候使用,当FIN为1且ACK为0时,代表请求关闭包,若另一方同意关闭,则把FIN和ACK同时置1,代表一个关闭应答包;第四字符1位的标志位RETR:当RETR为1时表明当前是一个重发请求包,用于重传机制,发送方收到重传请求后会从发送队列里面重新传送数据包;第五字符1位的标志位TES:TES用在发送方和接收方建立连接后开始传输数据之前,发送方探测接收方缓存大小;第六字符1位的标志位ACKREQ:当ACKREQ为1时表明发送方已经连续发送了一批数据包并且需要接收方及时确认;其余位是保留位;第二层为16位的序列号:标记发送的数据包的顺序号,接收方期望包寄存器与之比对产生相应的动作;第三层为16位的确认/重发序号:以填充需要确认的ORUDP包序号或需要重新发送的ORUDP包的序号;第四层为16位的重传地址:以填充需要重传的包在发送方发送队列里面的位置,和重传请求一起使用;第五层为16位窗口大小:进行流量控制;传输中采用累计确认机制、立刻重传机制、流量控制机制和双队列加速机制,数据传输步骤如下:
步骤1、通过三次握手建立连接:以A是客户端,B是服务器,发起三次握手建立连接时,A首先向B发送连接请求,将SYN置1并且将自己的序列号a发送给B,B收到A建立连接的请求后,如果同意则向A发送确认包,该确认包中SYN和ACK都置1,同时反馈确认号和自身的序列号,确认号就是A的序列号...

【专利技术属性】
技术研发人员:韩鹏
申请(专利权)人:西北工业大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1