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 상태 변경
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 상태 변경
3. TCP 전송
- 신뢰성이 필요한 어플리케이션에서 사용
- 가상 회선 패킷 교환 방식으로 3 way handsaking에 결정된 경로로 모든 패킷 전송되어 송신 순서 보장
4. 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 |