我有一個Visual C++程序與一個專用的點對點協議構建在TCP/IP套接字之上,允許一組消息在第三方軟件之間流動。C#本地TCP/IP堆棧訪問
有在文檔的註釋,該協議:
IP邏輯分組不必直接映射到對基礎網絡套接字物理數據包,它們可以被分裂開或由TCP/IP棧聚集。
這是什麼意思?
我寫了我的C#應用程序來連接,由於技術限制,它只能在本地運行和通信。再加上每毫秒是至關重要的。
似乎這不是關於命名管道:pipelist.exe不顯示任何特定條目。
我有一個Visual C++程序與一個專用的點對點協議構建在TCP/IP套接字之上,允許一組消息在第三方軟件之間流動。C#本地TCP/IP堆棧訪問
有在文檔的註釋,該協議:
IP邏輯分組不必直接映射到對基礎網絡套接字物理數據包,它們可以被分裂開或由TCP/IP棧聚集。
這是什麼意思?
我寫了我的C#應用程序來連接,由於技術限制,它只能在本地運行和通信。再加上每毫秒是至關重要的。
似乎這不是關於命名管道:pipelist.exe不顯示任何特定條目。
如果你只是用回送可能根本沒有IP數據包,並且在任何情況下,(一)對協議的實現者應該已經採取了所有的考慮及(b)TCP隱藏所有從你太 - 它只是提供一個字節流接口。
當TCP/IP數據包通過以太網傳出時,數據包將重新封裝爲以太網幀。這可能包括分解原始數據包。
當幀到達其目的地時,以太網報頭信息將被刪除,並且原始數據包(如果需要,重新組合)會呈現給目標機器上的TCP/IP層。
但是這個重新包裝也可能發生在TCP/IP堆棧中。 TCP和IP實際上是分開的協議; IP負責路由,TCP,那麼「握手」(維護會話狀態,保證遞送[或試圖]等)
命名管道是完全不同的進程間通信機制。我相信,通常比TCP/IP更快,但通常限制在單臺機器上使用。
IP邏輯分組不必直接映射到物理數據包上的底層網絡插座,它們可以被分裂開或由TCP/IP棧聚集。
TCP/IP不是存在的最低級網絡協議。還有其他的:連接以太網設備的以太網協議,802.11x無線協議等。所有這些聲明都表明,單個IP數據包可能對應於較低級協議中的多個數據包,並且IP網絡層負責緩衝或加入這些數據包。
你的應用程序根本就不用擔心這個問題。所有現代操作系統內核都可以非常高效地處理TCP/IP網絡,除非您的要求非常不尋常,否則您絕不應該擔心應用程序協議通過TCP/IP或較低級協議分解爲數據包的方式。
你的問題是錯誤的。它涉及關於您的協議的聲明。與本地訪問無關。 – EJP 2011-04-16 01:59:44