前几天在李骏老师的分享课中,提到了他每次面试必问的一个问题,问题是这样的,在浏览器的地址栏输入一个地址然后回车之后发生了什么?乍一听起了,是不是感觉挺傻的,一般人肯定会对这样的问题很不屑,这还用问吗?肯定就到跳转到对应的页面了呀,可是仔细想想,似乎并没有那么简单,因为它几乎涉及了互联网最关键、最核心的底层协议。
首先,我来举一个例子,比如热衷网购的你在浏览器输入一个网址:www.taobao.com,细心的同学还会有这样的一个体会,前面带不带前面的3W,都不会影响你正常跳转到淘宝的网站,其实这是浏览器的一个缺省项,即——如果在地址中没有检测到3w,就默认你需要访问的是万维网,聪明的你是不是一定想到了,其实这个3w就是万维网的缩写,全称叫World Wild Web。
很多人会误以为在互联网上找一个叫网页很容易,其实并非如此,如果放在互联网诞生之初,想找到一个网站的确很容易,因为当时的互联网还很小,也就那几家有名的公司,直接通过对方的IP地址就可以访问,可是如今的互联网规模用浩如烟海形容一定也不为过,短短的十来年中,网站数量已从Internet上的9,200万增加到超过10亿个,想想看,如何让浏览器瞬间在数10亿个网站中找到那个叫淘宝的网站,早期的人们很快就意识到了这个问题,于是使用域名解析到对应IP的主机就成了目前来看最高效的解决方案,你常看的www.taobao.com就是一个域名。
也就是说,当我们在浏览器输入一个网址:www.taobao.com的时候,最新为我们服务的是域名解析服务器,也叫DNSserver,说的形象一点就是,浏览器会拿着我们敲入的地址问域名服务器,这个地址对应的IP地址是什么;说起IP地址,对就是你最常听说过的192.168.1.254这类点分十进制的一段数字,不得不插一句,其实IPv4的地址早就不够用了,只是借助了很多辅助功能,才勉强维持到现在,不过好在IPv6彻底解决了地址不够用的问题,直到DNSserver最终返回这个域名对应的IP地址,然后浏览器就知道淘宝的服务器地址是那个了,DNS的工作原理可参考下图。

知道了IP地址这还只是第一步,因为接下来的故事会更加的曲折,第一个摆在我们面前的问题就是,有了这个IP地址之后,怎么根据这个IP地址去浩瀚的网络中找到这个IP对应的主机在哪里?这就是IP寻址的问题,你最常听说的交换机、路由器,其实就是干这个活的,如果想要彻底搞懂寻址的原理,你就不得不面对RIP、OSPF、IS-IS、IGRP、EIGRP、BGP等一堆的路由协议,相信我,你不会感兴趣的,说起路由器和交换机,不得不说华为这家公司,华为就是从做通讯设备起家,逐渐扩张成如今的商业帝国,确实值得国人骄傲。
第二个要解决的问题就是如何在你的电脑和淘宝的这台主机之间建立起连接,说到这里不得不说TCP,全称叫:Transmission Control Protocol,也叫传输控制协议,千万别嫌弃我又在拽英文了,因为早期的互联网就是从欧美这些发达国家生长出来的,各种网络协议就是欧美人发明的,确实也没咱中国人什么事儿啊,可以毫不夸张的讲TCP/IP几乎就是构建互联网世界的钢筋水泥,每次提到TCP,我总会想到图书馆里那本从来没勇气翻开看的大部头,其实TCP协议的原理,就是定义了两台主机之间建立通讯的一些规则和标准,比如说双方建立链接的时候,要三次握手,断开链接的时候要四次挥手,可参考下图,你可以把它理解为两个国家在交往时的一套商务礼仪,。


本来打算通过一篇文章就能把这个问题回答清楚,可惜说了这么一堆,才说到了第二步,看来有些事看似简单,实则并不简单,预知后事如何,还是听下回分解吧。
网友评论