PORT
한 번에 둘 이상 연결해야 한다면? 어떻게 해야 할까?
만약 게임을 하면서 친구랑 화상통화도 하고 있고, 동시에 웹브라우저 요청도 하고 있다고 하자.
클라이언트 PC는 한 번에 여러가지 통신을 해야한다.
서버가 패킷을 내 IP로 보낼텐데, 이것이 게임으로 오는 패킷인지 화상통화로 오는 패킷인지 알 수가 없다.
IP만 있다면 이러한 문제점이 있다.
TCP/IP 패킷, UDP에는 출발지 목적지 PORT가 있었다.
IP는 목적지 서버를 찾는 것. PORT는 서버 안에서 돌아가는 애플리케이션을 구분하는 것.
예를들어 클라이언트 웹 브라우저에서 200.200.200.3번의 80번 포트로 메시지를 보낸다.
그러면 서버는 100.100.100.1의 10010번으로 응답을 보내준다.
그렇다면 서버는 내 포트를 어떻게 아는거지?
클라이언트가 서버로 패킷 보낼 때 출발지 IP, PORT를 보내기 때문에 알 수 있었던 것이다.
IP = 아파트
PORT = 몇 동 몇 호
PORT
- 0 ~ 65535 : 할당 가능
- 0 ~ 1023 : 잘 알려진 포트, 사용하지 않는 것이 좋음
- FTP - 20, 212
- TELNET - 23
- HTTP - 80
- HTTPS - 443
DNS
IP는 기억하기 어렵다. -> 200.200.200.2 였나? 뭐였더라..?
IP는 변경될 수 있다. -> 200.200.200.3으로 바뀌어 버렸다고?!
DNS
: 도메인 네임 시스템(Domain Name System)
- 전화번호부
- 도메인 명을 IP 주소로 변환
DNS서버에 도메인명을 등록하고 IP주소로 바꿀 수 있다.
google.com은 IP가 200.200.200.2야!
aaa.com은 IP가 210.210.210.3이야!
만약 google.com에 접속한다고 하자.
먼저 도메인으로 찾는다.
DNS 서버야. google.com 도메인 있는데, 그거 IP주소 뭐야?
그러면 200.200.200.2라고 응답을 준다.
그러면 응답 준 것으로 접속하면 된다.
만약 IP주소가 변경 된다면, 도메인 등록해 넣은 거에 IP주소를 바꿔넣는다.
인터넷 네트워크 정리
- 인터넷 통신, IP(Internet Protocol), TCP, UDP, PORT, DNS
복잡한 인터넷 네트워크망에 메시지를 보내기 위해서는 Internet Protocol(IP 프로토콜)이 있어야한다.
그런데 IP protocol만 가지고는 메시지가 잘 도착했는지 신뢰하기도 어렵고 PORT개념도 없고, 메시지 순서가 꼬일 수 있다.
이러한 문제를 TCP가 해결해준다.
UDP는 IP와 거의 비슷하지만 PORT가 추가된 것.
PORT는 같은 IP안에서 동작하는 어플리케이션을 구분하기 위해 사용. (아파트와 동,호수 개념)
IP는 외우기 어렵고, 변할 수 있기 때문에 도메인 명을 등록해서 사용할 수 있게 도와주는 것이 DNS이다.
모든 개발자를 위한 HTTP 웹 기본지식 을 토대로 이해한 내용을 정리한 글입니다 🙂
참고 자료
모든 개발자를 위한 HTTP 웹 기본지식 https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
HTTP 웹 기본지식 https://intrepidgeeks.com/tutorial/for-all-developers-basic-knowledge-of-http-web-internet
HTTP 웹 기본지식 https://jihyee.tistory.com/10
'Server' 카테고리의 다른 글
[Server] URL와 웹 브라우저 요청 흐름 (0) | 2022.06.02 |
---|---|
[Server] Cloud란 무엇인가? | AWS SUMMIT KOREA (0) | 2022.05.10 |
[Server] TCP, UDP | TCP 프로토콜 | 3way handshake (0) | 2022.04.27 |
[Server] 인터넷 통신 | 인터넷에서 컴퓨터는 어떻게 통신할까? | 패킷, IP프로토콜 (0) | 2022.04.26 |
[Server] ip주소란 무엇일까? | 공유기 하나로 어떻게 여러대의 컴퓨터가 나눠쓸까? (0) | 2022.04.18 |