1

假设我有一个网络浏览器。试图连接到 www.google.com。

Web 浏览器在端口 53 上向传输层发送 DNS 请求。传输层将请求封装在 TCP 上的一个段中,并将其传输到网络层。

网络层识别数据包并使用完整的DNS服务器IP地址并将其发送到链路层。

链路层使用 ARP 等。

得到回应。

链路层转移到网络层,这是我的问题:)。

网络层是否有任何主机名表到 ip?

从现在开始,响应应该会冒泡到应用层。应用层是否将从 dns 请求中提取的 ip 添加到数据包中?

据我了解,应用层应该尝试绑定到一个端口,然后传输层应该通过套接字将它连接到主机名/ip,或者报告给 ip 层来完成它。

但问题是如何?

谢谢。

4

1 回答 1

2

DNS 响应只是一个 UDP 数据包,其中包含一个标头,后跟与应用程序相关的数据主体。数据包括请求的域名,但这是为了发出 DNS 请求的应用程序的利益,而不是网络层。网络层不分析数据体的内容。

是应用层对DNS响应包进行解码,并在绑定端口时存储IP地址以备后续使用;binding 对 DNS 名称一无所知,它只知道 IP。

于 2013-01-12T10:26:16.550 回答