回答
套接字(.NET,Winsock等)通常在第7層應用層收集。也就是說,發送方發送的是接收方接收的內容。在接收器從套接字讀取數據時,發送端自動添加的所有各種頭部將被剝離。
可以將套接字配置爲原始套接字,在這種情況下,您可以看到第3層即網絡層的所有標頭。此外,您還可以將原始套接字置於混雜模式,這樣您就可以看到網絡上的所有流量,而不僅僅是發往機器的數據包。但即使這樣也是有限的。例如,在配置原始套接字時,可以指定要使用的協議類型,例如IP,ICMP等。這會將套接字限制爲「查看」遵守該協議的數據包。我一直無法弄清楚如何讓套接字在層3看到所有的數據包,而不管協議如何。
Winpcap作爲第2層數據鏈路層的設備驅動程序運行。在這種情況下,您可以看到網絡上的所有數據包都帶有完整的標題,直到第2層。Winpcap還提供了過濾功能,因此您可以根據您提供的任何標準縮小報告給您的數據包的範圍。
至於他們之間的選擇,它真的歸結爲您的具體任務的要求。如果你正在嘗試實現任何一種現實的網絡分析能力,那麼你就會忍不住用套接字來做到這一點。在這種情況下,Winpcap更有意義。但是,如果您只對IP數據包感興趣,那麼套接字就可以正常工作。
太好了。非常感謝你。 –
我可以使用套接字捕獲MSN messanger和Yahoo Messanger對話嗎? –
假設MSN/Yahoo messenger客戶端使用IP,那麼是的,原始套接字將從您的本地網絡連接中捕獲此信息。 –
據我understanf淨套接字的IPC到2個的進程之間進行通信。雖然winpcap是一個幫助您訪問數據鏈接層的庫,但sniff pacquets會通過您計算機上的網絡硬件(或虛擬)設備。數據鏈路層允許獲取系統上創建的任何套接字(.Net或不)的數據。
- 1. winpcap/libpcap與原始套接字
- 2. Winpcap - pcap_next_ex vs pcap_loop
- 3. WCF VS.套接字
- 4. 與使用winPcap代替套接字相關的風險
- 5. 綁定vs SO_BINDTODEVICE套接字
- 6. Php套接字vs流
- 7. C#套接字vs NodeJS Socket.IO
- 8. 套接字關閉VS的InputStream接近
- 9. C#套接字vs C++套接字,哪個更好?
- 10. 延遲ajax響應vs套接字? node.js
- 11. 套接字程序Python vs C++(Winsock)
- 12. 異步套接字vs同步
- 13. 異步vs同步套接字
- 14. Web服務vs持久套接字
- 15. Win32 API vs Java套接字清除(TCP)
- 16. Windows vs Linux中的套接字
- 17. HTTP流量vs套接字流量
- 18. C#套接字發送vs BeginSend性能
- 19. Windows套接字htons(80)vs 0x5000
- 20. WinPcap鏈接器錯誤
- 21. 使用WinPCap的UDP接收
- 22. 作爲我的項目的一部分,使用原始套接字和WinPcap
- 23. Python套接字 - 連接套接字
- 24. Winsock的替代(不,不WinPCAP)
- 25. 值java.sql.SQLException:IO異常:套接字讀取超時VS關閉連接
- 26. 直接VS間接嵌套結構
- 27. 套接字超時套接字編程
- 28. 套接字和TCP套接字
- 29. Java套接字到C套接字
- 30. Java套接字 - 套接字端口
這是否意味着使用WinPCap在速度方面性能更好,而不是用於發送數據的套接字? – bsobaid