SYN / ACK / 프로토콜 / TCP에 대해 잘 모르겠다면?
같이 곁들이면 좋은 포스팅입니다 :)
키워드
- 3 way handshake → 연결 ( 이것 좀 해줘! -> 알겠어 포트 열어 줄래? -> 연결 성공! )
- 4 way handshake → 해제 ( 나 다했어 ! -> 잠깐만! 기다려줘 -> 나도 끝났어 ~!~ -> 연결 종료 성공! )
- SYN → 연결 설정
- ACK → 응답 확인
- FIN → 연결 해제
TCP 3 way handshake
TCP 3 way handshake란 데이터를 전송하기 위해 네트워크 연결을 설정하는 과정입니다.
양쪽 모두 데이터를 전송할 준비가 되어있다는 것을 보장합니다.
👋 이것 좀 해줘 !
클라이언트가 서버에게 SYN (연결 요청 메시지)를 전송합니다. 송신자가 최초로 데이터를 전송할 때 Sequence Number를 임의의 숫자로 지정하고, SYN 플래그 비트를 1로 설정한 세그먼트(데이터를 메시지의 형태로 보내는 블록 단위)를 전송합니다.
👋 알겠어 포트 열어 줄래?
접속 요청을 받은 서버가 요청을 수락했으며, 클라이언트도 포트를 열어 달라는 메시지를 전송합니다. ( SYN + ACK )
수신자는 ACK를 SEQ + 1로 지정하고, SYN과 ACK 플래그 비트를 1로 설정한 세그먼트를 전송합니다.
🤝연결 성공!
마지막으로 클라이언트가 수락 확인을 보내 연결을 맺습니다.
이때 전송할 데이터가 있으면 이 단계에서 데이터를 전송할 수 있습니다.
TCP 4 way handshake
TCP 4 way handshake란 연결을 해제하는 과정을 의미합니다.
🙌 나 다했어!
클라이언트가 서버에게 연결을 종료하겠다는 FIN 플래그를 전송합니다. 서버가 FIN 플래그로 응답하기 전까지 연결을 유지합니다.
✋ 잠깐만! 기다려줘
서버는 확인 메시지를 보내고 자신의 통신이 끝날 때까지 기다립니다. ( TIME_WAIT 상태 )
👋 나도 끝났어 ~!~
서버가 통신이 끝났으면 연결 종료 요청에 합의한다는 뜻으로 클라이언트에 FIN 플래그를 전송합니다
👋 연결 종료 성공!
클라이언트는 확인했다는 ACK 메시지를 전송합니다.
참고 블로그
'📓 Study > Tech Interview' 카테고리의 다른 글
🎁컬렉션 프레임워크가 무엇인지 설명해주세요 (0) | 2021.07.01 |
---|---|
HTTP와 HTTPS의 차이점, 그리고 SSL Handshake에 대해 설명해주세요 (0) | 2021.06.30 |
GC가 무엇인지, 필요한 이유는 무엇인지, 동작방식에 대해 설명해주세요. (0) | 2021.06.28 |
OSI7계층과 그 존재 이유, TCP/IP 에 대해 설명해주세요 (0) | 2021.06.28 |
JVM의 구조와 Java의 실행방식을 설명해주세요. (0) | 2021.06.23 |
댓글