2013-01-12 72 views
1

可以说我有一个网页浏览器。试图连接到www.google.com的 。应用层如何将IP地址传输到网络层?

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

网络层识别出数据包并使用defulte DNS服务器ip地址并将其发送到链路层。

链路层使用ARP等。

得到响应。

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

网络层是否将任何主机名表保存到IP?

从现在开始,响应应该起泡到应用程序层。 剂量应用层添加从DNS请求提取的IP到数据包?

从我理解的应用层应该尝试绑定到一个端口,然后传输层应该连接它一些如何通过套接字到主机名/ IP或报告到IP层做到这一点。

但问题是如何?

谢谢。

回答

2

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

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

+0

好的,那么应用层如何影响网络层使用哪个ip? – USer22999299

+1

通过connect()API。 – EJP

+0

好的,你能指定吗?那里究竟发生了什么?我需要面试。 – USer22999299