인터넷 통신
** 클라이언트에서 다른 클라이언트로 데이터를 보낼 경우, 위성, 케이블 등과 같은 인터넷 망을 거쳐서 상대 컴퓨터로 도달하게 된다.
인터넷 망은 단순하지 않아, 중간에 수많은 노드를 거쳐서 서버 컴퓨터에게 도착한다.
웹 통신 과정이 어떤 규칙으로 목적지까지 안전하게 도착하는지 이해하기 위해서는
IP, UCP, DNS 프로토콜 지식을 알아야한다.
IP (인터넷 프로토콜)
IP = 인터넷에 연결되어있는 모든 장치들을 식별할 수 있도록 장비에게 부여되는 고유 주소
* IPv4(32bits(8x4)로 이루어진 주소, 약 43억개), IPv6(128bits(16x8))
* 고정 ip/유동 ip/공인 ip/사설 ip(어떤 네트워크 안에서만 내부적으로 사용되는 고유한 주소)
** NAT(사설망 <-> 외부 통신 방법): 라우터에 연결되어있는 사설 IP를 받아와
유일한 공인 IP로 변환
IP 역할: 패킷이라는 통신단위로 지정한 IP 주소에 데이터를 전달하는 것에 목적
* 패킷: 인터넷 데이터를 패킷에 포장하여 인터넷 망을 통해서 전달
전송하고자 하는 데이터의 한 블록(payload)
주소지 정보(발신지 주소, 목적지 주소)
Header, IPv6와 같이 인터넷 망이 패킷을 목적지까지 전달하는데 필요한 관리 정보
IP 프로토콜의 한계
* 비연결성: 패킷을 받을 대상이 없거나 서비스가 불능상태여도 패킷을 전송할 수 있음
비신뢰성: 패킷을 중간에 소실될 경우 대처방법이 없음, 패킷 순서가 보장되지 않음
프로그램 구분 불가: 같은 IP를 사용하는 서버에서 통신하는 어플이 여러개일 경우 이를 구분할 수 있는 방법 없음
TCP (Transmission Control Protocol)
** 데이터 전달 보증하고 순서를 보증하는 신뢰할 수 있는 프로토콜
TCP 3 way handshake(가상 연결)으로 전송을 제어
UDP (User Datagram Protocol)
** 비 연결지향적 프로토콜, 데이터 전달 보증하지 않고 순서 보장하지 않음, 오로지 빠르게 패킷을 보내는 것이 목적
IP와 거의 기능이 같음. 실시간동영상 스트리밍 서비스 등에 사용됨.
PORT
** 인터넷 프로토콜(IP)는 상대 클라이언트 목적지만을 가지고 있고, 컴퓨터 안의 수십개 어플리케이션중 어느 프로그램에 전달해야 하는지에 대한 목적지 정보가 포트(PORT)라고 보면 된다.