代码之家  ›  专栏  ›  技术社区  ›  Alex Gartrell

我如何才能真正学习低级网络编程?

  •  24
  • Alex Gartrell  · 技术社区  · 15 年前

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

    我知道我在这里要求很多,要完全解释这一切,从高到低都需要。我想我正在寻找一个范围和深度与 Applied Cryptography 但是关于网络。

    感谢任何能帮我指指点点的人(还有像我这样的人?)方向正确。

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

    类似问题: here . 不过,我所寻找的不仅仅是“TCP/UDP套接字下面是什么?”.

    编辑澄清:我所说的深度高于司机级别。那么假设比特可以到达和离开导线的另一端,接下来会是什么呢?

    11 回复  |  直到 15 年前
        1
  •  18
  •   Greg Hewgill    15 年前

    我从中学到了IP网络 TCP/IP Illustrated . 强烈推荐。

        2
  •  13
  •   Andy White    15 年前

    这也许不能帮助你学习它,但像一个包嗅探器 Wireshark 将使您对相当低级别的协议(TCP/IP)中的数据的外观有一些了解。

        3
  •  8
  •   Kevin    15 年前

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

    从各种形式的数据通信的基本原理开始,一直到需要停止的地方。 Data Communications, Computer Networking and Open Systems 是一个很好的基础文本,然后在你需要关注的每一个领域寻找更多的细节。以前的答案包括IP和TCP/IP的良好链接,如前所述,wireshark会让您浏览一些层

        4
  •  6
  •   Eugene    15 年前

    CiscoCCNA材料包含大量的网络基础知识,但不影响编程方面。我不确定是否有官方的免费链接,但你可以试着找到。

        5
  •  4
  •   IanW    15 年前

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

    请注意,进行这项工作并不容易,最后我阅读了CS8900 IC数据表,以了解如何使其与基于ARM7的处理器通信。但是如果你喜欢这类事情(像我一样),那么它们是非常有趣的。

        6
  •  3
  •   Billy    15 年前

    六羟甲基三聚氰胺六甲醚。。。你查过了吗 Computer Networks 塔嫩鲍姆?

        7
  •  2
  •   Arthur Ulfeldt    15 年前

    我发现Oreilly的“了解Linux内核”和“了解Linux网络内部结构”中的网络章节非常有用。

    TCP/IP协议栈是一个很好的开始,但是有很多,并且很好地理解了以太网的工作方式和以太网的工作方式!= IP!=InterWeb将有很长的路要走。

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

    对我来说,真正的诀窍是做一份实现NAT的工作:)

        8
  •  2
  •   Patrick Cornelissen    9 年前

    您应该为自己配备一个C编译器以及操作系统所需的libs和header,然后四处游玩。您可能需要阅读,例如:

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

    我在我的美味账户中有更多的链接,但它们都被数字消耗掉了;-)

        9
  •  1
  •   raspi    15 年前
        10
  •  1
  •   weiyin    15 年前

    这门课对我很有用: COS 461 at Princeton . 请注意,它假定具有C的系统级编程经验。

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

        11
  •  1
  •   Ritesh    10 年前

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