티스토리 뷰

3-way-handshake

3-Way-Handshake는 TCP 장치들 사이에 논리적인 접속을 정립하기 위해 사용한다.즉, TCP/IP 프로토콜을 이용하여 통신을 할 때, 정확한 전송을 보장하기 위해 대상이 되는 컴퓨터와 사전에 세션을 수립하는 과정을 말한다. 

  • SYN (Synchronize sequence number) : 연결을 요청하고 세션을 성립하는데 이용
  • ACK(Acknowledgement) : 요청을 했다는 메세지로, 받은 시퀀스 번호에 TCP 계층의 길이 또는 양을 더한 값을 ACK 담에 전송

 

  1. 클라이언트는 서버에 접속을 요청하는 SYN(a) 패킷을 보낸다.
  2. 서버는 클라이언트 요청인 SYN(a) 패킷을 받고, 요청을 수락한다고 확인 메시지인 ACK(a+1)SYN(b) 패킷을 보낸다.
  3. 클라이언트는 서버의 응답인 ACK(a+1) SYN(b) 패킷을 받고, 확인 메시지인 ACK(b+1)를 보내면 연결이 성립(established)된다.

4-way-handshake

4-Way-Handshake는 통신의 종료를 위한 과정으로 TCP 간 세션을 종료하기 위한 방식이다.

  • FIN : 세션의 종료를 알리며 더이상 데이터가 없다는 것을 말한다.

 

  1. 클라이언트가 서버에게 연결을 종료하겠다는 FIN 플래그를 보낸다.
  2. 서버는 클라이언트의 요청(FIN)을 받고, 확인 메시지인 ACK를 보낸다. 그 후 데이터를 전부 전송할 때까지 잠깐 TIME_OUT이 된다.
  3. 서버는 데이터를 전부 전송한 후, 클라이언트에게 연결이 종료되었다는 FIN 플래그를 보낸다.
  4. 클라이언트는 서버로부터 FIN을 받고, 확인 메시지인 ACK를 보낸다.
    • 서버는 클라이언트로부터 ACK를 받은 후, 소켓을 종료(closed)한다.
    • 클라이언트는 아직 서버로부터 못 받은 데이터가 있을 것을 대비하여 일정시간동안 세션을 남긴다(TIME_WAIT).

참조

'Network' 카테고리의 다른 글

[네트워크] GET 과 POST의 차이  (0) 2020.09.08
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함