關於使用UDP套接字進行本地進程間通訊的問題

一、linux中進程間的通訊可使用套接字的方式linux

二、套接字的方式即將套接字的目的地設爲「127.0.0.1:port」。以發包的形式將數據傳輸到本地的某個進程緩存

三、套接字的方式能夠選擇UDP也能夠選擇TCP。UDP是不可靠鏈接,包頭中只有源端口,目的端口,UDP長度以及UDP的校驗和。傳輸層協議的校驗和是須要對整個數據包進行校驗的,具體能夠查閱UDP協議和TCP協議頭部的解釋。spa

四、另外在<<TCP/IP詳解 卷二:實現>>中文版P606頁圖23-3中,給出了接收緩存的默認大小是41600字節。那麼說明一個問題:由於咱們知道UDP協議只是儘量的將數據報發送到目的地,沒有重傳機制。因此若是發送進程的發送速度太快,使得接收緩存沒有可以及時騰出新的空間給新到的數據包,就會致使丟失數據。若是是這樣的話,使用UDP套接字彷佛不可以完成進程間的通訊。設計

五、不過,仍是須要實驗證實:orm

實驗設計:使用UDP套接字,本地的一個發送數據的進程將一個文件(srcFile)傳輸到本地的另外一個接收進程。接收進程收到數據以後將其寫入到另一個文件(dstFile)中。比較這兩個文件的大小進程

實驗環境:一臺4核的筆記本,內存大小爲8G。原始文件(srcFile)的大小:4.18GB內存

實驗結果:dstFile的大小爲:3.17GB。可見使用UDP方式完成進程間通訊,有可能會致使數據的丟失。it

 

相關文章
相關標籤/搜索