【问题标题】:how does the network interface card know what application to forward packets to?网络接口卡如何知道将数据包转发到哪个应用程序?
【发布时间】:2018-06-23 11:46:11
【问题描述】:

在过去的几天里,我一直在学习网络,我使用wireshark 来嗅探我的网络流量,我想知道数据包是如何到达请求它们的同一个应用程序的!也就是说,当我在浏览器中输入“https://stackoverflow.com”时,请求的页面会发送到请求它的同一浏览器。

使用wireshark,我发现应用程序名称与http头一起发送,形式如下: {用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/63.0.3239.132 Safari/537.36}

我认为这就是网络服务器知道将数据包转发到哪个应用程序的方式。所以,我认为响应将包含我在请求中使用的浏览器的名称,但我发现数据包似乎根本不包含这些信息!现在的问题是,我的计算机如何知道它应该将数据包转发到哪个应用程序!!

如果我考虑一下我使用什么点击来请求页面,它甚至会变得更加复杂,当然这些细节不会在数据包中发送。所以我只是想知道,页面如何使用相同的应用程序加载到同一页面上?!也许在请求中发送了会话 ID 或其他内容,然后在响应中收到了???如果是这样,我如何使用wireshark在数据包中找到该ID?!

【问题讨论】:

    标签: http networking tcp


    【解决方案1】:

    TCP 协议使用 PORTS 来连接不同 IP 地址之间的不同应用程序。您的操作系统管理传出连接并将新端口分配给新请求。连接(会话)为IP_Address1:TCP_Port1 => IP_Adress2:TCP_Port2

    【讨论】:

      【解决方案2】:

      网络接口卡如何知道将数据包转发到哪个应用程序?

      没有。

      操作系统中的 TCP/IP 网络堆栈通过协议中的端口号执行此操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-16
        • 2016-02-26
        • 1970-01-01
        • 2012-05-03
        • 1970-01-01
        • 2011-01-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多