关于使用UDP套接字进行本地进程间通信的问题

1、linux中进程间的通信可以使用套接字的方式

2、套接字的方式即将套接字的目的地设为“127.0.0.1:port”。以发包的形式将数据传输到本地的某个进程

3、套接字的方式可以选择UDP也可以选择TCP。UDP是不可靠连接,包头中只有源端口,目的端口,UDP长度以及UDP的校验和。传输层协议的校验和是需要对整个数据包进行校验的,具体可以查阅UDP协议和TCP协议头部的解释。

4、另外在<<TCP/IP详解 卷二:实现>>中文版P606页图23-3中,给出了接收缓存的默认大小是41600字节。那么说明一个问题:因为我们知道UDP协议只是尽可能的将数据报发送到目的地,没有重传机制。所以如果发送进程的发送速度太快,使得接收缓存没有能够及时腾出新的空间给新到的数据包,就会导致丢失数据。如果是这样的话,使用UDP套接字似乎不能够完成进程间的通信。

5、不过,还是需要实验证明:

实验设计:使用UDP套接字,本地的一个发送数据的进程将一个文件(srcFile)传输到本地的另一个接收进程。接收进程收到数据之后将其写入到另外一个文件(dstFile)中。比较这两个文件的大小

实验环境:一台4核的笔记本,内存大小为8G。原始文件(srcFile)的大小:4.18GB

实验结果:dstFile的大小为:3.17GB。可见使用UDP方式完成进程间通信,有可能会导致数据的丢失。

 


你可能感兴趣的:(关于使用UDP套接字进行本地进程间通信的问题)