기출 3way handshake

agnusdei·2024년 11월 17일
0

Network

목록 보기
10/419

문제

TCP의 Three-way Handshaking 절차와 각 상태에 대해 설명하시오.

답변

  1. 개념
    TCP(Transmission Control Protocol)의 Three-way Handshaking은 신뢰성 있는 연결을 수립하기 위해 클라이언트와 서버가 세 번의 메시지를 주고받는 절차입니다. 이 과정에서 TCP 연결의 상태가 단계적으로 변경되며, 각 상태는 연결 요청부터 수립까지의 진행 상황을 나타냅니다.

  2. Three-way Handshaking 절차와 상태 변화

(1) 첫 번째 단계: 클라이언트 → 서버 (SYN)
• 동작:
클라이언트는 서버에 연결 요청을 보냅니다.
SYN(Synchronize) 플래그가 설정된 패킷을 보내며, 초기 Sequence Number(Seq=x)를 전달합니다.
• 상태 변화:
• 클라이언트: CLOSED → SYN-SENT
(연결 요청을 보낸 상태로, 서버의 응답을 기다림.)
• 서버: LISTEN (대기 상태)
• 목적: 서버에 “연결을 시작하겠다”는 의사를 전달합니다.

클라이언트 → 서버 : SYN, Seq=x

(2) 두 번째 단계: 서버 → 클라이언트 (SYN-ACK)
• 동작:
서버는 클라이언트의 요청을 수락하고, 동시에 자신의 연결 요청을 보냅니다.
SYN과 ACK(Acknowledge) 플래그가 설정된 패킷을 전송하며,
• Seq=y: 서버의 초기 시퀀스 번호.
• Ack=x+1: 클라이언트의 시퀀스 번호를 확인.
• 상태 변화:
• 클라이언트: 상태 변동 없음 (여전히 SYN-SENT 상태).
• 서버: LISTEN → SYN-RECEIVED
(클라이언트의 요청을 받아들이고 응답을 보낸 상태.)
• 목적: 서버는 클라이언트의 연결 요청을 수락하며 자신도 연결을 요청합니다.

서버 → 클라이언트 : SYN, ACK, Seq=y, Ack=x+1

(3) 세 번째 단계: 클라이언트 → 서버 (ACK)
• 동작:
클라이언트는 서버의 SYN-ACK 패킷을 확인하고, ACK 플래그가 설정된 패킷을 보냅니다.
• Seq=x+1: 클라이언트의 시퀀스 번호 증가.
• Ack=y+1: 서버의 시퀀스 번호를 확인.
• 상태 변화:
• 클라이언트: SYN-SENT → ESTABLISHED
(서버의 응답을 확인하고 연결이 수립된 상태.)
• 서버: SYN-RECEIVED → ESTABLISHED
(클라이언트의 응답을 받고 연결이 수립된 상태.)
• 목적: 클라이언트와 서버는 서로 연결이 성공적으로 수립되었음을 확인합니다.

클라이언트 → 서버 : ACK, Seq=x+1, Ack=y+1

  1. TCP 상태 변화 요약

    1. 클라이언트 상태 변화
      • CLOSED: 연결 시작 전 상태.
      • SYN-SENT: SYN 패킷을 보낸 후 응답을 기다리는 상태.
      • ESTABLISHED: 연결이 수립된 상태.
    2. 서버 상태 변화
      • LISTEN: 연결 요청을 대기하는 상태.
      • SYN-RECEIVED: SYN 패킷을 받고 응답(SYN-ACK)을 보낸 상태.
      • ESTABLISHED: 연결이 수립된 상태.
  2. 시퀀스 다이어그램

클라이언트 서버
CLOSED LISTEN
| SYN, Seq=x -------------> |
| SYN-RECEIVED
SYN-SENT |
| <------------ SYN, ACK, Seq=y, Ack=x+1
|
ESTABLISHED |
| ACK, Seq=x+1, Ack=y+1 -----> |
ESTABLISHED

  1. 특징 및 장점
    • TCP 상태를 이용해 연결 수립의 각 단계를 관리하여 안정성 보장.
    • 데이터 전송 전 양측의 준비 상태를 확인.

  2. 주의점 및 단점
    • SYN Flooding 공격: 다수의 SYN 패킷을 전송해 서버가 SYN-RECEIVED 상태에서 멈추게 만드는 공격 가능.
    • 연결 수립에 시간이 소요됨(초기 지연).

이상으로 Three-way Handshaking 절차와 각 상태 변화를 설명하였습니다.

0개의 댓글