★KEYWORD★
전송제어 프로토콜에서 통신을 하는 장치간에 서로 연결이 잘 되어있는지 확인하는 과정과 방식 / 송수신자 사이에 연락을 확인 / TCP
3-Way Handshake
전송제어 프로토콜(TCP)에서 통신을 하는 장치간 서로 연결이 잘 되어있는지 확인하는 과정/방식이다.
더 쉽게 말해서 송수신자(데이터를 주고 받는 2사람이라고 생각하면 쉬울 것 같다)사이에 연결을 확인하는 과정이다.
TCP 프로토콜은 연결지향적이다. 이는 상대방이 내 신호를 받을 수 있는지 확인하고 전송을 하는 것을 의미한다. 이때 내 신호를 받을 수 있는 지 확인하는 것이 3 way handshake이다.
3 way handshake는 client / server사이에서 이루어진다.
3-Way Handshake의 과정
➡️1단계
클라이언트가 서버에 접속을 요청하는 Synchronize Sequence Number(SYN)라는 임의의 랜덤 숫자 전송
이때 A클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는SYN_SENT 상태가 되는 것
➡️2단계
B서버는 SYN요청을 받고 A클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 가 설정된 패킷을 발송하고 A가 다시 ACK으로 응답하기를 기다림. 이때 B서버는 SYN_RECEIVED 상태가 됨
➡️3단계
A클라이언트는 B서버에게 ACK을 보내고 이후로부터는 연결이 이루어지고 데이터가 오가게 됨. 이때의 B서버 상태가 ESTABLISHED 임
- SYN(Synchronization) : 연결요청, 세션을 설정하는데 사용되며 초기에 시퀀스 번호를 보냄
- ACK(Acknowledgement) : 보낸 시퀀스 번호에 TCP 계층에서의 길이 또는 양을 더한 것과 같은 값을 ACK에 포함하여 전송 (동기화 요청에 대한 답변 : Client의 Sequence Number+1을 하여 ACK로 돌려줌)
HyunZzang의 프로그래밍 공간 / 함께 공부해요!!
도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 부탁드립니다 :)