220503 TIL

Parker.Park·2022년 5월 3일
0

TIL

목록 보기
14/39

코드캠프 백엔드2기 37일차

한동안 너무 바빴다. 그래서 TIL을 작성은 하지만 백엔드 과정의 순서를 무시하고 올려야 싶다. 그때는 해당 과목 날짜를 적으려고한다.

3Way HandShake ?

TCP 3way handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정이라고 한다.

  • Cilent > Server : TCP SYN
  • Server > Client : TCP SYN, ACK
  • Server > Client : TCP ACK

여기서 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

profile
개발자준비중

0개의 댓글