我在不同的LAN上有两个组件A和B,其中Linux服务器充当两个LAN的网关。
A使用部署在公共Internet上的网关向B发送TCP流量。因此,没有SYN通过Linux服务器从A发送到B。但是,C使用本地TCP连接将TCP通信发送回A(不涉及网关)。通过嗅探流量,我可以看到C不在建立常规的TCP连接(SYN),而是从发送(SYN + ACK)开始。
我正在Linux服务器上使用<?php
namespace Tests\Browser;
use Tests\DuskTestCase;
class LoginTest extends DuskTestCase
{
/**
* test_I_can_login_successfully
*
* @return void
*/
public function test_I_can_login_successfully()
{
$this->browse(function ($browser) {
$browser->visit('login')
->keys('#email', 'test@test.co.uk')
->keys('#password', 'test')
->click('.btn-primary')
->assertPathIs('dashboard')
->assertSee('Marco');
});
}
}
将C所发送的TCP流量本地重定向到A。流量被重定向到本地端口9000。
但是,我也想拦截此流量,因此,我建立了一个简单的Netty代理,该代理侦听端口9000。出于某些原因,Netty不会接收或忽略此流量。
我想知道Netty是否能够在不使用SYN的情况下管理SYN-ACK的情况。
有什么主意吗?
答案 0 :(得分:1)
问题是内核中的TCP protcool实现堆栈是否将对其进行管理。
Netty甚至都看不到,无论是否由TCP / IP管理。
Netty不是TCP / IP的实现。它是一个位于Java API之上的API,该Java API则位于BSD Sockets API之上,并且都不是TCP / IP的实现。在这种情况下,除了调用listen()
和accept()
,它再也看不到网络了。