오늘의 주제
Q 1 : “인터넷 프로콜의 한계 중 ‘프로그램의 구분’ 문제를 해결해주는 Port는 무엇인가?“
Q 2 : “DNS는 무엇일까?“
저번 시간 정리
- <인터넷 프로토콜(IP)>
서울에 있는 '나'와 전세계 사람과 소통하기 위해 수많은 노드를 거쳐야만 한다.
어떤 규칙을 통해 순차적으로 나아가는 게 바로 ‘인터넷 프로토콜’이다.
인터넷 프로토콜은 출발지와 목적지를 지정한 아이피 주소(IP Address)에 데이터를 전달한다. 패킷(Packet)이라는 통신 단위로 데이터를 전달한다.- <인터넷 프로토콜의 한계>
비연결성이란?(다른이의 PC가 꺼진 경우)
데이터를 받는 대상이 없거나 서비스 불능 상태의 경우에도 패킷이 전송된다.- 비신뢰성이란?
중간에 데이터가 사라지거나 데이터가 순서대로 오지 않는 상황이다.- 프로그램의 구분?
컴퓨터에서 게임을 하고 음악을 듣는 상황이라면 어떻게 구분해서 누구에게 데이터를 보낼 것인가?- 인터넷 프로토콜의 한계를 해결해주는 ‘TCP/UDP’
- 가상연결(SYN)
연결지향적인 TCP 3 Way Handshake를 통해 접속 요청을 하면 가상 연결이 된다.
인터넷 프로토콜의 한계 중 ‘비연결성’ 문제를 해결해준다.- 데이터 전달 보증(SYN+ACK)
1) 요청을 수락하면서 데이터 전달에 대해 보증해준다.
2) 순서 보장(ACK+ 데이터 전송)
3) 인터넷 프로토콜의 한계 중 ‘비신뢰성’ 문제를 해결해준다.
<그림1>처럼 ‘게임', ‘화상통화’, ‘웹 브라우저’ 등 다양한 패킷이 클라이언트와 주고 받을텐데, 어떻게 구분 할 수 있을까? 일단, 인터넷 프로토콜(IP)만으로 게임 패킷, 화상통화 패킷, 웹 브라우저 패킷인지 구분을 할 수 없다. 여기서 해결할 수 있는 방식이 바로 ‘포트(Port)’다. 같은 IP 내에서 Port를 통해 프로세스 구분을 할 수 있다. 결국 Port는 아파트 호수와 같다고 생각하자!
Port는 0부터 65535까지 할당이 가능하다. 0부터 1023까지의 경우 ‘잘 알려진 포트’이기에 사용하지 않는 게 좋다. Port 20과 21은 FTP를 가리킨다(실제 21포트를 씀). Port 23은 TELNET이다. Port 80은 HTTP다. Port 443의 경우 HTTPS다.
IP의 길이가 길기 때문에 도메인 시스템 DNS(Domain Name System)이 필요하다. <그림3>처럼 IP가 변경되는 경우가 종종 생기기도 하다.
참고자료
김영한 인프런 강의 : 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의