2009-06-05 60 views
20

所以我想了解所有關於網絡。在套接字下方,下至原始套接字和東西。我想了解集線器,路由器,接入點等等。例如,我希望能夠編寫自己的軟件來完成這種工作。*這種信息是否有很好的來源?如何學習_really_低級網絡編程?

我知道我在這裏要求很多,而且要完全解釋這一切都需要從高層到低層。我想我正在尋找一個類似的範圍和深度來源Applied Cryptography,但關於網絡。

感謝任何能幫助我指點我(和其他像我一樣的人)的正確方向。

*是的,我知道用我的任何手工製作的網絡協議棧代碼將是一個巨大的安全問題,我只希望做它來學習:)

類似的問題:here。不過,我正在尋找的不僅僅是「TCP/UDP套接字下面是什麼?」。

編輯澄清:我談論的深度超出了駕駛員級別。因此,假設位可以從電線的另一端進出,下一步是什麼?

+3

如何你想要去低級別;你想學習: *只使用原始套接字編寫TCP實現? *爲您的操作系統或嵌入式系統寫一個新的TCP/IP協議棧? *做幀封裝嗎? (連接以太網有線網絡,Gig-E,撥號,自動櫃員機,令牌環,wifi,藍牙等不同) *編寫網卡驅動程序以獲取幀並將它們發送到NIC? – Stobor 2009-06-05 07:26:38

回答

18

我從TCP/IP Illustrated瞭解到IP網絡。強烈推薦。

+1

我也推薦Unix網絡編程 http://www.amazon.com/Unix-Network-Programming-Addison-Wesley-Professional/dp/0131411551/ref=sr_1_1?ie=UTF8&s=books&qid=1244659765&sr=1- 1 – Reginaldo 2009-06-10 18:51:24

12

這可能不會幫助你瞭解它,但是像Wireshark這樣的數據包嗅探器可以幫助你深入瞭解數據在相當低級別的協議(TCP/IP)中的外觀。

8

正如您已經明顯認識到,宇宙不以IP協議開始和結束。查看OSI 7 Layer Model,其中IP是第3層(網絡)協議。通用IP路由器將在此級別運行,但在開始編寫自己的網絡堆棧之前,您可能應該在數據鏈路層和物理層中理解更多的複雜性。

從所有無數形式的數據通信基礎開始,一直工作到堆棧,直到您到達需要停止的地方。 Data Communications, Computer Networking and Open Systems是一個很好的基礎文本,然後在每個需要關注的區域上查找更多細節。以前的答案包括IP和TCP/IP的良好鏈接,正如前面提到的Wireshark會讓你往下看一些層次。

6

CISCO CCNA材料包含很好的網絡基礎,但不影響編程方面。我不確定是否有官方的免費鏈接,但您可以嘗試找到它們。

4

您有任何嵌入式編程經驗嗎?如果是這樣,我建議你買一個these development boards。它們價格便宜,可以讓您在網絡堆棧的每個部分都可以工作,並且所有軟件工具都是免費的。

請注意,開展這項工作並不容易,我最終閱讀CS8900 IC數據表以瞭解如何使其與基於ARM7的處理器進行通信。但是,如果你喜歡這樣的事情(就像我一樣),那麼他們很有趣。

3

嗯......你看過Tanenbaum的Computer Networks嗎?

+0

這本書很棒,很有趣,讓你編寫「低級」的C++代碼! – 2015-05-25 23:41:09

2

我從oreilly找到了「瞭解linux內核」和「瞭解linux內部網絡內部」的網絡章節,非常有幫助。

TCP/IP協議棧是一個非常好的開始,但是對於以太網如何工作以及以太網如何工作以及如何使用以太網!= IP!= -interweb將會有很長的路要走。

關於網絡安全的書籍經常做一個體面的,如果不是goos解釋網絡如何在簡潔的環境下工作。

真正奏效了,我正在採取執行NAT :)

1

這門課程的作業爲我工作:COS 461 at Princeton。請注意,它假設系統級的編程經驗與C。

幾乎所有的閱讀和講座都可以在「教學大綱」下在線提供。你也可以嘗試分配任務(不幸的是,你將無法訪問虛擬網絡系統)。

+0

出於好奇,普林斯頓大學的本科課程順序是什麼? – 2009-06-13 05:20:15

1

入住這..這是一個很好的信息收集: ​​