2009-10-22 22 views
1

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

有没有这样一个简洁的资源存在?购买网络书籍(比如Tanenbaum或Kurose的书)会更适合学习更多的路线吗?还是更好地走这条途径可能会查看网络管理员文本或认证书。

非常感谢大家。

回答

3

已故的理查德史蒂文斯'book是一个杰作 - 比Tanenbaum的(更没有研究黑人)更实用,更直接适用。顺便说一句,同一位作者,我同样热烈推荐“TCP/IP Illustrated”系列中的书籍,并且Advanced Programming in the Unix Environment-对于想成为“程序员或Unix管理员”的读者而言,很少有书籍更为重要,或许ESR's

0

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

1

哇..网络是一个严重的大领域。要真正理解一切,需要一个博士,或几个博士。

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

1)您需要了解网络的历史。议定书中的许多政策都是由于时间的限制而制定的。了解协议的历史,以了解其工作原理的“原因”。

2)编程是关于网络如何在最低级别工作的极好的知识来源。学习用C编写一些套接字代码。BSD套接字是一个很好的开始。你可以在因特网上找到很多BSD套接字的参考资料。

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

4)如果你的话,有几个证书,如MCSE和CCNA,它们都具有联网模块。这些论文可以用来获取关于特定类型网络的知识。尽管我从来没有真正玩过域名,但我从为MCSE论文坐的Windows NT域模型学到了很多东西。

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

有点个人经验。 我作为软件开发人员工作了10年。我也是我办公室的“无偿”网络专家。不知何故,我必须戴上1个以上的帽子作为开发者,因为网络是我工作的软件的一部分。

2

同类不清楚我到底你在寻找什么,所以我只是要抛出此那里:

启动网络你自己的东西在一起。创建一个局域网。去弄清楚如何创建和管理Linux防火墙而不是消费者。安装Active Directory仅适用于微笑。在该Active Directory服务器上运行您自己的DHCP和DNS服务器。

一旦你到达那里,如果你还有兴趣,开始考虑如果你有500台电脑,你将如何规划你的局域网。了解虚拟局域网(VLAN)。

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

+0

+1,我认为这是一个非常好的主意,想想你将如何规划网络基础设施。 – mdegges 2011-10-03 17:48:56

3

这里是我推荐的方式:

  • 学习如何上网演进,这会给你他们为什么需要它
  • 了解不同协议的原因 - HTTP,TELNET,SSH ESP安全的人SFTP,HTTPS等
  • 了解什么是插座和插座类型
  • 了解如何进行套接字编程。我建议你使用Python sockets来编程
  • 了解TCP/IP网络堆栈。这将是有益的
  • 了解如何routing works,这是学习
  • 尝试有像DNS主题的良好的知识很重要,这是非常重要的
  • 获取VirtualBox和安装各种操作系统,并尝试网间他们。玩弄OS的网络堆栈。