TCP와 UDP
Network

TCP와 UDP

1. TCP 3 way handshaking(시작)

SYN

- Client에서 세션을 맺기 위하여 SYN 전송

- Server는 SYN을 받고 LITSEN > SYN_RCV 상태 변경

 

SYN+ACK

- Sever는 SYN을 확인하고 Client에 SYN+ACK 전송

- Client는 SYN+ACK를 받고 SYN_SNT > ESTABLISHED 상태 변경

 

ACK

- Client는 SYN+ACK를 확인하고 ACK 전송

- Server는 ACK를 받고 SYN_RCV > ESTABLISHED 상태 변경

3 way handshaking 와이어샤크 캡쳐

2. TCP 4 way handshanking(종료)

FIN

- Client에서 세션을 종료하기 위해 FIN 전송

- Server에서 FIN을 받고 ESTABLISHED > CLOSE_WAIT로 상태 변경

 

ACK

- Server에서 FIN을 확인하고 ACK전송

- Client는 ACK를 받고 FIN_WAIT1 > FIN_WAIT2 상태 변경

 

FIN

- Server에서 ACK를 전송 후 FIN 전송

- Client는 FIN을 받고 FIN_WAIT2 > TIME_WAIT 상태 변경

- 남아있는 패킷을 위하여 일정 기간동안 TIME_WAIT 상태 유지

 

ACK

- Client는 FIN을 확인하고 ACK 전송

- Server는 ACK를 받고 LAST_ACK > CLOSED 상태 변경

 

 

4 way handshaking 와이어샤크 캡쳐(위 설명과 다르게 Server가 먼저 종료 요청)

3. TCP 전송

- 신뢰성이 필요한 어플리케이션에서 사용

TCP 전송 와이어샤크 캡쳐

- 가상 회선 패킷 교환 방식으로 3 way handsaking에 결정된 경로로 모든 패킷 전송되어 송신 순서 보장

4. UDP 전송

- 간단한 데이터를 빠르게 전송이 필요한 어플리케이션에 사용

UDP 전송 와이어샤크 캡쳐

- 데이터그램 패킷 교환 방식으로 독립적으로 결정된 경로로 패킷 전송되어 송신 순서 보장되지 않음

5. TCP와 UDP 비교

TCP UDP
연결지향형 프로토콜(3way/4way handshaking) 비 연결지향형 프로토콜
바이트 스트림을 통한 연결 메세지 스트림을 통한 연결
혼잡제어, 흐름제어 혼잡제어, 흐름제어 X
도착 순서 보장 도착 순서 보장 X
상대적 느림 상대적 빠름
데이터 전송 보장(데이터 재전송) 데이터 전송 보장 X(데이터 재전송 X)
세그먼트 TCP 패킷 데이터그램 UDP 패킷
HTTP, Email 등에 사용 DNS, 동영상 스트리밍, 게임 등에 사용
1:1 통신(전이중(Full Duplex), 점대점(Point to Point)) 1:1, 1:다, 다:다 통신

 

'Network' 카테고리의 다른 글

NFV  (0) 2021.03.14
SDN  (0) 2021.03.14
DNS  (0) 2021.01.11
ARP Spoofing  (0) 2020.06.06
Switch Jamming Attack  (0) 2020.06.06