인터넷 통신
- 복잡한 인터넷 망에서 클라이언트와 서버는 IP를 통해 통신함
IP(Internet Protocol)
- 인터넷 프로토콜 역할
- 지정한 IP 주소(IP Addrss)에 데이터 전달
- 패킷(Packet) 통신 단위 사용(출발지 IP, 목적지 IP 등등의 정보를 가지고 있음)
IP 프로토콜의 한계
- 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 전송함
- 비신뢰성: 전송 도중 패킷이 소실되거나 순서가 보장되지 않음
- 비구분성: 같은 IP를 사용하는 서버에 여러 통신이 들어오는 경우
TCP
- 전송 제어 프로토콜 (Transmission Control Protocol)
- 출발지 PORT, 목적지 PORT, 전송 제어, 순서 정보 등이 저장되어 있음
- 연결지향: TCP 3 way handshake (가상연결)
- SYN(접속요청)을 대상자에게 보내고 ACK(요청수락)를 받으면 데이터 전송함
- 신뢰성 : 데이터 전달 및 순서 보장
- 현재 대부분 TCP 사용
프로토콜 계층 통신 순서
- 프로그램을 통해 전송할 내용 생성
- SOCKET 라이브러리를 통해 전달
- TCP 정보 생성, 메시지 데이터를 포함
- IP 패킷 생성, TCP 데이터 포함
UDP
- 사용자 데이터그램 프로토콜(User Datagram Protocol0
- 기능이 거의 없고 비신뢰성, 순서 보장하지 않지만 단순하고 속도가 빠름
- IP와 거의 유사 + PORT 정보만 추가됨
- 애플리케이션에서 추가 작업 필요
PORT
- 한 IP에서 여러 작업을 수행할 때 프로세스를 구분하기 위한 정보
(게임 서버 연결, 화상 통화, 웹 브라우저 등)
- HTTP는 80 포트
DNS
- 도메인 네임 시스템(Domain Name System)
- IP 주소는 변경 가능성 있기 때문에 도메인 명을 IP 주소로 변환하여 등록함
[출처] 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한, 인프런