모바일 앱 개발자, 웹 개발자, 웹 프론트엔드 개발자, 백엔드 개발자는 모두 HTTP를 필수로 잘 알고 있어야한다.
인터넷 통신
인터넷 망은 상당히 복잡하며 이를 이해하기 위해서는 IP 에 대해서 잘 알아야 한다.
IP (Internet Protocol)
IP 패킷 정보 : 출발지 IP, 목적지 IP, 기타 …
IP 프로토콜의 한계
- 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 비신뢰성
- 중간에 패킷이 사라진다면?
- 패킷이 순서대로 안온다면?
- 프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면?
대략 1500 바이트 크기로 패킷을 구성
TCP, UDP
TCP
- 프로그램이 메세지 생성
- SOCKET 라이브러리를 통해 전달
- TCP 정보 생성, 메세지 데이터 포함
- IP패킷 생성, TCP 데이터 포함
TCP 특징 (전송 제어 프로토콜, Transmission Control Protocol)
- 연결지향 - TCP 3 way handshake (가상 연결)
- 데이터 전달 보증
- 순서 보장
- 신뢰할 수 있는 프로토콜
- 현재는 대부분 TCP 사용
UDP
- 하얀 도화지에 비유(기능이 거의 없음)
- 연결 지향 - TCP 3 way handshake X
- 데이터 전달 보증 X
- 순서 보장 X
- 대신 빠름
- IP와 거의 같지만 + PORT + 체크섬 정도만 추가
- 애플리케이션에서 추가 작업 필요
최근에는 UDP가 굉장히 뜨고 있다. 근데 기본적으로는 TCP 많이 사용중
PORT
간단히 프로세스를 구별하는 것 이라고 생각하면 된다.
IP 만으로는 해결이 불가능 하기 때문에 TCP 세그먼트에 PORT 정보를 담아준다.
아파트 몇동 = IP
몇호 = PORT
DNS
도메인 네임 시스템 (Domain Name System)
IP는 변하기 쉽고 외우기 어려운데 도메인 명을 등록해서 사용할 수 있도록 도와준다.
Loading Comments...