2012-03-24 51 views
0

是否有一種簡單的方法在Java中執行TCP數據包的1:1副本並將其發回,以強制客戶端的TCP實現自動丟棄它?還是我以錯誤的方式接近這個?這似乎是一件簡單的事情,但讓我難住。在Java中重複數據包?

編輯原始套接字庫在這裏有什麼相關性,還是不是嚴格要求?

回答

1

是的,你可以複製並重新發送你想要的所有有效載荷數據。

不,沒有辦法直接使用Java套接字重新創建TCP/IP標頭(和/或以太網幀標頭)。

你可能想看看的libpcap:

http://www.tcpdump.org/pcap.html

+0

嗨,感謝您的回覆......所以需要一個原始套接字庫來執行這種事情?我聽說過RockSaw,從來沒有使用它,但顯然它允許你做任何你喜歡的事情...... – xingyu 2012-03-24 01:31:25

1

TCP包複製,應在內核級別上進行,因爲TCP/IP報頭填入內核級。

也許您需要重新編譯linux內核,並修改TCP/IP堆棧實現,以模擬丟包和重複數據包。