NAT는 전송 된 TCP SYN에 대해 TCP ACK를 허용하지 않습니다.


0

우리는 TCP 소켓을 연결하기 위해 TCP Simultaneous Open을 사용하고 있습니다. 한 SideA와 다른 SideB를 호출 할 수 있습니다.

wireshark 로그에서 SideB에서 보낸 처음 두 SYN이 SideA NAT에 의해 차단되어 있음을 알 수 있습니다. 그런 다음 SideA는 SYN을 전송하고 SideB에 의해 수신되고 [SYN, ACK]으로 응답합니다. 이 [SYN, ACK] 수신 후 SideA는 ACK를 보냅니다. 그러나 이것은 SideB에 도달하지 않습니다. 왜 그런가요? SideB의 NAT가 ACK를 통과하지 못하는 이유는 무엇입니까?

양쪽에는 Full Cone NAT가 있습니다. SideA 포트는 52088이고 SideB 포트는 56961입니다. 양쪽에 wireshark 로그 링크를 추가하고 있습니다.

사이드 A

사이드 B

SideA 라우터 : TPLINK, 모델 : TLMR3420

SideB의 라우터에 대해 모르겠습니다. 그러나 그것은 AT & T 와이파이였습니다.


NAT를 통해 TCP 동시 작동을 작동시키기는 매우 어렵습니다.
David Schwartz

예. PRC / FC NAT의 경우 대부분 성공했습니다. 그러나 대칭의 경우 불가능합니다. 그러나 여기 두 FC NAT간에 실패한 시나리오가 있습니다. ACK가 통과되지 않는 이유는 이상합니다!
Tahlil

NAT에이 의심스러운 / 비정상적인 것으로 간주되는 방화벽 기능이 있기 때문일 수 있습니다.
David Schwartz

그러나 SYN은 다른 쪽에서 SYN을 허용했습니다. NAT가 들어오는 SYN을 훨씬 더 제한한다고 생각했습니다. 그러나 SYN이 허용되고 이미 다른쪽에 SYN을 보냈으므로 해당 SYN에 대한 ACK를 허용해야합니다.
Tahlil
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.