我该如何学习真正低层次的网络编程?

33

我想学习有关网络的所有知识,从套接字到原始套接字等各种内容。我还想了解集线器、路由器、接入点等设备。例如,我想编写自己的软件来执行这种操作。是否有一个很好的信息来源?

我知道我在这里要求了很多,并且要完全解释所有内容需要从高级到低级进行讲解。我想找到一个与应用密码学在范围和深度方面类似的来源,但是关于网络的。

感谢任何可以帮助指引我(和像我这样的人)正确方向的人。

* 是的,我意识到使用任何我手工编写的网络堆栈代码都会带来巨大的安全隐患,我只是想学习 :)

类似问题: 这里。然而,我正在寻找的不仅仅是“低于TCP / UDP套接字”的内容。

编辑说明:我所说的深度在驱动程序级别之上。因此,假设位可以在电缆的两端传输,接下来会发生什么?


3
你想深入了解多少底层知识呢?你想学习:
  • 仅使用原始套接字编写TCP实现吗?
  • 为你的操作系统或嵌入式系统编写新的TCP/IP协议栈?
  • 也要编写帧封装吗?(连接以太网有线网络、Gig-E、拨号、ATM、令牌环、WiFi、蓝牙等每种网络都不同)
  • 编写网络适配器驱动程序以接收帧并将其发送到网络接口卡吗?
- Stobor
11个回答

1
这门课程对我很有帮助:普林斯顿大学的COS 461。请注意,它假定您具有使用C进行系统级编程的经验。
几乎所有阅读材料和讲座都可以在“教学大纲”下在线获取。您也可以尝试作业(不幸的是,您将无法访问虚拟网络系统)。

只是出于好奇,这个属于普林斯顿本科课程的哪个阶段? - Alex Gartrell
通常由计算机科学专业的三年级或四年级学生选修,但有些人只是因为感兴趣而选修这些课程。 - weiyin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接