网珞与通信就术
信息与电16
China  Computer  & Communication
2021年第6期
基于UDP 协议的分布式通信设计与实现
麻观胜
(长江大学文理学院,湖北荆州434020 )
摘 要:在数据传输网络中,实现分布式系统多端传输的方式有很多。笔者提出一种基于UDP 协议的会话层多端会
话可靠传输方式(Multiterminal  session  UDP  ),详细分析了多端会话可靠传输的报文首部、ARQ 协议的选择确认机制
和多端拥塞控制,并设计一个多端会话可靠传输程序,希望能够为相关研究提供借鉴。
关键词:用户数据报协议;UDP 协议;多端会话;分布式通信
中图分类号:TP393. 04 文献标识码:A  文章编号:1003-9767 (2021) 06-196-03
Design  and  Implementation  of  Distributed  Communication  Based  on  UDP
Protocol
MA  Guansheng
(Yangtze  University  College  of  Arts  and  Sciences, Jingzhou  Hubei  434020, China)
Abstract: In  the  data  transmission  network, there  are  many  ways  to  realize  the  multi-terminal  transmission  of  the  distributed  system. The  author  proposes  a  UDP-based  session  layer  multi-terminal  session  reliable  transmission  method  (Multiterminal  session  UDP), analyzes  in  detail  the  message  header  of  the  reliable  transmission  of  the  multi-terminal  session, the  selection  confirmation
mechanism  of  the  ARQ  protocol  and  the  multi-terminal  congestion  control, and  designs  a  multi-terminal  session  to  be  reliable  The
transmission  program, hoping  to  provide  a  reference  for  related  research.
Keywords : user  datagram  protocol; UDP  protocol; mult t erminal  session; distributed  communication
1会话协议报文首部设计
会话端有子会话端,如会话端1.1.0.0.0的子会话端ID  从1.1.1.0.0到1.1.255.0.0Z ]。子会话端还可以拥有子会话端,
一个会话就由一个会话端和一个或多个子会话端组成的。会 话与会话端如图]所示。
多端会话报文首部信息占用20个字节,保留TCP 协议 的序列号、URG 、ACK 、PSH 、SYN 、FIN 、窗口大小、紧 急指针和可选项。图2为多端会话可靠传输报文的首部信息。
图2会话协议报文
会话协议报文首部
1 |
2
3
4
5 |
6 |
7 |
8
9 | 10 11 12 13 14115 16 17
18 19 | - 38 39 40
首部
会话id
序列号
urg |ack |psh  rst  syn | fin  |c on |alw |dor |hbt  BRO  SEN  1 REP
窗口大小紧急指针
可选项
数据数据区域
作者简介:麻观胜(1998-),男,苗族,贵州铜仁人,本科。研究方向:计算机科学与技术。
信IB与电IE
China Computer&Communication网絡与通信技求2021年第6期
会话端ID占用5个字节,存储的是当前发送报文的会话端ID。序列号占用5个字节,表示报文中的数据在传输过程中的位置。URG、ACK、PSH、RST、SIN和FIN各占一位,窗口大小占用3个字节,紧急指针占用2个字节,可选项占用3个字节。CON确认位占一位大小,为1表示当前报文是否需要确认。ALW长时会话位占一位大小,为1表示会话是长时会话。DOR休眠位占1位,当ALW为1的时候DOR 才有用,DOR为0代表休眠会话端,DOR为1代表唤醒会话端冈。HBT心跳位占]位,代表当前报文为心跳监控报文。
BRO广播位占2位,0代表报文经过会话端时不需要转发给其他会话端,1代表当前数据包只能在当前的会话传递,不会转发给其他子会话,2代表数据报文经过当前会话只需要转发给子会话端,3代表收到当前报文的会话端不仅要转发给自己的父会话端,还要转发给自己的子会话端。SEN位为请求类型报文的数据区域存储的信息类型,占用2位大小。SEN为0的时候代表请求连接,数据区域存储的是当前会话端
的IP地址、接收数据端口号和会话端的ID信息,可以存储多组{[IP:RPORT:SID],.....}信息,RPORT代表接收端的端口号旳;为1代表数据区域存储的是传输数据;为2代表数据区域存储的数据包能被哪些会话ID接收,可以在数据区域存储多组会话端ID{[SID1],[SID2],……}。
REQ为响应类型数据区域存储的数据类型叫0代表请求连接第二步,可以存储多组授权会话端信息{[ack:IP:RPORT:SID_l],……},1代表数据报文确认信息,一组确认信息包括SID:序列号,一个确认数据报文的数据区域可以同时存储多个确认分组的信息{[SID:序列号],……},2代表是,数据区域存储的是当前会话端信息{[ack:IP:RPORT:SID],.......}。
2多端会话可靠传输的原理
会话端建立连接采用的是TCP协议的三次握手机制。如图3所示,会话A端加入会话B端后,SID为发送报文首部ID,加入会话就是修改会话端的ID。
会话退出与TCP协议的协议机制一样,只不过存储在数据区域而已,REP为0,此时数据区域的SID代表当前的会话端ID叫会话端也需要考虑端到端之间的停止等待,与TCP 协议的出现差错、确认丢失和确认迟到处理机制是一样的。
会话报文的选择确认机制,是会话确认机制的核心部分,会话端收到分组数据后会根据报文首部广播位
转发分组数据,转发的时候不会修改协议报文中的任何信息,如果需要确认收到,会一直等待全部确认后才会确认收到。对不需要确认收到的报文和确认收到的报文,直接提交数据按照会话端ID分区,再按序列号进行排序叫
当会话端接收到传输数据的报文后,会根据数据报文的先后顺序存储在滑动窗口中,会话端根据数据报文的广播位发送数据,等滑动窗口能转发的数据报文被确认后,把数据取出按照会话端ID和序列号对数据报文进行排序,最后把排序好的报文提交给应用程序。如果当前报文广播不需要确认,直接交给分区排序,尽最大努力排序然后提交。
多端会话之间的拥塞控制方案主要考虑单个会话中的拥塞情况,所有子会话端发送的数据报文会被父会话端接收,这些窗口的值称为窗口建议值RWS(Refer Wndow Size)[8]o父会话端会结合自身的滑动窗口剩余情况和网络中的阻塞情况在确认报文中给所有子会话端一个不大于RWS最小值的实际窗口大小MRWS(Min Real Window Size)□所有自会话端发送数据的实际大小就是MRWS值叫RWS和MRWS是一个动态变化的数据,RWS的增长率—个大于1的常数,在独立判断网络拥塞情况后,把自身发送的RWS改成原来的一半。
3多端会话可靠传输程序的实现
采用面向对象开发语言Java进行开发,使用JDK8提供的DatagramSoket进行接收和发送,会话通信传
输模块udptransmission使用Maven打包成Jar,为其他程序提供会话控制接口、注册、过滤器及注册数据提交。
程序主要分为3模块,即网络交互模块、会管理器模块、会话端模块。网络交互模块的主要功能是注册端口,可用于接收UDP协议报文和发送UDP协议报文,将数据报文解析成特定的数据结构,并存储在接收数据队列中“切。网络交互模块拥有两个端口,一个是接收数据端口,另一个发送数据端口。会话管理器模块的主要功能包括读取数据接收数据队列的数据、过滤数据报文、异步监听数据报文、向应用层
图4会话管理器的工作流程
信18与电1E
China  Computer  & Communication
网絡与盧信牧术
2021年第6期
会话端模块是处理会话报文的主要模块,拥有管理会话 信息、过滤数据协议报文、异步监听协议报文、拥塞控制、 首部数据处理、确认报文处理、滑动窗口、转发报文、确认
报文、为不同端的数据报文排序和提交数据等功能阿。会话
4结语
基于UDP 协议的多端会话是一种基于计算机网络的会
话层应用技术,在消息传输的过程中不仅能保证消息传输的 一致性,还可以记录每一个加入会话端的会话IP 。由于会话 报文拥有休眠、心跳监控等功能,能为分布式系统提供远程
通信服务。在客服端请求负载服务器的时候,负载服务器会 话端会转发给其他的会话端,由其他会话端对当前的客服端
进行授权,引导客服端与当前会话端进行通信。
参考文献
[1] 谢希仁.计算机网络[M].北京:电子工业出版社,2017:325.[2] 黄文杰.基于UDP 的可靠高效数据传输协议的研究[D],
北京:北京邮电大学,2019:157.
⑶张恺.基于UDP 的可靠文件传输协议的设计与实现[D].
西安:西安电子科技大学,2014:46.
[4]王艳芳,戴永,刘东华,等.基于UDP 的数据可靠传输技
术研究与应用[J]•计算机工程与应用,2010,46(3):105-108.
⑸周丽娟.基于UDP 协议的Socket 网络编程[J].电脑知识
与技术,200&4(34):1867-186&
[6] 燕永新.一种基于UDP 协议的即时通信系统的研究[D].
大连:大连海事大学,200&15.
[7] 王继刚,顾国昌,徐立峰,等•可靠UDP 数据传输协议的
研究与设计[J].计算机工程与应用,2006(15):113-116.
[8] 鲍国超.基于UDP/IP 的可靠用户数据报协议的设计与实
现[D],北京:华北电力大学,2004:34.
[9] 芦东昕,张华强,王陈.基于UDP 的可靠数据传递技术研
究[J].计算机工程,2003(22):62-63.
[10] 鲁宏伟.基于UDP 传输协议的包丢失和失序处理[J].计
算机工程与应用,2001(2):48-49.
[11] 卓红艳,陈进,张家如.VC 环境下基于UDP 协议的分布
式实时监测系统的实现[J],兵工自动化,2008(12):85-86.
[12] 张良春,龙鹏飞.基于UDP 的高效通信机制的研究与应
用[J].微计算机信息,2011,27(12):100-101.
[13] 刘玉军,姜美雷,徐万里,等.基于UDP 协议的应用层实
时中间件[J].计算机工程与设计,2009,30(12):2930-2933.
[14] 丁黎颖,黄少冰.基于UDP 协议的气象数据通信软件的
设计与实现[J].情报杂志,2011,30(6):146.
socket通信报文格式[15] 王贞体.基于UDP 协议的通信设备模拟器的设计与实
现:线程池,负载平衡机制在VC 中的应用[J].金卡工
程,2005,9(3):36-39.
[16] 李军显,陈春红,王晓宇.基于UDP 的SAR 回波分布式
仿真研究[J].计算机应用与软件,2012(2):142-144.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。