본문 바로가기

자격증/정보보안기사

[네트워크 보안] 데이터 연결 과정 주요 내용

1. 3-way handshake

 가. 개념

  □ 서버-클라이언트 간 데이터 송/수신을 위한 연결 과정

 나. 과정

  1) Client: SYN (SYN_SENT)

  2) Server: SYN+ACK(SYN_RECV)

  3) Client: ACK(Established)

  4) Server: ACK 수신(Established)

 

2. 데이터 송/수신 과정

 가. 재전송 과정

  1) Client: Data A 전송 (Data A에 대한 재전송 타이머(RTO) 동작)

  2) Client: Data B 전송 (Data B에 대한 재전송 타이머 동작)

  3) Server: Data A에 대한 ACK 전송

  4) Server: Data B 수신 못함(ACK 전송 못함)

  5) Client: Data A에 대한 ACK 수신 / Data B에 대한 재전송 타이머 초과

  6) Client: Data B 재전송

  - 상기 과정은 무한히 진행되지 않고, 일정 시간/횟수 동안 ACK 오지 않으면 연결을 그냥 종료해버림

 나. 빠른 재전송 과정

  1) Client: Data A,B,C,D,E 전송 (재전송 타이머(RTO) 동작)

  2) Server: Data A에 대한 ACK 전송

  3) Server: Data B 수신 못함 → C 부터 수신 → 순서번호에 맞지 않는 데이터  수신 → B에 대한 재전송 요청

  4) Server: Data D,E 를 수신할 때마다 Data B 재전송 요청 

  5) Client: Data B에 대한 재전송 요청이 3번 발생하는 순간 해당 세그먼트가 누락되었다고 판단 즉시 재송신

  - Data B 이후의 Data들은 정상 수신하였으므로 상기 과정은 RTO에 의한 재전송보다 혼잡하지 않은 상태

 다. 연결 요청 거부(3-way handshake 거부)

  1) Client: SYN (SYN Packet은 ACK 가 설정되어있지 않음)

  2) Server: RST + ACK (No Listening State)

 라. 연결 중단  추후 수정 예정

  1-1) Client: RST + ACK

  → 상대방에게 ACK 넘버가 없이 Packet을 받은 경우

  → 단순히 RST 패킷만 주면 제대로 연결 종료했는지 모르기 때문에 ACK 패킷도 함께 전송

  1-2) Client: RST

  → 상대방에게 ACK 넘버가 있는 Packet을 받은 경우

  → 현재 연결상태라는 뜻이므로 RST 만 주면 연결 중단 가능

 

3. 4-way handshake

 가. 개념

  □ 서버-클라이언트 간 연결 종료 과정

 나. 과정

  1) Client: FIN+ACK(FIN_WAIT1)

  2) Server: ACK(CLOSE_WAIT) → 현재, 나의(서버 측) 버퍼에 있는 데이터들 처리해야겠군!

  3) Client: (FIN_WAIT) → 서버가 버퍼에 있는 데이터를 다 처리할 때까지 기다려야지

  4) Server: FIN+ACK → 나(서버 측) 버퍼에 있는 데이터들 다 털었어!

  5) Client: ACK (TIME_WAIT) ACK를 보낸 후, 2MSL 동안 기다림

      (서버측이 ACK를 수신하지 못할 경우, FIN+ACK가 올수도 있기 때문)

  6) Server: ACK 수신 (CLOSED)

  7) Client: (CLOSED)

 

 

'자격증 > 정보보안기사' 카테고리의 다른 글

[네트워크 보안] 포트  (0) 2022.08.04
[네트워크 보안] UDP  (0) 2022.08.04
[네트워크 보안] TCP  (0) 2022.08.03
[네트워크 보안] ICMP 프로토콜  (0) 2022.08.03
[네트워크 보안] IP 프로토콜  (0) 2022.08.03