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



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

使用 wireshark,我发现应用程序名称与 http 标头一起发送,形式如下: {User-Agent: Mozilla/5.0 (Windows NT 10.0;赢64;x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36}

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

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

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

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

其实不然。

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

最新更新