计算机网络(6)--整个过程概述

假设:A用一根以太网线连接到学校的以太网交换机,交换机又与学校的路由器相连,这台路由器与一个ISP连接,本例中ISP为Comcast.net,且comcast.net为学校提供DNS服务。DHCP服务器运行在路由器中

 

(1)A主机上的操作系统生成一个DHCP请求报文,并将这个报文放到具有目的端口67(DHCP服务器)和源端口68(DHCP客户)的UDP报文段,该报文段则被放在一个具有广播IP目的地址(255.255.255.255)和源IP地址(0.0.0.0)的IP数据报中

(2)包含DHCP请求的IP数据报则被放置在以太网帧中。该以太网帧具有目的MAC地址(FF:FF:FF:FF:FF:FF),使该帧广播到与交换机连接的所有设备,该帧的源MAC是A主机的MAC地址(唯一)

(3)包含DHCP请求的广播以太网帧是一个由A主机发送到以太网交换机的帧。该交换机在所有的出端口广播入帧,包括连接到路由器的端口

(4)路由器在它的具有MAC地址的接口接收到该广播的以太网帧,该帧中包含DHCP请求,并且从该以太网帧中抽取出IP数据报,该数据报的广播IP地址指示了这个IP数据报应该由在该结点的高层协议处理,因此该数据报的载荷被分解向上到达UDP,DHCP请求报文从UDP请求报文段中抽取出来,此时DHCP服务器有了DHCP请求报文

(5)DHCP分配一个IP地址,假设为111.111.111.111,DHCP服务器生成包含这个IP地址以及DNS服务器的IP地址,默认网关路由器的IP地址,和子网块IP地址的一个DHCP ACK报文,该报文被放入一个UDP报文段中,UPD报文段被放入一个IP数据报中,IP数据报再被放大一个以太网帧中。这个以太网帧的源MAC地址是路由器连接到归属网络时接口的MAC地址,目的地址是A的主机MAC地址

(6)包含DHCP ACK的以太网帧由路由器发送给交换机。因为交换机是自学习的,并且先前从A主机收到以太网帧,所有该交换机知道寻找到A

(7)A主机接收到包含DHCP ACK的以太网帧,从该以太网帧中抽取出IP数据报,从IP数据报中抽取UDP报文段,从UDP报文段中抽取DHCP ACK报文。A的主机DHCP客户端记录下自己的IP地址和DNS服务器IP地址。在IP转发表中安装默认网关的地址。A将向默认网关发送子网IP外所有的数据报

 

A在Web浏览器中输入一个URL

(8)操作系统生成一个DNS查询报文,将URL地址放大DNS报文的问题段中,该DNS报文则放到一个具有53号目的端口的UDP报文段中,该报文段则放到一个具有目的DNS IP地址和源IP地址的IP数据报中

(9)IP数据报再放入一个以太网帧中。该帧将发送到学校的网关路由器,虽然知道网关路由器的IP地址,但是还不知道该路由器的MAC地址,于是A的主机将使用ARP协议

(10)A主机生成一个具有默认网关IP地址的ARP查询报文,将该ARP报文放到一个具有广播地址的以太网帧中,并向交换机发送该以太网帧,交换机将该帧交给所有连接设备

(11)网关路由器在接口收到包含该ARP查询报文的帧,发现自己的IP与它匹配,于是它准备一个ARP回答指示它的IP地址对应的MAC地址,将ARP回答放大一个以太网帧中,目的地址为A的主机MAC地址,向交换机发送该帧,交换机将该帧交付给A

(12)A主机接收ARP回答帧,并从ARP回答报文中抽取路由器MAC地址

(13)A主机现在的帧中包含了目的DNS的IP地址和默认网关的MAC地址,该帧发给交换机,交换机交付给路由器

(14)网关路由器接收到该帧并抽取包含DNS查询的IP数据报。路由器查找该数据报的目的IP地址,根据转发表决定下一跳路由器。IP数据报被封装到链路层帧中

(15)不断转发,最终包含DNS查询的IP数据报到达了DNS服务器。DNS服务器抽取出DNS查询报文,在自己的数据库中查找url对应的IP地址(假设当前已有缓存不用一层一层的查询)。该服务器生成一个包含主机名到IP映射的DNS回答报文,将该报文放如UDP报文段中,该报文段放入A的IP地址到IP数据报中,该数据报将通过路由器,交换机最终到达A主机

(16)A主机从DNS报文抽取出url的IP

(17)A主机生成TCP套接字,接下来与目标url执行三次握手。A生成一个具有目的端口80的TCP数据报,其中SYN标记为设置1,将该TCP报文段放在具有目的IP地址的IP数据报中,将该数据报放置在帧中,向交换机发送该帧

(18)经过一系列转发,包含TCP的数据报到达目标url,从数据报中抽取出TCP SYN,分解到与端口80相连的欢迎套接字。生成一个连接套接字,产生一个TCP SYNACK报文段,将其放入向A主机寻址的一个数据报中,最后放入链路层帧

(19)一系列转发到达A主机,进入连接状态

(20)A主机浏览器生成包含要获取的HTTP GET报文,写入套接字中,其中还包含确认连接信息等,重复上面的步骤

(21)目标url从TCP套接字读取HTTPGET报文,生成一个HTTP响应报文,将请求的Web内容放入HTTP响应体中,并将报文发送进TCP套接字中,重复上面

(22)最终浏览器从套接字读取HTTP响应,从中抽取出HTML,最终显示

猜你喜欢

转载自www.cnblogs.com/blogofjzq/p/9228747.html