[Network] Http web 01
지난번 유튜브 네트워크 강의를 들으며 정리했던 내용이지만 좀더 자세하게 정리된 내용을 보면서 다시 공부했다.
IP (인터넷 프로토콜)
지정한 IP 주소에 데이터 전달하는 역할을 한다.
전달할때 패킷(Packet)이라는 통신단위로 데이터를 전달한다.
- 한계
- 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 비신뢰성
- 중간에 패킷이 사라지거나 패킷이 순서대로 오지 않는 문제 해결 불가
- 프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 (ex-게임하면서 음악을 듣는다) 구분 불가
- 비연결성
TCP
IP 패킷 정보
출발지 IP, 목적지 IP를 담고있다.
TCP/IP 패킷 정보
출발지 port, 목적지 port, 전송제어, 순서, 검증정보를 담고있다.
- TCP 특징
-
연결지향 - TCP 3way handshake (가상연결)
클라이언트와 서버 둘다 ack를 주고받은 상태(양쪽 연결이 확인된 상태)에서 데이터 전송이 이루어진다.
-
데이터 전달 보증
-
순서 보장
TCP 안에 순서정보, 검증정보가 들어있기 때문에 순서를 확인할 수 있다.
- 신뢰할 수 있는 프로토콜
- 현재는 대부분 TCP 사용
UDP
사용자 데이터그램 프로토콜(User Datagram Protocol)
-
- 하얀 도화지에 비유(기능이 거의 없음)
- 연결지향 - TCP 3 way handshake X
- 데이터 전달 보증 X
- 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- 정리
- IP와 거의 같다. +PORT +체크섬 정도만 추가
- 애플리케이션에서 추가 작업 필요
PORT
같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일때 프로세스를 구분하기 위해 사용된다.
- 0 ~ 65535 할당 가능
- 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
- FTP - 20, 21
- TELNET - 23
- HTTP - 80
- HTTPS - 443
DNS
도메인 네임 시스템(Domain Name System)
- 매번 IP를 기억해서 접속하기는 어렵기 때문에 도메인 명을 IP 주소로 변환해주는 역할을 한다. (ex- 도메인명 : google.com / IP : 200.200.200.2)