在TCP/IP协议组中,IP协议是网络层协议。TCP协议是一种面向连接的协议,他能够提供可靠的、全双工的网络通信服务,具有确认、数据流控制、多路复用和数据同步等功能,适合高质量数据的传输,是目前应用最为广泛的网络传输协议之一。但是,由于TCP协议实现复杂,网络开销大,以及其提供的确认与超时重传机制都给数据传输带来很大的时延。因此TCP协议不适合传输实时视频数据和突发性的大量数据。
UDP协议是无连接协议,报文交换机理简单,不存在多重确认机制,从而减少了因建立连接和撤除连接所需要的巨大开销。每个分组都携带完整的目的地址,在各分组系统中独立传送,他不保证分组的先后顺序,不进行分组出错的恢复与重传,因此无法保证传输的可靠性和服务质量。但是相对于TCP协议,UDP 协议减少了确认、同步等操作,节省了很大的网络开销。他能够提供高传输效率的数据报服务,能够实现数据的实时性传输,在数据的实时传输中应用广泛。为了保证无人机视频数据传输的实时性,采用IP协议和UDP协议作为系统的通信协议。
系统中网络传输部分的软件实现采用socket(套接口)编程技术,系统调用socket()函数,返回一个整型的socket描述符,视频数据传输便是通过该socket函数实现的。常用的socket类型对应于传输协议也有两种:流式socket和数据报式socket。前者使用TCP协议,后者使用UDP协议,本系统中采用的是数据报式socket。以下是下位机socket编程的主要实现:
由上位机的无线网卡负责接收下位机的视频数据,并根据JPEG图像的解压原理对视频数据进行解压缩并显示。图3,图4可以看到从下位机采集到视频数据并通过处理之后发到上位机然后显示出来的效果。