ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3 Way-Handshake 란?
    Web Programming 2020. 9. 16. 18:13
    반응형

    3 Way-Handshake란 말 그대로 3개의 경로를 통해 연결이 이루어지는 구조를 의미한다. TCP(Transmission Control Protocol)의 가장 큰 특징인 연결지향적인 특성을 갖는 과정에 이 구조가 사용된다.

    (TCP에 대해서는 다음 글을 참고하자.)

    참고 : 

     

    3 Way-Handshake는 간단하게 이러한 구조를 지닌다.

     

    1. A가 B에게 연결 여부를 묻는다.
    2. B는 A에게 연결 여부를 답하며 연결 여부를 묻는다.
    3. A도 B에게 연결 여부를 답한다.

    즉 이 구조는 전송하는 측과 전송받는 측의 선로 연결이 잘 되어있는지 확인하는 과정이라고 할 수 있다. 네트워크 상에서 이는 연결 여부를 패킷을 주고받음으로써 확인한다. 이 과정에 대해 자세히 알아보자.

     

    클라이언트와 서버 혹은 클라이언트와 클라이언트가 연결되는 과정은 위와 같다. 여기서 SYN(Synchronize Sequence Numbers)와 ACK(Acknowlegements)는 상세 과정을 보면 이해할 수 있다. 

     

    1. SYN Segment(클라이언트의 동기화 정보 전송)
      1. 클라이언트 A는 Source Port에 자신을 나타내는 Port Number를 넣는다.
      2. Destination Port에는 서버를 가리키는 Port Number를 넣는다.
      3. Sequence Number에 클라이언트의 초기 순서 번호를 넣어 전송한다.
    2. SYN + ACK Segment(서버의 동기화 정보 전송 + SYN Segment 수신 확인)
      1. 서버 B는 Source Port에 자신을 나타내는 Port Number를 넣는다.
      2. Destination Port에는 송신자인 클라이언트를 가리키는 Port Number를 넣는다.
      3. Sequence Number에 서버의 초기 순서 번호를 넣는다.
      4. Acknowledgement Number에는 클라이언트의 초기 순서 번호 + 1을 넣어 전송한다.
    3. ACK Segment(SYN Segment 수신 확인)
      1. 1번 과정과 동일하게 Port Number를 설정한다.
      2. Acknowledgement Number에는 서버의 초기 순서 번호 + 1을 넣어 전송한다.
    4. Established(연결 설정 완료)

     

    반응형
Designed by Tistory.