IP(Internet Protocol)
: 인터넷 프로토콜(IP, Internet Protocol)은 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는 데 사용하는 정보의 규약이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당
역할
- 지정한 UP 주소에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
한계
- 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 비신뢰성 : 패킷 소실, 패킷 전달 순서 문제 발생(보낸 순서대로 도착한다는 보장이 없음)
- 프로그램 구분 : 동일한 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인 경우 구분 불가
TCP(전송 제어 프로토콜)
: 인터넷을 통해 디바이스에서 웹 서버로 데이터를 전송하는 네트워크 프로토콜로서 현재 대부분 TCP를 사용
특징
- 연결 지향 - TCP 3 way Handshake(가상 연결)
- 데이터 전달 보증
- 순서 보장
- 신뢰할 수 있는 프로토콜
TCP 3 way Handshake
: 데이터 전송 전 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미
역할
- 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장
- 양쪽 모두 상대편에 대한 초기 순차일련번호를 얻을 수 있음
순서
- Client -> Server : SYN 전송
- Server -> Client : ACK 전송
- Client -> Server : ACK 전송
UDP
: User Datagram Protocol, 즉 ‘사용자 데이터그램 프로토콜’의 약자
특징
- 기능이 거의 없음
- 연결 지향 X
- 데이터 전달 보증 X
- 순서 보장 X
- 단순하고 빠름
PORT
인터넷 프로토콜인 TCP/IP를 사용할 때에는 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하는 방법으로, 같은 IP 내에서 프로세스의 구분 값
- IP가 아파트라면 POR는 몇동 몇호
DNS(Domain Name System)
IP는 기억하기 어려우며 변경될 수 있기에 IP 주소 및 기타 데이터를 저장하고 이름별로 쿼리할 수 있게 해주는 계층형 분산 데이터베이스. 사용자가 입력한 도메인 명을 DNS서버에서 등록된 IP를 찾아 IP 주소로 반환
URL(Uniform Resource Identifier)
- Uniform : 리소스 식별하는 통일된 방식
- Resource : 자원(URI로 식별할 수 있는 모든 것을 의미)
- Identifier : 다른 항목과 구분하는데 필요한 정보
URL(Uniform Resource Locator)
- Locator : 리소스가 있는 위치를 지정
URN(Uniform Resource Name)
- Name : 리소스에 이름을 부여
문법
scheme://[userinfo@]host[:port][/path][?query][#fragment]
(https://www.google.com:443/search?q=hello&hl=ko)
1. scheme(https)
- 주로 프로토콜 사용
- http는 80, https는 443 포트를 주로 사용하며 포트는 생략 가능
2. userinfo
- URL에 사용자 정보를 포함해서 인증
- 거의 사용 X
3. host(www.google.com)
- 호스트 명
- 도메인 명 또는 IP 주소를 직접 사용
4. port(443)
5. path(/search)
- 리소스 경로, 계층적 구조
- /members, /members/100, /members/file1.jpg
6. query(q=hello&hl=ko)
- key = value 의 형태
- ?로 시작, &로 추가
- 쿼리 파라미터, 쿼리 스트링 등으로 불림
7. fragment
- html 내부 북마크 등에 사용
- 서버에 전송하는 정보 X