Datalink支持TCP与UDP(TCP/IP与UDP协议)

注:1非通信科班出身;2协议具体内容资料很多,本文重在介绍以及应用。

GNSS接收机接收处理的信号数据,传输出去时需要遵循一定的传输协议,TCP/IP和UDP协议以其各自的优缺点(实时性、完整性、资源占用等)成为了不同工况下最常见的两种传输协议。

1 TCP/IP与UDP协议

IP协议必须配合传输服务协议——TCP协议(连接性和可靠性)或UDP协议(非链接性和不可靠性),以便提供传送端与接收端主机的连接。

1.1 TCP协议

TCP 是面向连接的运输层协议。在使用TCP 协议之前,应用程序必须先建立TCP 连接(三次握手)。数据传输完毕后,必须释放已建立的 TCP 连接。每一条TCP 连接必须是点对点的。TCP 连接传输的数据要求无差错不丢失不重复且按序到达。TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都可以发送数据。TCP 是面向字节流的。TCP 将交互的数据块看成是一连串无结构的字节流,它不保证通信双方应用程序收发数据块的一致,但收发的字节流是一致的。收方应用程序必须能识别接收到的字节流,并把它还原成有意义的应用数据。

TCP/IP 协议最突出的优点是可靠稳定。TCP 的可靠体现在 TCP 在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接以节约系统资源。

TCP/IP 协议也存在不少缺点,例如慢、效率低、占用系统资源高、易被攻击等。TCP 在传递数据前的建立连接,以及在数据传递时的确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,同时维护传输连接会占用系统的 CPU、内存等资源。另外,TCP 的确认机制、三次握手机制使其容易被人利用,实现 DOS、DDOS 等攻击。

在卫星数据传输过程中,TCP/IP 常应用于点对点通信、对通信的质量、可靠性要求比较高而对通信效率要求不那么苛刻的场景中,例如卫星接收机与PC 机之间通信、台站网之间的通信等,但对实时 GNSS 定位该方式的效率往往无法适应需求。

1.2 UDP协议

卫星数据传输过程中,标准的传输控制协议TCP/P 不能充分发挥网络的性能。特别对于实时性要求高的应用,如实时定轨、定时、定位服务和突发性灾害事件的应急通信,TCP 协议的传输效率低且限制吞吐量的局限性暴露了出来,使其难以适用。而 UDP 协议的传输是没有连接的,通信时直接发送数据报,不核查有没有收到该数据,因而节省了大量网络资源并提高了传输效率。这样,UPD 协议常用于实时性要求高、传输距离远、通信容量大,并允许双向传输的 GNSS 全球网和局城网的高精度定位服务。使用结果表明,由 UDP 协议通过互联网传输的全球GNSS 台站网观测数据,其数据报的丢失率小于 5%,满足实时快速服务的要求。

UDP提供无连接服务,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。UDP尽最大努力交付数据,但并不保证可靠交付,传输的可靠性校验交给了应用层,因此主机不需要维持复杂的连接状态表。UDP 是面向报文的。UDP对应用层交下来的报文添加首部并封装后就向下交付给 IP层,既不合并也不拆分,仅保留这些报文的边界。即原封不动地发送应用层交给的报文。与此类似,接收方的 UDP 对 IP层交来的 UDP 用户数据报,去除首部后就原封不动地交付给上层的应用进程,UDP一次交付一个完整的报文。若报文太长,UDP交给 IP层后, IP层在传输过程中需要进行分片,降低了 IP层效率。反之,若报文太短,UDP 会使 I数据报的首部的相对长度太大,也降低了 IP层的效率。UDP没有流量控制机制和确认机制,也没有拥塞控制机制,只提供简单的差错控制机制,也就是利用校检和校验数据的完整性。如果检验到收到的报文中有差错,则就默认丢掉这一报文,但不产生任何的差错报文。UDP 除了能够实现正常的一对一通信以外,还能实现一对多、多对一和多对多的交互通信。

从以上特点可看出,UDP 协议不具备可靠性保证、顺序保证和流量控制字段,比TCP 协议简单很多,因此,传输速率高是其主要的优点,适合用在需要量大、即时但对数据的无缺损性要求不高的数据传输。其缺点则是无法提供无缺省的数据传输。它可能会造成数据重复、数据未依序到达目的地或数据因接收端来不及处理而丢失等问题,这些问题必须由用户端解决。

2 Datalink支持TCP与UDP

众多软件或开源程序支持搭建TCP与UDP,如RTKLIB、NetAssist、Datalink等,以Datalink局域网自建TCP为例,

案例:局域网本机自建端口号为28784的TCP/IP Server,并TCP实现数据双向传输

简要介绍如下:

自建TCP Server:打开datalink,在connection4(所有窗口应用等价)建立了本机(默认127.0.0.1)IP,端口号为28784(0 到65535任选)的TCP/IP Server。

进阶:

首先在Connection4 搭建了一个端口号为28784的TCP Server,并用NetAssist对应建立了TCP Client,发送”Welcome to NetAssist”,因为datalink自建的TCP Server无法主动从TCP Server下发数据(此为一缺点),但可以通过link方式,将Connection4的数据流,link到Connection 5上,Connection 5又被当作TCP client(端口号为28785)上传给Connection 2(被搭建为端口号为28785的TCP Server)

原创文章,作者:速盾高防cdn,如若转载,请注明出处:https://www.sudun.com/ask/76179.html

(0)
速盾高防cdn's avatar速盾高防cdn
上一篇 2024年5月19日 下午11:25
下一篇 2024年5月19日 下午11:27

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注