inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

포트번호에 관해 질문드립니다.

해결된 질문

775

REN

작성한 질문수 4

0

제가 이해하기로는

IP주소에는 네트워크 주소와 호스트 주소가 있고 포트번호는 호스트 주소에 있는 프로세스

더 정확히 말하면 소켓을 구분하는 번호로 사용된다고 이해하고 있는데요.

 www.naver.com 이나 www.google.com이나 뒤에 :80 포트 번호가 생략된다고 하던데

(https 라면 443 이라고 알고 있습니다)

포트 번호는 호스트 주소에서 프로세스를 구분 하는 용도라고 이해를 했는데

http프로토콜이 80번 포트를 사용한다는게 이해가 가질 않습니다.

http가 프로세스는 아니잖아요? 그런데 어떻게 포트 번호가 있는건지..

 네이버나 구글 url주소를 치면 dns서버에서 ip주소로 변환해서 회사 서버에 접속이 되고

그중에서 http 프로토콜에? 웹서비스 접속을 하려고 하니 80번 포트로 접속을 하는 건지..

그럼 이것은 강의에서 설명하신 포트 중에 서비스 번호를 의미하는건지..

 

그리고 포트포워딩에서 포트는 위에 포트를 의미 한다기 보다

강의에서 설명하셨던 2계층 포트를 의미하는건가요?

 

개념이 뒤죽박죽되어 이해가 가질 않아 답답한 마음에 질문드립니다.ㅠㅠ

네트워크 프로토콜

답변 2

1

널널한 개발자

그 혼합된 두 가지는 제대로 이해하고 있는 것으로 보입니다.

만일 한 컴퓨터에서 외부 TCP 접속을 받을 수 있는 프로세스가 2개(각각을 A와 B로 가정)라고 했을 때 두 프로세스 모두 TCP 20000번 포트에서 접속을 대기할 수는 없습니다. 애초 접속 대기 소켓 생성과정에서 실패합니다. 그러므로 동시에 A, B 모두 외부 접속을 받으려면 20000, 20001번 등 서로 다른 번호를 사용해야 합니다.

그리고 사설 주소를 사용하는 내부 Host(Host ID: 1~3) 중 셋 모두 TCP 20000번을 열고 외부 접속을 기다리는 프로세스를 각각 실행 할 수는 있습니다. Host가 아예 다르기 때문에 번호가 같다는 것은 전혀 문제가 되지 않습니다. 따라서 192.168.0.1번, 2번, 3번 모두에서 TCP 20000을 개방해 외부 접속을 기다리는 프로그램이 실행되는 것까지는 아무 문제가 없습니다. 그런데 공유기에 포트포워딩 설정이 적용되고 설정에 따라 192.168.0.1번의 20000번으로 전달 되도록 유도했다면 192.168.0.2, 3번 Host는 프로그램 실행 및 접속대기를 하더라도 외부 접속을 받을 수는 없습니다.

참고하시기 바랍니다.

1

REN

완벽하게 이해가 되었습니다.. 어디서도 이런 설명을 들을 수가 없는데 정말 감사드립니다.

1

널널한 개발자

HTTP 프로토콜을 사용해 웹 서비스를 제공하는 응용 프로그램(프로세스)이 보통 80번을 사용하는 것이 일반적입니다. 이를 줄여 'HTTP 프로토콜이 80번을 사용'한다라고 설명한 것입니다. 그리고 IP주소는 Network ID와 Host ID 나뉘지만 둘을 합쳐 하나의 온전한 주소가 됩니다.

끝으로 포트포워딩이 공유기에 적용된 경우를 말하는 것이라면 이는 4계층 포트번호 입니다. 참고하시기 바랍니다.

0

REN

포트포워딩이라는게 저희집 컴퓨터가 3대가 있다고 가정하고 192.168.0.1~192.168.0.3까지 사설 ip를 할당받았다고 할때 외부에서 사설 ip로는 접속을 할수 없으니까 저희집 공인ip 포트를 개방하여 192.168.0.1 의 주소를 쓰는 컴퓨터에 20000번의 포트 번호를 할당하여 주면 외부에서는 저희집 공인ip:20000 으로 접속을 할수 있다. 이렇게 저는 이해를 하고 있는데요.

말씀하신대로 4계층 포트 번호면 host컴퓨터에 NIC을 거쳐 들어와서 커널단 TCP에서 프로세스 소켓을 고르는 용도로 저는 이해를 하고 있습니다.

이 2가지가 혼합이 안되서 헷갈리는데요... 설명해 주신대로 포트포워딩이 공유기에 적용된 것이라면 저희집 컴퓨터 3대를 각각의 프로세스로 바라 보는건가요? 만약 한 컴퓨터에서 실행하는 프로세스가 2개라면 20000번 이외에 다른 포트번호를 할당해 줘야 되는건가요? 개념이 헷갈리는데 이것만 이해하면 정리 될것 같습니다.

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

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

220

1

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

0

89

2

ttl 관련 질문

0

71

3

SSL OSI 7계층

0

137

2

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

0

98

2

라우터에 대해 궁금합니다

0

98

2

네트워크 질문 있습니다.

0

146

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

299

2