inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

외워서 끝내는 네트워크 핵심이론 - 기초

[※중요] 이해하면 인생이 바뀌는 TCP/IP 송·수신구조

Tcp 소켓 연결 질문입니다.

해결된 질문

453

이승언

작성한 질문수 15

0

안녕하세요
다름 아니라 TCP 홀펀칭을 공부하다 궁금한 점이 생겨 질문드립니다.
이전까지 소켓이 연결되려면
listen상태로 대기중인 서버 소켓 그리고
connect 함수로 연결 요청을 했을때 비로소 클라이언트 소켓과 서버소켓이 연결되는 것으로 알고 있었습니다.

홀펀칭 상황에서 양쪽의 클라이언트가 릴레이 서버를 통해 서로의 public IP , Port 를 알 고 있을때
한쪽 소켓이 listen하고 있지 않는 즉
양쪽 소켓 모두 connect()함수를 호출해서 연결이 성립될 수 있나요?

네트워크 프로토콜

답변 1

0

널널한 개발자

홀펀칭 관련 내용 중 핵심은 결국 NAT 게이트웨이가 외부 인터넷 연결을 위해 몇 번 포트로 매핑하는지 찾는 것 입니다. 실제 서버가 192.168.0.10 + TCP 8000번 포트를 개방했다 하더라도 외부 인터페이스 (IP주소가 1.1.1.1이라고 가정) 1.1.1.1 + TCP 12000번에 매핑했다면 클라이언트는 1.1.1.1: 12000번에 연결해야 합니다.

그런데 릴레이 서버가 말 그대로 서버 역할을 해 클라이언트 들의 연결을 받아서 트래픽을 중계하고 있다면 연결을 받는 서버는 릴레이 서버로 한정됩니다. 이 상황에서 클라이언트가 사용하는 포트는 릴레이 서버와의 연결에 사용될 뿐 번호를 안다 해서 연결 할 수 있는 서버 소켓이 되지는 않습니다.

NAT에 관련한 내용은 응용편에서 다루고 있습니다. 참고하시기 바랍니다. :)

제가 이해한 것이 맞을까요?

0

55

0

제가 Socket을 잘 이해한 건지 궁금합니다

0

83

1

Broadcast 학습 중 간단한 궁금증이 생겨 질문드립니다

0

81

1

책 추천 부탁드립니다.

0

118

2

Host범위에 대해서 질문이 있습니다.

0

105

2

택배차 즉 Frame의 생명주기

0

115

2

단편화 관련 질문

0

78

2

네트워크 공부에 추천하실만한 책이 있으신가요?

0

222

1

예전에 있었던 수동 IP 할당 경험에 대한 질문

0

89

2

ttl 관련 질문

0

71

3

SSL OSI 7계층

0

137

2

만약 송신측 + 모든 라우터의 MTU는 동일했지만 수신측에서 MTU가 더 작으면 어떻게 되나요?

0

98

2

라우터에 대해 궁금합니다

0

98

2

네트워크 질문 있습니다.

0

147

2

Broadcast 범위에 대한 질문

0

102

1

응용 과정으로 넘어가기 전에 질문 입니다.

0

160

2

UDP 통신 시 Socket 설정

0

215

2

host 내부 process 통신

0

139

2

스위치에 대한 질문

0

198

2

L3Switch & Router

1

245

3

RESTful API에 대해 질문 드립니다

0

199

2

스위치에 대하여

0

202

2

그림 한 장으로 외워서 끝내는 웹 서비스 구조 기본이론만 재생이 안돼요

1

226

3

DHCP 과정 중 src와 dst가 궁금합니다.

0

302

2