我怎样才能学习_really_低级网络编程?

时间:2009-06-05 07:09:02

标签: networking network-programming network-protocols

所以我想学习所有关于网络的知识。在插座下方,直到原始插座和东西。我想了解集线器,路由器,接入点等。例如,我希望能够编写自己的软件来完成这类工作。*这类信息是否有很好的来源?

我知道我在这里问了很多,并且要完全解释这一切都需要从高级别到低级别。我想我正在寻找一个类似于Applied Cryptography的范围和深度的来源,但关于网络。

感谢所有能帮助我(以及像我这样的人)指向正确方向的人。

*是的,我意识到使用我手工制作的任何网络堆栈代码都是一个巨大的安全问题,而我只是想学习它:)

类似问题:here。但是,我正在寻找的不仅仅是“TCP / UDP套接字以下的内容?”。

编辑澄清:我所谈论的深度高于驾驶员级别。假设这些位可以进出线的另一端,那么下一步呢?

11 个答案:

答案 0 :(得分:18)

我从TCP/IP Illustrated学习了IP网络。强烈推荐。

答案 1 :(得分:13)

这可能无法帮助您学习它,但像Wireshark这样的数据包嗅探器可以让您深入了解数据在相当低级别的协议(TCP / IP)中的样子。

答案 2 :(得分:8)

正如您已经明确认识到的那样,宇宙不会以IP协议开始和结束。看看OSI 7 Layer Model,其中IP是第3层(网络)协议。通用IP路由器将在此级别运行,但在开始编码自己的网络堆栈之前,您可能应该在数据链路和物理层中了解更多复杂性。

从数据通信的基础知识开始,以各种各样的形式开始工作,直到你到达需要停止的地方为止。 Data Communications, Computer Networking and Open Systems是一个很好的基础文本,然后在您需要关注的每个区域上查找更多详细信息。以前的答案包括IP和TCP / IP的良好链接,如上所述,Wireshark将让您向下看一些层

答案 3 :(得分:6)

CISCO CCNA材料包含很好的网络基础,但不影响编程方面。我不确定是否有正式的免费链接,但您可以尝试找到它们。

答案 4 :(得分:4)

您有嵌入式编程经验吗?如果是这样,我建议您购买these development boards之一。它们很便宜,可以让你在网络堆栈的每个部分工作,而且所需的所有软件工具都是免费的。

请注意,继续使用它并不容易,我最终阅读了CS8900 IC数据表,以了解如何使其与基于ARM7的处理器进行通信。但是,如果你喜欢那种东西(就像我一样),那么它们就非常有趣。

答案 5 :(得分:3)

嗯......你看过Tanenbaum的Computer Networks了吗?

答案 6 :(得分:2)

你应该为自己的操作系统配备一个c编译器和必要的库和标题,然后玩游戏。您可能需要阅读例如:

http://snap.nlc.dcccd.edu/learn/fuller3/chap13/chap13.html

我在我的美味账户中有更多链接,但他们都在数字流失; - )

答案 7 :(得分:2)

我从oreilly中找到了解“了解linux内核”和“理解linux网络内部”的网络章节非常有帮助。

TCP / IP堆栈是一个非常好的开始,但是有很多并且很好地理解以太网如何工作以及以太网!= IP!= -interweb将会有很长的路要走。

关于网络安全的书籍经常做一个体面的,如果不是goos工作,解释网络如何在简洁的环境中工作。

对我来说真正的诀窍就是实现NAT的工作:)

答案 8 :(得分:1)

答案 9 :(得分:1)

本课程适合我:COS 461 at Princeton。请注意,它假定使用C。

进行系统级编程

几乎所有的阅读和讲座都可以在“教学大纲”下在线获得。您也可以尝试分配(遗憾的是,您将无法访问虚拟网络系统)。

答案 10 :(得分:1)

检查一下..这是一个很好的信息集合: http://www.tcpipguide.com/free/t_toc.htm