我一直在使用的Intel开发套件包括一个远程管理功能 (另请参见此处的Ubuntu手册页),该功能允许在操作系统挂起时进行远程重启。
它具有侦听与操作系统共享的IP地址上的几个端口(具体来说为16992和16993)的功能。(通过侦听DHCP请求或发出自己的DHCP请求;我不确定,但是在这种模式下它使用共享的MAC地址)
我让它在单独的IP地址上运行,因为我担心一个潜在的用例:AMT如何防止主机网络堆栈与其冲突?
换句话说,英特尔管理软件现在正在侦听(至少)两个带外且不了解操作系统的TCP端口。假设我启动了到远程主机的TCP连接,并且主机堆栈选择16992或16993作为本地端口以侦听[包返回框]。
从远程主机返回的数据包不会被“刺破”并且永远不会到达操作系统吗?还是有一些预防措施,例如Linux内核中的Intel驱动程序知道TCP应该避开端口16992?(似乎不太可能,因为这是与操作系统无关的功能。)或者管理接口是否可以将发送到端口16992(不属于已知管理会话)的流量转发回主机堆栈?
无论哪种方式,我都不愿意将其用于网络密集型负载,直到我了解其工作原理。我搜索了英特尔文档,也找不到任何内容。
我想可以通过启动约30,000个TCP连接并检查连接是否有效(即使端口重叠)也可以进行测试。但是我还没有机会这样做。
(注:我意识到这个问题类似于基于Intel vPro的计算机如何维护IP连接?,但是该问题通常是解决连接问题,而不是解决与主机堆栈重叠的特定TCP端口的问题。)
nc -p 16992 example.com 22
然后看看会发生什么。