通过浏览器上网,涉及到的协议和处理过程是什么?

从应用层说起,浏览器收到用户的请求,假设用户输入www.sina.com.cn。

1, DNS查询, 如果是首次访问www.sina.com.cn,它首先发起DNS查询请。像域名服务器发起查询,询问www.sina.com.cn的IP地址是多少。 域名服务器收到请求后会在自己的数据库里查询,然后通过返回给浏览器。

2, 在知道www.sina.com.cn的IP地址的情况下, 他会组织http请求,在HOST字段中填写www.sina.com.cn,在请求行填写”GET /” 然后作为用户的代理来向服务器IP地址发起请求连接,并且传输请求字符串。

3, 在服务器接收到请求后会将响应内容组织起来返回给客户端, 客户端收到响应后,将响应内容展示在页面上。

从tcp层说起

http协议是建立在tcp层之上,因此http封装在tcp层之上,在建立连接时需要三次握手,然后才能传输数据。 在结束会话时,需要四次消息,才能完全结束会话。

在双方通信过程中,如果一方收到报文,会有确认报文发送给对端。如果没有收到确认报文,对端会一直进行报文重传,直到超时。

从udp层说起,

DNS使用udp协议,它是一个无连接的不可靠地协议,没有确认报文,因此开销比较小。但在udp层之上需要一些机制来 保证可靠性。因此DNS在没有收到响应消息时,会再一次发起请求。

从ip层说起,每一个报文都是由路由器根据其本身的路由表独立的决策转发路径。从而一步一步的转发到目的地址。 每经过一次转发,其TTL会减一,如果减到0还没有找到目的地,则报文直接销毁。如果已经到达了目标网络,当目标 主机不存在,则路由器会返回一个目的地址不可达的消息。

如果目标IP地址和本机IP地址不是一个网段,那就需要网关地址,通过arp广播的寻找其网关的mac地址。然后将目标mac改为网关的mac地址进行 发送。