3-way Handshaking
: 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정
- A는 B에게 접속을 요청하는 SYN이 설정된 패킷을 보냅니다. 이때 A는 SYN 을 보내고 SYN/ACK 응답을 기다리는 SYN_SENT 상태가 됩니다.
- B는 SYN요청을 받고 A에게 요청을 수락한다는 ACK 와 SYN flag 가 설정된 패킷을 발송하고 A가 다시 ACK으로 응답하기를 기다립니다. 이때 B는 SYN_RECEIVED 상태가 됩니다.
- A는 B에게 ACK을 보내고 이후로부터는 연결이 이루어지고 데이터 통신이 됩니다.
4-way Handshaking
: 안전하게 세션을 종료
- A에서 B와의 연결 종료를 위해 B에 FIN 패킷을 보내고 A는 FIN-Wait 상태가 됩니다.
- B는 A로부터 FIN을 받고 응답 패킷 ACK을 보냅니다. B는 Close-Wait 상태가 됩니다
- B가 A로 보내는 통신이 끝나면, 즉 연결을 종료할 준비가 되면 A에게 FIN패킷을 보내고 Last-Wait 상태가 됩니다
- A는 확인 패킷 ACK을 보내고 Time-Wait 상태가 됩니다.
- A가 Closed가 되고 연결이 종료됩니다.
A가 Closed 전에 Time-Wait 상태가 되는 이유
: B에서 FIN을 전송하기 전에 전송한 패킷이 Routing 지연이나 패킷 유실로 인한 재전송 등으로 인해 FIN패킷보다 늦게 도착하는 상황에 대비하여 A는 B로부터 FIN을 수신하더라도 일정시간 동안 세션을 남겨놓고 잉여 패킷을 기다리는 Time wait 상태를 거침
'리팩토링' 카테고리의 다른 글
계층 별 프로토콜 (보완) (0) | 2023.01.31 |
---|---|
계층 별 프로토콜 (0) | 2023.01.16 |
계층 별 장비 (2) | 2023.01.10 |
TCP 와 UDP (0) | 2022.12.26 |
OSI 7 Layer (0) | 2022.12.17 |