4. PORT
1. 한 번에 둘 이상 연결해야 하면?
현재 클라이언트 PC에서 게임, 화상통화, 웹 브라우저 요청도 하고 있는 상황을 가정해보자.
즉, 클라이언트 PC가 여러 개의 서버와 통신해야 하는 상황이다.
서버가 클라이언트 PC로 패킷을 보내려면 클라이언트 IP로 패킷을 보내야한다. 하지만 IP만 사용하면, 클라이언트 입장에서는 받은 패킷이 게임, 화상통화, 웹브라우저 요청 중 어떤 프로그램으로 온 패킷인지 알 수 없는 문제가 있다. 그래서 프로그램을 구분하기 위해 PORT를 사용한다.
2. TCP/IP 패킷 정보
TCP/IP 패킷을 보면 출발지 IP, 목적지 IP와 함께 출발지 PORT, 목적지 PORT 가 포함된 것을 알 수 있다.
- IP : 목적지 서버를 찾는 용도
- PORT : 서버 내부에서 돌아가는 애플리케이션을 구분하는 용도
4. PORT - 같은 IP 내에서 프로세스 구분
5. PORT
- 0 ~ 65535 할당 가능
- 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
• FTP - 20, 21
• TELNET - 23
• HTTP - 80
• HTTPS - 443
5. DNS
1. IP는 기억하기 어렵다.
2. IP는 변경될 수 있다.
3. DNS(Domain Name System)
도메인 명을 IP 주소로 변환시켜주는 것이다. (전화번호부 역할)
4. DNS 사용
DNS 서버에 도메인 명에 대한 IP 주소를 등록해둔다.
1) 클라이언트가 DNS 서버에 도메인 명에 대한 IP를 요청한다.
2) DNS 서버는 해당 도메인 명에 대한 IP 주소를 클라이언트에 전달한다.
3) 클라이언트는 해당 IP주소로 서버에 접근한다.
→ DNS를 사용하면 IP가 기억하기 어렵고, 변경될 수 있는 문제를 해결해준다.
<인터넷 네트워크 정리>
1) 인터넷 통신
2) IP(Internet Protocol)
3) TCP, UDP
4) PORT
5) DNS
1-4. PORT 질문 정리
Q. 웹 서버(HTTP)는 80번 포트로 연결된다고 알고 있는데, 스프링 부트에서 동작하는 톰켓은 왜 8080 포트로 연결되는 것인가?
보통 웹 어플리케이션을 개발할 때 앞에 웹 서버(nginx)를 포트 80으로 띄우고, 그 뒤에 톰켓 같은 WAS 서버를 띄우는 구조로 많이 사용한다. 그게 관례가 되어 톰켓같은 WAS 서버는 80 포트 대신 다른 포트를 주로 사용한다.
[출처] https://www.inflearn.com/questions/130303
Q. 목적지(서버) 포트 번호는 어떻게 지정해야하는가?
A. 대부분 서버의 포트 번호는 지정되어 있어 생략 가능한 경우가 많다. 그러나 서버가 임의의 포트에 서비스를 등록한 경우, 반드시 그 포트 번호를 명시하여야 접속이 가능하다.
예를 들어, 웹 서버는 기본적으로 80번 포트를 이용하는 것이 관례이다. 그래서 별도의 포트를 지정하지 않고 HTTP 요청을 할 경우, 80번 포트로 접속을 시도하게 된다. 우리가 어떤 사이트에 접속하기 위해 URL을 입력할 때, 사실은 URL 뒤에 서버의 포트 번호를 지정하는 부분을 생략한 것이다.
만약 사용자가 직접 서버의 포트 번호를 지정할 경우, 해당 포트로 접속을 시도하게 된다. 예를 들어, 웹 브라우저에 inflearn.com:80 으로 입력을 해도 정상적으로 사이트에 접속이 된다.
[출처] https://www.inflearn.com/questions/251738
[출처] https://www.inflearn.com/questions/259875
[출처] https://shaeod.tistory.com/389
Q. 웹 브라우저에서 유튜브, 네이버를 사용중인 상태에서 각각 서버에 요청을 보내면 클라이언트 ,서버의 포트는 어떤 식으로 지정된 상태인가?
웹 브라우저 = 클라이언트, 웹 서버 = 서버
HTTPS 를 사용하므로 서버(웹 서버)의 포트 번호는 443이다.
클라이언트(웹 브라우저)는 유튜브, 네이버를 위한 임의의 포트 2개를 만들어(포트 번호를 할당하여) 연결한다.
[출처] https://www.inflearn.com/questions/268141
[참고] https://blog.daum.net/hsjeong106/2
1-5. DNS 질문 정리
Q. ip 주소가 변경될 경우, 어떻게 해야하는 가?
IP 주소가 변경되면 IP 주소 변경을 신청해야 하므로 보통 도메인을 신청할 때는 고정 아이피를 쓴다.
보통 도메인을 구입한 곳에서 DNS IP를 변경하는 기능을 제공한다.
[출처] https://www.inflearn.com/questions/146089
Q. 웹 브라우저에서 도메인 이름을 입력하면 어떤 식으로 ip 주소를 찾는가?
일단 클라이언트 PC 내부에 저장된 도메인 이름이 있는지 확인하고 없으면 DNS 서버에서 도메인 이름을 찾는다.
구글, AWS, DNS, 통신사 등 DNS 서버를 제공하는 곳이 아주 많고 DNS 서버는 매우 복잡하게 엮여있다.
모든 회사의 DNS 서버에 모든 도메인 이름, IP 주소가 저장되어있지는 않다. 그러므로 DNS 서버에 찾고자하는 도메인 이름이 없다면 DNS 서버는 상위 DNS 서버에 요청을 해서 찾는다. 그리고 응답 결과를 내부에 저장하고 결과(ip)를 반환한다. 이후 저장 시간이 만료되면 다시 상위 DNS 서버에 요청하여 ip 주소를 받는다.
[출처] https://www.inflearn.com/questions/209582
[출처] https://www.inflearn.com/questions/287801
'Spring > 모든 개발자를 위한 HTTP 웹 기본 지식' 카테고리의 다른 글
[모든 개발자를 위한 HTTP 웹 기본 지식] 03. HTTP 기본 - 모든 것이 HTTP, 클라이언트 서버 구조 (0) | 2022.05.26 |
---|---|
[모든 개발자를 위한 HTTP 웹 기본 지식] 02. URI와 웹 브라우저 요청 흐름 - URI, 웹 브라우저 요청 흐름 (0) | 2022.05.26 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 01. 인터넷 네트워크 - TCP,UDP (2) | 2022.05.26 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 01. 인터넷 네트워크 - 인터넷 통신, IP(인터넷 프로토콜) (0) | 2022.05.25 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 00. 소개 - 소개영상 (0) | 2022.05.25 |