计算机如何访问Internet
上图是我和室友在教室的网络拓扑图。下面我们来探讨下,阿呆,ip:172.18.0.200是如何访问百度服务器的,其过程是怎样的。当阿呆想要上百度的时候,阿呆就在浏览器中输入www.baidu.com,那么接下来,电脑,路由器,以及百度服务器都做了什么呢?
第一步:域名解析
首先浏览器(程序)告诉DNS进程(程序)请帮我解析www.baidu.com的ip地址,然后才有一下dns的一系列操作
①用户主机上运行着DNS的客户端,就是我们的PC机或者手机客户端运行着DNS客户端了
②浏览器将接收到的url中抽取出域名字段,就是访问的主机名,比如我现在要访问百度:http://www.baidu.com/, 并将这个主机名传送给DNS应用的客户端
③DNS客户机端向DNS服务器端发送一份查询报文,报文中包含着要访问的主机名字段(中间包括一些列缓存查询以及分布式DNS集群的工作)
④该DNS客户机最终会收到一份回答报文,其中包含有该主机名对应的IP地址
⑤一旦该浏览器收到来自DNS的IP地址,就可以向该IP地址定位的HTTP服务器发起TCP连接其实也就是通过dns服务器,使我们能获取到域名背后的ip地址。
第二步:打包http报文
如上图所示浏览器将阿呆访问百度的请求打包成http报文,然后浏览器将这份报文和百度服务器的ip交给tcp进程。tcp进程虽然知道了目的Ip地址,但是觉得不安全,不敢发出去,他觉得先发个ip包看看能不能收到比较好一点儿,于是有了第三步,TCP三次握手。