웹 프로그래밍/HTTP
TCP, UDP
kgvovc
2021. 4. 4. 19:03
반응형
인터넷 프로토콜 스택의 4계층
IP위에 TCP를 올려서 보완해준다고 생각하면 된다.
프로토콜 계층
미국에 있는 친구한테 Hello, world! 전달하는 과정
PORT, 전송 제어, 순서, 검증 정보 등이 추가된다.
TCP 특징
전송 제어 프로토콜(Transmission Control Protocol)
연결지향 - TCP 3 way handshake (가상 연결)
- IP의 비연결성 해결 -> 패킷을 받을 대상이 서비스 가능해야만 전달함.
데이터 전달 보증, 순서 보장
- IP의 비신뢰성 해결 -> 패킷 누락, 패킷 순서 보장해줌.
- 신뢰할 수 있는 프로토콜
- 현재는 대부분 TCP 사용
(1) SYN(synchronize): 클라이언트가 서버에게 SYN 요청
(2) SYN + ACK(acknowledge): 서버가 클라이언트에게 SYN에 대한 ACK와 함께 SYN 요청
(3) ACK: 클라이언트가 서버에게 SYN에 대한 ACK 전송
(4) 데이터 전송
만약 처음에 서버가 꺼져있었다면?
클라이언트가 서버에 SYN을 보냈을 때, 응답이 없어서 연결이 안된다.
데이터 전달 보증
순서 보장
UDP 특징
사용자 데이터그램 프로토콜(User Datagram Protocol)
하얀 도화지에 비유(기능이 거의 없음)
연결지향 - TCP 3 way handshake X
데이터 전달 보증 X
순서 보장 X
데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
(TCP는 3 way handshake랑 데이터 전달 보증할 때 거치는 과정이 더 많음)
정리
- IP와 거의 같다. +PORT +체크섬(데이터 잘 왔는지 검증해주는 데이터) 정도만 추가
- 애플리케이션에서 추가 작업 필요
본 포스팅은 인프런의 모든 개발자를 위한 HTTP 웹 기본 지식 by 김영한 강좌를 듣고 정리한 내용입니다.
반응형