题目如下:
解析:
主机h1的默认网关是路由器R的ip地址
主机h1的域名服务器是本地域名服务器的ip地址
题目应有一些前提条件:
以下为具体过程:
1.主机刚开始应该为了通过域名找到该域名对应的ip地址,需要发的是广播帧,ARP报文
2.通过本地域名服务器的ip找到本地域名服务器的mac地址
h1主机向交换机发送ARP请求报文,其中,
目的MAC地址:FF-FF-FF-FF-FF-FF-FF
源MAC地址:00-11-11-33-44-cc(h1自己的MAC地址)
通过端口4进入,因为交换表此时是空的,直接写入交换表
3,由于是广播帧,交换机不要查找路径,直接发给所有。即发给R和h2和h1。
h1和R从帧中解析出该报文,发现目的地址不是自己,于是丢弃。
h1从帧中解析出报文,发现目的地址是自己,于是接受该报文,并打算发响应报文。
4.本地域名服务器向交换机发送ARP响应报文,其中(本次为单播帧)通过1号端口进入
目的MAC地址:当然是h1的MAC地址,因为是响应它的
源MAC地址:本地域名服务器自己的
交换机对其进行登记,写入转发表,登记的都是源MAC地址
登记完成后进行转发,在交换表中查找该帧对应MAC地址,发现该MAC地址对应端口为4,故直接从端口4转出转出该单播帧。
5.于是主机h1收到该单播帧,对他进行解析,知道本地域名服务器IP192.168.1.126/25对应的MAC地址为00-11-22-33-44-bb(因为该MAC地址就在该帧中)。
此时主机知道这个东西,于是把它写入自己的ARP表。
Finish:整个ARP报文过程到此结束
6.现在主机h1可向本地域名服务器发送DNS请求报文,为的是获取web服务器域名所对应的ip地址。
DNS在运输层被封装成UDP数据报,其中目的端口号:为DNS熟知端口号53
在网际层被封装成ip数据报,目的IP:本地域名服务器ip 源IP地址:主机h1的
单播帧,源MAC: 主机h1 目的MAC:本地域名服务器MAC
该报文经过端口4进入,转发通过1出去,到达本地域名服务器。
7,本地域名服务器于是给h1发送他想要内容的DNS响应报文。
8.h1收到之后就知道了WEB服务器的IP地址主机h1发现本地域名服务器IP和自己的IP两者的网络前缀不同,就知道web服务器与自己不在一个网络中,即192.168.1.126/25(自己的)和隐藏在报文中的。因此主机h1需要通过路由器R即默认网关到达web服务器。
9.主机从自己的ARP表中查询默认网关的IP地址所对应的MAC地址,找不到,于是主机h1发送ARP请求报文(广播),目的MAC:FF-FF-FF-FF-FF-FF 源MAC:自己的
于是R和本地域名服务器和h2都会收到,h2和r丢弃了,r接受了,
10.于是R准备给h1发响应报文。R告诉他自己的MAC地址,此时响应的单播,从端口2进入,交换机写入其源地址和端口,(交换表)其中
源地址:R自己的MAC
目的地址:h1的MAC
11.交换机查找该目的MAC地址对应端口为4,于是从4转出,于是h1收到该响应报文。就知道了路由器R该接口的IP所对应的MAC。于是将其写入至ARP表中。
以上过程所对应的两个表如下:
MAC地址 | 端口 |
00-11-22-33-44-cc | 4 |
00-11-22-33-44-bb | 1 |
00-11-22-33-44-aa | 2 |
IP地址 | MAC地址 |
192.168.1.126 | 00-11-22-33-44-bb |
192.168.1.1 | 00-11-22-33-44-aa |
现在主机可以访问web服务器了
主机与WEN服务器首先要通过三报文握手建立连接,TCP服务器使用熟知端口号80,主机H1可在第三个报文发送http请求报文,问服务器收到后,将所请求内容封装为HTTP响应报文,发送给h1.
鉴于此题较为重要,于是花费时间记录
以下为我所参考的视频,视频讲解有拓展,我不听,我不接受。