译者序
很多人说现在是“互联网时代”,我们身边出现了好多“互联网公司”,就连李克强总理也经常把“互联网+”挂在嘴边,可见互联网已经成为我们日常生活中的一部分了。
互联网其实是个非常复杂的玩意儿。我们每天都在上网,网络正常的时候大家都觉得“上网嘛,不就这么简单”。可是一旦出了问题,上不去了,你就会发现要想把问题找出来并解决真不是一件容易的事。这次是这里出问题,下次是另一个地方出问题,能出问题的环节太多了,这就说明网络真的很复杂。
我上高中的时候,曾经有同学来找我帮忙,说家里电脑上不了网了。我跑到他家里一看,网页确实怎么都打不开,但奇怪的是QQ居然能上,而且还能正常跟人聊天。当时的搜索引擎还没有这么强大,这个问题让我很是困扰。忽然我发现他电脑上TCP/IP设置中没有使用自动分配的DNS服务器,而且他自行设定的DNS服务器地址是错误的,改回自动配置DNS之后,故障就解决了。可是为什么DNS不对,QQ却可以正常上呢?后来我才知道,因为QQ是直接使用IP地址来连接服务器的,所以即便DNS失效,它依然可以“屹立不倒”,以至于现在有很多人把QQ当成一个排查DNS问题的“参照物”。
上面这个例子现在看起来其实非常小儿科,不过这也恰恰说明了网络很复杂,你看我只是上个网而已,怎么又冒出来一个DNS呢?即便到了现在,要跟周围不大懂网络的朋友解释什么叫DNS,也得花上点功夫才行。
其实,不说DNS,就说家里上网用的那个路由器,也不是什么省油的灯。很多人又要说了,我把电脑插到路由器上就能上网了,这又有什么复杂的嘛?那么我再讲个故事吧。有一次公司网络要改造,换了一台用RouterOS系统的网关。RouterOS这个系统,识货的人都知道,它的性能非常棒,灵活性也非常高,但是你要对网络特别了解才能玩得转。网关装上去之后,我想咱们先做个最简单的配置吧,就跟家里路由器一样,电脑插上去能上外网就行了。
然而,真配起来才发现,想要手动实现家里路由器的那些功能还真没那么容易。首先,接在路由器上的电脑需要彼此能够通信,这需要配置一个基本的交换机功能。其次,接在路由器上的电脑要自动获取IP地址等配置,这需要配置一个DHCP服务器。然后,连接外网的端口需要单独配置它的IP地址等参数,或者配置PPP连接,还得配置相应的路由表。到这里还不算完,因为内网的电脑要访问外网,还得配置好网络地址转换(NAT)!想要上个网还真挺复杂的是不是?你觉得简单是因为你家的路由器帮你把这些功能都集成好了而已。
如果上面这一段让你看得有点晕,那么这本书就是为你准备的。上面提到的这些东西,本书中都有深入浅出的介绍。我读过很多计算机网络方面的书,但也正是因为网络太复杂了,这些书一般都只讲其中的一个协议(比如HTTP),或者是一个局部的技术(比如网络设备的部署),很少有像这本书一样,从一个常见的场景切入,把整个网络的全貌如此清晰地展现出来。用本书作者的话说就是:不理解网络的全貌,也就无法理解每一种网络技术背后的本质意义。
如果你经常和网络技术打交道,特别是从事网络分析工作的话,这本书可以作为深入学习具体技术的前置读本或者补充读物。因为当你纵览全局之后,在学习具体技术时遇到的一些问题自然也就迎刃而解了。此外,我在这里还想友情安利两本林沛满老师写的关于Wireshark网络分析的书:《Wireshark网络分析就这么简单》和《Wireshark网络分析的艺术》。我觉得这本书的内容和林老师的两本书配合得非常好,毕竟网络分析涉及网络的方方面面,如果能对网络有一个全面的了解是很有帮助的。
最后感谢图灵教育各位编辑的努力,也希望各位读者能够借这本书发现一个不一样的网络世界。
周自恒
2016年10月于天津