[GPG 5 글 6.5] 홀펀칭 질문입니다

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

비회원

홀펀칭 질문입니다

Post by 비회원 »

홀펀칭 질문입니다

공인 IP 를 가진 A 가 소켓 하나를 생성해서 30000 포트로 bind() 했습니다
사설 IP 를 가진 B 가 소켓 하나를 생성해서 20000 포트로 bind() 한후 A 에게 패킷을 날립니다

패킷은 A 에게 전달이 됩니다
A 가 bind() 한 소켓으로 B 에게 패킷을 전달하면 전달이 잘됩니다

근데 A 가 bind() 한 소켓이 아닌 다른 소켓을 생성해서 B 에게 패킷을 보내면 전달이 안됩니다
이런 현상이 맞는건가요?
B 의 포트는 이미 열렸기때문에 A 쪽에서 아무소켓으로 쏴도 상관없는 거 아닌가요?
A 쪽에서는 처음에 B 로부터 패킷을 받은 소켓으로만 쏴야 되는건가요?
imays
Posts: 1044
Joined: 2003-02-18 10:29
Contact:

Post by imays »

그게 되는 인터넷 공유기를 full cone이라고 부릅니다.
갖고계신 공유기는 full cone이 아니라서 그런겁니다.

참고 링크: NAT의 종류 http://www.nexpert.net/75
온라인 게임 서버 엔진 ProudNet
http://www.nettention.com
비회원

네^^

Post by 비회원 »

네^^ 저도 글을 남기고 대충 그럴거라는 생각은 했었는데...확신이 없어서요
답변 감사합니다^^
kotonoha
Posts: 69
Joined: 2009-05-22 16:29

Post by kotonoha »

Symmetric NAT 에서는 그렇다면 홀펀칭이 100% 불가능한것일까요?

예를들어서 Symmetric NAT 공유기 안에 있는 유저가
Full Cone 공유기 안에 있는 유저에게 패킷을 날리면
연결이 가능할수 있을까요?

생각을 해보면 만약에 Full Cone 공유기가 방안에 단 1명만 있을경우
Full Cone 공유기 유저가 릴레이 서버 역할을 맡아서
서버부하 없이 모두 브로드 캐스팅도 가능할까요?
비회원

음...

Post by 비회원 »

Symmetric NAT 에서는 그렇다면 홀펀칭이 100% 불가능한것일까요?
--어느 nat랑 붙느냐에 따라 다릅니다..fullcone와는 가능하지만..(포트맵핑이 달라지므로 몇가지 로직이 추가되고요..)port restricted와 붙으면 어렵다는...symmetric끼리 붙으면...불가능한것으로 알고있습니다.(제 생각에는..)근데, 모든 공유기가 nat정책을 정확히 따르는것이 아니므로....맵핑룰을 잘파악 할수 있다면 꽤높은 확률로 뚫을수 있습니다.

예를들어서 Symmetric NAT 공유기 안에 있는 유저가
Full Cone 공유기 안에 있는 유저에게 패킷을 날리면
연결이 가능할수 있을까요?
--가능합니다...내부적으로 symmetric에서 보낸패킷을 알아챌수 있도록 코딩한다면...(port 매핑이 달라지므로..)

생각을 해보면 만약에 Full Cone 공유기가 방안에 단 1명만 있을경우
Full Cone 공유기 유저가 릴레이 서버 역할을 맡아서
서버부하 없이 모두 브로드 캐스팅도 가능할까요?
--가능합니다...peer relay?peered relay?라고 하지요..검색해보세요..(host로도 검색가능)
Post Reply