【问题标题】:How does application layer transfer the ip address to the network layer?应用层如何将ip地址传递给网络层?
【发布时间】:2012-12-26 20:48:44
【问题描述】:

可以说我有一个网络浏览器。 正在尝试连接到 www.google.com。

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

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

链路层使用ARP等。

得到响应。

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

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

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

据我了解,应用层应该尝试绑定到一个端口,然后传输层应该通过套接字将其连接到主机名/ip 或向 ip 层报告以执行此操作。

但问题是如何?

谢谢。

【问题讨论】:

    标签: networking tcp ip hostname


    【解决方案1】:

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

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

    【讨论】:

    • ok,那么应用层怎么从网络层进来,用哪个ip呢?
    • 好的,你能指定吗?那里到底发生了什么?我需要它来参加工作面试。
    • 您是否阅读过 RFC 1035793 和/或任何有关 TCP/IP 的书籍?这是一个很大的主题领域,你不明白哪一部分不是很清楚。如果是面试,我会疯狂地阅读。
    • 是的,我读过所有的 tcpipguide.com 我不明白应用程序层如何告诉 ip 层在从网络层获取数据包时要在数据包中使用哪个 ip。答案是然后你创建一个套接字,你将你的消息写入套接字,网络层在哪里获取 ip 并使用它来创建数据包。
    猜你喜欢
    • 2012-01-31
    • 1970-01-01
    • 2017-06-23
    • 2013-05-22
    • 2016-01-20
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 2012-12-19
    相关资源
    最近更新 更多