整个过程基本分为下面几个部分:
1、域名解析成IP地址;
2、与目的主机进行TCP连接(三次连接);
3、发送与收取数据;
4、与目的主机断开TCP连接(四次挥手);
域名解析过程如下
1、浏览器向本机DNS模块发出DNS请求,DNS模块生成相关的DNS报文。
2、DNS模块将生成的DNS报文传递给传输层的UDP协议单元。
3、UDP协议单元将该数据封装成UDP数据报,传递给网络层的IP协议单元。
4、IP协议单元将改数据封装成IP数据报,其目的IP地址为DNS服务器的IP地址。
5、封装好的IP数据包将传递给数据链路层的协议单元进行发送。
6、发送时在ARP缓存中查询相关数据,如果没有,就发送ARP广播(包含待查询的IP地址,收到广播的主机检查自己的IP,符合条件的主机将含有自己MAC地址的ARP包发送给ARP广播的主机)请求,等待ARP缓存表。
7、得到ARP回应后,将IP地址与路由的下一跳MAC地址对应的信息写入ARP缓存表。
8、写入缓存后,以路由下一跳的地址填充目的MAC地址,以数据帧形式转发。
9、转发可能进行多次。
10、DNS请求到达DNS服务器的数据链路层协议单元。
11、DNS服务器的数据链路层协议单元解析数据帧,将内部的IP数据包传递给网络层IP协议单元。
12、DNS服务器的IP协议单元解析IP数据包,将内部的UDP数据包传递给传输层UDP协议单元。
13、DNS服务器的UDP协议单元解析收到的UDP数据报,将内部的DNS报文传递给DNS服务单元。
14、DNS服务单元将域名解析成对应IP地址,产生DNS回应报文。