2

我了解网络的基础知识,例如局域网等。我知道许多协议是什么以及如何在 C 中构建客户端/服务器套接字程序。但我真正想要的是非常了解网络的实际工作方式。不仅从编程方面,而且从应用方面。我正在寻找一些材料(最好是一本书),这将为我提供一个很好的基础。我正想成为一名程序员或 UNIX 管理员,所以我真的应该学习并知道如何应用网络基础知识。

有没有这样简洁的资源?通过购买网络书籍(例如来自 Tanenbaum 或 Kurose 的书籍)走更多学术路线会更好,还是走 IT 路线可能会更好,可能会查看网络管理文本或认证书籍。

非常感谢大家。

4

6 回答 6

3

已故的理查德史蒂文斯的是一部杰作——比塔南鲍姆的书(没有研究过黑濑)更实用,更直接适用。顺便说一句,同一作者,我同样热烈推荐“TCP/IP 插图”系列中的书籍,以及Unix 环境中的高级编程——对于想要成为“程序员或 Unix 管理员”的人来说,很少有书籍更重要,保存也许ESR 的

于 2009-10-22T05:21:13.200 回答
3

这是我推荐的方式:

  • 了解互联网是如何发展的,这将为您提供他们需要它的原因
  • 了解不同的协议 - HTTP、telnet、ssh 尤其是安全协议 SFTP、HTTPS 等
  • 了解什么是套接字和套接字类型
  • 了解如何进行套接字编程。我建议您使用Python 套接字进行编程
  • 了解 TCP/IP 网络堆栈。那将是有益的
  • 了解路由是如何工作的,这对学习很重要
  • 尝试对 DNS 等主题有充分的了解,这非常重要
  • 获取 VirtualBox 并安装各种操作系统并尝试将它们联网。玩转操作系统的网络堆栈。
于 2009-10-22T05:25:42.037 回答
2

我有点不清楚你到底在找什么,所以我只想把它扔在那里:

开始将您自己的东西联网。创建局域网。去弄清楚如何创建和管理 Linux 防火墙而不是消费者防火墙。安装 Active Directory 只是为了好玩。在该 Active Directory 服务器上运行您自己的 DHCP 和 DNS 服务器。

一旦你走到这一步,如果你仍然感兴趣,开始考虑如果你有 500 台计算机,你将如何规划你的 LAN。了解虚拟 LAN (VLAN)。

我认为网络尤其是一个开始修补的好地方,因为 A)没有人受伤,B)它大部分是免费的。

于 2009-10-22T05:21:52.883 回答
1

哇..网络是一个非常大的领域。要真正理解一切,需要一个或多个 PHD。

以下是我认为你需要学习的一些方面。

1)你需要了解网络的历史。由于时间的限制,许多内置在协议中的策略是制定的。了解协议的历史以了解其工作原理的“原因”。

2) 编程是了解网络如何在最低层工作的极好知识来源。学习用 C 编写一些套接字代码。BSD 套接字是一个很好的起点。您可以在 Internet 上找到很多关于 BSD 套接字的参考资料。

3) *nix 命令提供了关于配置和管理网络的丰富知识。优秀的网络管理员知道很多关于如何使用最基本的网络工具构建复杂网络操作的技巧。GNU 网络工具是一个很好的起点。

4)如果你愿意的话,有几个证书,如 MCSE 和 CCNA,它们都有网络模块。这些论文有助于获得有关特定类型网络的知识。我从参加 MCSE 论文中学到了很多关于 Windows NT 域模型的知识,尽管我从来没有真正玩过域。

还有更多方面。问问自己,你更喜欢哪个?

一点个人经验。我作为一名软件开发人员已经工作了 10 年。我也是我办公室里的“无偿”网络大师。不知何故,作为一名开发人员,我必须戴上不止一顶帽子,因为网络是我工作的软件的一部分。

于 2009-10-22T05:17:44.543 回答
1

对于基础知识,您可能想要获得W. Richard Stevens Classic、TCP/IP Illustrated以及可能还有他的其他书籍。他们也不会有了。

于 2009-10-22T05:23:45.113 回答
0

听起来你正在寻找的那种理解是那种只有通过经验才能真正达到的理解。每个人都会有不同的看待事物的方式,这取决于对他们有意义的事情——解释会有所帮助,但通过实际解决问题来学习是不可替代的。

于 2009-10-22T05:16:09.290 回答