UDP Hole Punching
UDP Hole Punching
UDP Hole Punching
- NAT를 통해 IP 패킷은 주소가 변하고, 내부에서 보는
private IP
와 외부에서 보는 public IP
가 다름- NAT 때문에 서로 다른 private network 내의 host 간의 P2P 연결에는 어려움이 따름
- 자신의
public IP 주소 및 Port
를 다른 private network 내의 host 에게 알려주기 어렵기 때문
- 이를 해결하기 위해 중개 서버를 둘 수 있음
- 각 host가 중개 서버에 메시지를 보냄
- NAT는 각 host의
private IP 주소 및 Port
를 public IP 주소 및 Port
로 변환해서 중계 서버에 전송 - 중개 서버는 각 host에게
상대방 host의 public IP 주소 및 Port
를 보내주면 됨 - 각 host는 이제 서로의
public IP
를 알기 때문에, 서로 P2P 통신 가능
- 서버에 데이터를 보내지 않고 전송 가능
- NAT의
private IP
와 public IP
간 매핑은 오랫동안 연결이 없으면 삭제되므로, 이 방법은 영구적이지 않음
References
- https://cjwoov.tistory.com/5
- https://cjwoov.tistory.com/6