HTTP获取目的网站的ip地址

HTTP获取目的网站的ip地址

Tcp/Ip communication细节
案例: 从因特网下载一个包
1.进入浏览器网站PC
2.DNS 服务器产生一条信息
PC中的HTTP客户端尝试生成一条消息,要求从www.website.com请求HTML文件。
它需要在生成的消息中提供该消息中的目标IP地址,但没有该IP地址。
因此它使用PC的DNS客户端来获取它。
DNS客户端向传输层发送一条消息,请求为website.com提供IP地址
HTTP获取目的网站的ip地址

3.创建一个数据报
传输层将包含源端口和目标端口的UDP标头添加到消息中,创建源端口号并将其分配给请求IP地址的DNS进程。 “Well-Known” DNS服务端口号用作目标端口。 然后将结果数据报发送到网络层.
HTTP获取目的网站的ip地址
4.创建一个数据包
网络层将包含源IP地址和目标IP地址的IP标头添加到数据报中。 它添加自己的IP地址作为源,DNS将IP地址作为目的地。 PC知道DNS服务的IP地址,因为路由在分配其本地IP地址时向PC提供了它。包被发送到链路层
HTTP获取目的网站的ip地址
5,确定目的MAC地址
确定此数据包的目标IP地址的链路层不在此网络上,因此它需要将数据包发送到其默认网关,在本示例中为路由器。现在我们遇到了问题。链路层无法创建该帧,因为它不知道默认网关的MAC地址。需要ARP 来解决这个问题。
HTTP获取目的网站的ip地址
6.创建并传输帧
通过ARP 得到默认网关的MAC地址,链路层可以完成这个帧,它添加源和目的MAC地址在这个包上,源MAC地址是它自己,目的MAC地址是默认网关的MAC地址,然后将该帧发送到物理层以传输该帧的比特.
HTTP获取目的网站的ip地址
7.NAT和转发帧到互联网
路由从PC接受到帧,打开包检测目的IP地址是否是在本地网络,打开数据包并确定目标IP地址不在本地网络上,因此它必须将此帧转发到Internet。
路由器会创建一个新的NAT条目,并将本地网络IP地址更改为其公用Internet IP地址,还使用了相同的NAT表条目来更改源端口,以便路由器可以确定主机和主机进程以传递到数据包,路由也要改变源MAC改成WAN 或者Internet MAC,目的MAC改成路由默认网关。HTTP获取目的网站的ip地址

8.转发帧到DNS服务
路由在ISP接受和打开包发现目的IP地址,检测目的IP地址属于DNS服务,
路由的网络层发送包给链路层产生一个新的帧头部,
源MAC是属于她自己和目的MAC地址属于DNS 服务,这个新的帧发送给DNS服务
HTTP获取目的网站的ip地址
9.DNS服务接受帧
这个DNS的PHY接受接收比特和帧到链路层,链路层发现目的MAC地址所以转发这个包到网络层,网络层打开包发现目的IP地址,所以把他传递给传输层,传输层打开数据流和发现它的端口号是53,DNS服务具有正在运行的进程,正在侦听此端口上的流量,因此将message转发给它
HTTP获取目的网站的ip地址

10.DNS 翻译并回复
DNS检测网站的ip地址,产生回复信息,这个信息被返回给传输层
传输层添加端口信息和创建数据流,
网络层添加IP信息和创建包,
链路层添加MAC信息创建帧,
物理层传递帧给路由
HTTP获取目的网站的ip地址
11.转发帧给本地路由
ISP的路由接受帧,发现MAC地址传递给网络层去检测IP地址,如果发现这个包属于本地路由IP地址,传递给链路层,链路层改变新的MAC给这个包,并发送帧到本地路由
HTTP获取目的网站的ip地址
12.NAT解析在本地路由

当本地路由接收到包从ISP路由。它查询其NAT表以确定将其转发到哪个本地主机,并在转换表中找到Internet目标端口号为1的条目。将相应的本地IP地址和端口号替换为将发送到本地网络的数据包
HTTP获取目的网站的ip地址
13.帧转发到本地PC
新的包送到路由的链路层,源和目的的MAC地址被添加到帧中,路由通过APR表知道目的MAC地址和目的IP地址,这个帧然后被送到物理层传输给网络。HTTP获取目的网站的ip地址
14.DNS服务器传递IP地址
当帧到达PC端,message传递给DNS的服务器,DNS然后提供IP地址给HTTP服务器HTTP获取目的网站的ip地址
15.HTTP服务器产生信息
现在Http 服务器有目的网站的IPHTTP获取目的网站的ip地址
地址,可以产生信息去下载HTML文件