您的位置:首页 > 运维架构 > 网站架构

在浏览器中输入一个网站后,都发生了什么

2014-11-17 23:30 232 查看
以下仅是我对此的个人理解,如有错误,请一定指出,立马修改。
当我们打开了一个浏览器,在地址栏输入一个网址时,例如:www.baidu.com。
此时,我们的电脑会发送一个请求数据包到百度。
但是,www.baidu.com仅仅是一个域名,我们并不知道它的服务器具体在哪,所以此时就需要将域名转换为IP地址。
利用DNS协议,已知DNS服务器为8.8.8.8,于是我们向这个地址发送一个DNS数据包(53端口)。
然后,DNS服务器做出响应,告诉我们www.baidu.com的IP地址是202.108.22.5。
其次,我们还需要知道百度服务器的MAC地址。
首先,我们根据自己的子网掩码和IP地址进行与运算,得到一个结果A,再将子网掩码和对方的IP地址与运算,得到结果B,如果A等于B,则我们的数据包里写入的接收方MAC地址则是对方服务器的MAC地址,否则写入的接收方MAC地址则是当前网关的MAC地址(MAC地址通过ARP协议获得)。
因为浏览网页用的是HTTP协议,他是基于TCP协议的,所以HTTP数据包里嵌有TCP数据包。
TCP协议里包含双方的端口信息,接收方HTTP默认端口为80,而发送方的HTTP端口是一个随机生成的整数。
并且TCP数据包里再嵌入IP数据包,IP数据包里包含了双方的IP地址。
最后,IP数据包嵌入以太网数据包,以太网数据包里包含了双方的MAC地址。
经过多个网关的转发,百度服务器接收到了你发送的数据包,然后做出回应,再用TCP协议发回来。
当我们接收到后,就可以在网页上显示出来了,这就完成了一次通信。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐