一、计算机获取IP(DHCP协议):
- 计算机生成DHCP报文,并将此报文放入UDP报文段中(源端口68,目的端口67),此UDP报文段被放入IP数据报中(广播IP目的地址:255.255.255.255,源IP地址:0.0.0.0)
- IP数据报被放入以太网帧中(目的MAC地址:FF:FF:FF:FF:FF:FF,源MAC地址:计算机MAC地址),该帧将广播到与交换机连接的所有设备
- 路由器收到该以太网帧后,从以太网帧中抽取出IP数据报,从IP数据报中抽取UDP报文段,从UDP报文段中抽取DHCP报文,DHCP服务器收到DHCP请求报文
- DHCP收到请求报文后,将IP地址及DNS服务器IP地址、默认网关路由器Ip地址、子网块(IP/掩码)放入DHCP ACK报文中
- 将此DHCP ACK报文放入UDP报文段中,UDP报文段放入IP数据报中(源IP:路由器IP,目的IP:255.255.255.255(为了通知其他DHCP服务器)),将该IP数据报放入以太网帧中(目的MAC地址:计算机MAC地址,源MAC地址:路由器MAC地址);
- 该以太网帧由路由器发送到交换机中,交换机通过“自学习”记录计算机MAC地址
- 计算机收到包含DHCP ACK的以太网帧,抽取IP数据报,抽取UDP报文段,抽取DHCP ACK报文,计算机记录IP地址及DHS服务器IP地址;并在IP转发表中安装默认网关;
- 计算机对DHCP ACK报文进行回应
- DCHP路由器进行确认
二、 键入URL(DNS协议/ARP协议)
- 在浏览器中键入URL后,计算机生成一个DNS查询报文,查询该URL对应的IP地址,该DNS报文放入UDP报文段中(目的端口:53),该UDP报文段被放入IP数据报中(目的地址:DNS服务器地址,源地址:计算机地址),该IP数据报被放入以太网帧中
- 由于不知道网关路由器的MAC地址,计算机使用ARP协议,生成一个ARP查询报文(目的地址:网关地址,目的MAX地址:255.255.255.255),网关路由器收到包含此ARP查询报文的以太网帧后,拆包,然后进行回应,生成ARP回答,指示自己的MAC地址对应网关地址
- 计算机收到此ARP回答后,封装包含DNS查询报文的以太网帧,将此以太网帧发送到网关路由器
- 网关路由器收到此以太网帧后,拆包,抽取目的IP,根据路由转发算法,进行转发,最终发送到DNS服务器
- DNS服务器将该URL对应的IP地址封装到DNS回答报文,然后发送给计算机
- 计算机收到该DNS回答报文后,抽取出URL对应的IP地址,生成TCP套接字,进行三次握手
三、三次握手
- 计算机向服务器发送SYN报文段(SYN=1,sqq =client_isn)
- 服务器为该连接分配缓存和变量,并向计算机回复SYN ACK报文段(SYN=1, seq=server_isn,ack=client_isn+1)
- 计算机为该连接分配缓存和变量,并向服务器回复(SYN=0,seq=client_isn+1,ack=server_isn+1)