今天北京交通大学面试的时候出了这样一道题:
在浏览器上输入新浪网的网址后就会显示新浪网的首页,请说说这个过程是怎么样的?
我是简单的说的:
首先浏览器把域名发送到DNS服务器上,DNS对该域名进行解析,获得对应的IP地址,返回给主机,主机得到相应的IP地址就会根据这个地址利用路由器发送给服务器所在的网络,该网络连接的路由器把该信息发给新浪服务器,服务器接到请求后查找对应的页面,将该页面打包分片利用网络上的路由器依次传送给请求的主机的浏览器,浏览器获得超文本后就进行处理显示。这样一个过程就结束了。呵呵,但这样没有把TCP/IP的精髓说出来。
事后我总结了一下,应该这样说:
1、浏览器请求域名解析,获得域名对应的IP地址。
2、浏览器把请求数据传给运输层,运输层获得数据后把数据分组,并给没有组加上TCP头部,生成一个TCP段,送交给网络层。
3、网络层加上包含源IP和目的IP地址的IP报头,形成IP数据报,并将此数据包送交给数据链路层
4、数据链路层在MAC帧的数据部分加上包含源MAC地址和目的MAC地址的帧头,送交给物理层
5、物理层将数据传送给目的主机
目的主机解析是和发送相反的过程
最后服务器程序解析到接收到的数据后就会找到请求的数据,将数据以同样的方式发送给请求主机,主机浏览器接收到后,显示页面。