김영한님의 인프런 강의 '모든 개발자를 위한 HTTP 웹 기본 지식'을 참고했습니다.
인터넷 통신은 어떻게 이루어질까? 클라이언트에서 다른 클라이언트로 데이터를 보낼 경우 위치에 따라 위성, 해저 광케이블, 기타 통신 서버와 같은 노드들을 거쳐 다른 쪽 클라이언트에 도달한다. 이렇게 복잡한 과정을 거쳐서 어떻게 통신이 될 수 있는지 알기 위해서는 IP, TCP, UDP, PORT, DNS 등을 알아야 한다.
IP는 인터넷이 통하는 네트워크에서 어떤 정보를 송수신하는 통신에 대한 규약을 의미한다. IP 주소는 IP 통신에 필요한 고유 주소를 말하며, 통신 기능이 제공되는 기기들이 서로 통신을 하기 위해 필요한 고유 번호이다. 각 장치들 간 통신을 식별할 수 있는 전화번호라고 생각하면 이해하기 쉽다.
이러한 IP 프로토콜의 한계들을 보완한게 TCP다.
TCP는 전송 제어 프로토콜을 뜻한다. 신뢰할 수 있는 프로토콜로서 현재 대부분 TCP를 사용한다.
클라이언트와 서버는 서로 논리적으로 연결되었다고 생각. BUT 그 사이 수많은 node들의 연결 유뮤는 알 수 없음
UDP 즉 사용자 데이터그램 프로토콜은 IP에 PORT와 체크섬 정도만 추가된 형태이다.
최근들어 상당히 각광 받고 있다.
PORT는 앞서 살펴보았듯이 TCP/IP 패킷에 포함된다. 같은 IP 내에서 프로세스를 구분하는 역할을 한다.
PORT는 다음과 같이 작성한다.
IP는 예를 들어 200.200.200.2처럼 가독성이 떨어지고 기억하기 힘들다. 그리고 IP 주소는 변경될 수 있는데 이때 대응하기 힘들다는 단점이 있다. DNS는 전화번호부 역할을 하며 도메인 명을 IP 주소로 변환해 준다.
도메인 명 : 기억하기 어려운 IP 주소를 사용자들이 기억하기 쉽게, 사용자 편의성을 위해 문자로 만든것.