30

所以我想了解所有关于网络的知识。远低于套接字,一直到原始套接字和其他东西。而且我想了解集线器、路由器、接入点等。例如,我希望能够编写自己的软件来做这类事情。*这类信息有很好的来源吗?

我知道我在这里问了很多,而要完全解释这一切需要从高层次到低层次。我想我正在寻找与Applied Cryptography的范围和深度相似的来源,但与网络有关。

感谢任何可以帮助指出我(以及像我一样的人?)正确方向的人。

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

类似的问题:这里。但是,我寻找的不仅仅是“TCP/UDP 套接字下面有什么?”。

为澄清而编辑:我所说的深度高于驱动程序级别。因此,假设这些位可以进出电线的另一端,接下来呢?

4

11 回答 11

18

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

于 2009-06-05T07:17:23.253 回答
15

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

于 2009-06-05T07:12:38.440 回答
8

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

从各种形式的数据通信的基础知识开始,沿着堆栈向上工作,直到到达需要停下来的地方。数据通信、计算机网络和开放系统是一个很好的基础文本,然后在你需要关注的每个领域寻找更多细节。以前的答案包括 IP 和 TCP/IP 的良好链接,如前所述,Wireshark 将让您向下看一些层

于 2009-06-05T07:40:45.450 回答
6

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

于 2009-06-05T08:01:36.983 回答
4

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

请注意,这并不容易,我最终阅读了 CS8900 IC 数据表以了解如何使其与基于 ARM7 的处理器通信。但是,如果您喜欢这种事情(就像我一样),那么它们会很有趣。

于 2009-06-05T08:13:14.917 回答
4

嗯……你看过Tanenbaum 的Computer Networks吗?

于 2009-06-05T08:38:14.040 回答
3

您应该为自己配备 ac 编译器以及操作系统所需的库和头文件,然后玩玩。例如,您可能想阅读:

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

我的美味帐户中有更多链接,但它们都被数字化了;-)

于 2009-06-05T07:35:23.810 回答
2

TCP/IP 指南

于 2009-06-05T07:31:11.180 回答
2

我发现 oreilly 的“理解 linux 内核”和“理解 linux 网络内部”中的网络章节非常有帮助。

TCP/IP 堆栈是一个非常好的开始,但还有更多内容,并且对以太网的工作原理以及以太网 != IP != the-interweb 的工作方式有很大的了解。

关于网络安全的书籍通常可以很好地解释网络如何在简洁的环境中工作。

对我来说真正的诀窍是从事实施 NAT 的工作:)

于 2009-06-12T22:57:25.697 回答
1

这门课程对我有用:普林斯顿大学的 COS 461。请注意,它假定具有 C 的系统级编程经验。

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

于 2009-06-12T23:05:26.473 回答
1

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

于 2014-01-28T17:37:36.393 回答