IP, TCP, UDP 간단 정리
2021. 1. 12. 21:03ㆍHTTP
TCP/IP 4계층
애플리케이션 계층 — HTTP, FTP
전송 계층 — TCP, UDP
인터넷 계층 — IP
네트워크 엑세스 계층 — Ehternet(이더넷)
1. IP — 인터넷 프로토콜
- 지정한 IP 주소(IP Address)에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
- 하지만 IP 프로토콜은 패킷의 순서 보장도 할 수 없고 패킷이 중간에 유실되도 이에대한 방안이 없다.
2. TCP — 전송 제어 프로토콜(Transmission Control Protocol)
- 연결지향 — TCP 3 way handshake (가상 연결)
- 데이터 전달 보증
- 순서 보장
- 신뢰할 수 있는 프로토콜
- 현재는 대부분 TCP 사용
3. UDP — 사용자 데이터그램 프로토콜(User Datagram Protocol)
- 하얀 도화지에 비유(기능이 거의 없음)
- 연결지향 — TCP 3 way handshake X
- 데이터 전달 보증 X
- 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- IP와 거의 같다. +PORT +체크섬 정도만 추가
- 애플리케이션에서 추가 작업 필요
TCP 네트워크 프로세스(네이버 접속 시나리오)
- 웹 브라우저에 www.naver.com 입력.
- DNS로 네이버 서버 IP주소 할당.
- 애플리케이션 계층에서 메세지 데이터 패킹(HTTP 메시지).
- 전송 계층에서 PORT정보(출발지, 목적지), 전송제어 정보, 순서 정보, 검증 정보 패킹.
- 인터넷 계층에서 IP정보(출발지, 목적지) 패킹
- 네트워크 엑세스 계층에서 MAC주소 패킹
- 게이트웨이를 통해 인터넷망 접속.
- 라우터를 통해 목적지(네이버 서버)를 찾아 연결.
- 네이버 서버에 도착하면 패킷을 하나 하나 까면서 목적 포트에 메세지 데이터 전달하여 다시 응답.
TCP 3 way handshake
- 클라이언트 -> 서버: SYN패킷 전송
- 서버 -> 클라이언트: SYN+ACK패킷 전송
- 클라이언트 -> 서버: ACK+데이터 패킷 전송
- 데이터 패킷 전송
TCP 순서 보장
- 클라이언트에서 패킷1, 패킷2, 패킷3 순서로 전송
- 서버에서 패킷1, 패킷3, 패킷2 순서로 받음
- 서버에서 패킷2번부터 다시 보내라고 클라이언트에게 요청(TCP 기본 동작)
'HTTP' 카테고리의 다른 글
HTTP 메시지 구조 (0) | 2021.01.12 |
---|---|
HTTP 지속연결 (0) | 2021.01.12 |
STATELESS, STATEFUL (0) | 2021.01.12 |