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.