한동안 너무 바빴다. 그래서 TIL을 작성은 하지만 백엔드 과정의 순서를 무시하고 올려야 싶다. 그때는 해당 과목 날짜를 적으려고한다.
TCP 3way handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정이라고 한다.
여기서 SYN은 'synchronize sequence numbers', 그리고 ACK는'acknowledgment' 의 약자라고 한다.
사실 client와 server 사이에 데이터 전송이 바로 이루어 지는줄 알았다.
[step1]
A클라이언트는 B서버에 접속을 요청하는 SYN 패킷을 보낸다.
이때 A 클라이언트는 SYN를 보내고, SYN/ACK 응답을 기다린다. 이것을
SYN_SENT 상태라고 하고, B서버는 Wait for Client 상태라고 한다.
[step2]
B서버는 A클라이언트에게 요청을 수락한다는 SYN/ACK flag가 설정된 패킷을 발송하고, A클라이언트가 ACK로 응답하기를 기다린다. 이때 B서버는 SYN_RECEIVED 상태가 된다.
[step3]
A클라이언트는 B서버에게 ACK를 보내고, 이후로 부터는 연결이 이루어지게 되고 데이터가 오가게 된다고 한다.
이때 B서버의 상태는 ESTABLISHED라고 한다.
[[네트워크] 3-way / 4-way Handshake 란?, tistory, 2022년05월03일 접속]
https://bangu4.tistory.com/74