TCP 3-way Handshaking   TCP 연결 설정, TCP의 3단계 핸드세이킹

(2019-08-26)

SYN 세그먼트, SYN+ACK 세그먼트, ACK 세그먼트, TCP 3-way Handshake, TCP three way Handshake

1. TCP 연결 3단계 핸드세이킹TCP는 안정적이고 연결지향적트랜스포트 계층프로토콜로써, 
  ㅇ 연결 세션 설정을 위해 3단계의 핸드세이킹 과정을 밟음
 

2. TCP의 3-way Handshaking 흐름도

   

  ※ [참고] ☞ TCP 세그먼트, 능동개방/수동개방, 초기 순서번호, TCP 제어플래그 등 참조


3. TCP의 3-way Handshaking의 각 단계세그먼트 1 (SYN 세그먼트)     : 연결 요청 (`초기 동기화 패킷` 라고도 불리움)
     - TCP 제어 플래그  : 클라이언트가 SYN 플래그 = 1로 설정
     - TCP 헤더 필드
        . 순서번호 = ISN (클라이언트측)
        . (확인응답 번호,윈도우 크기 필드는 미정의됨)
     - `데이터 미 전송` 그러나, `하나의 순서번호`는 소비함
     - TCP 옵션         : MSS 포함시킴
     - TCP 상태 천이    : 클라이언트는 `SYN-SENT` TCP상태로 전이 

  ㅇ 세그먼트 2 (SYN+ACK 세그먼트) : 연결 허락
     - TCP 제어 플래그  : SYN 플래그 = 1 및 ACK 플래그 = 1로 설정 
     - TCP 헤더 필드    
        . 순서번호 = ISN (서버측), 
        . 확인응답 번호 = (수신된 순서번호 + 1)
          .. 클라이언트로부터 수신을 기대하는 다음 순서번호확인응답/승인하며 전송
        . (윈도우 크기 필드는 정의됨)
     - `데이터 미 전송` 그러나, `하나의 순서번호`는 소비함
     - TCP 옵션         : MSS 포함시킴
     - TCP 상태 천이    : 서버는 `LISTEN` → `SYN-RECEIVED` TCP상태로 전이
        . 이를 절반 개방(Half Open)이라고도 함

  ㅇ 세그먼트 3 (ACK 세그먼트)     : 연결 설정
     - 단순히 ACK 전송 만을 위함
     - TCP 제어 플래그 : 클라이언트가 ACK 플래그 = 1로 설정
        . 이때, 회선 설정이 이미 이뤄진 상태이므로 굳이 SYN 플래그를 설정 안해도 됨
     - TCP 헤더 필드
        . 승인번호 = (수신된 순서번호 + 1),
        . 확인응답 번호 : (SYN+ACK 세그먼트)의 확인응답 번호를 그대로 복사 사용
     - 일반적으로, 데이터 미 전송하며, 어떠한 순서번호도 소비하지 않음
     - TCP 옵션        : 통상, 이 세그먼트에서는 비어 있게 됨
     - TCP 상태 천이   : 양단 모두 `ESTABLISHED` TCP상태로 들어감 
        . (`SYN-SENT` → `ESTABLISHED` 및 `SYN-RECEIVED` → `ESTABLISHED`)

  ※ 여기서, 초기 순서번호(ISN) 이란?
     - 랜덤 수를 선택한 후 상대에게 전송 
        . 순서번호 초기화 직후 상대와의 순서번호 동기화 목적
     - TCP는 양방향이므로 각 방향 마다 다른 ISN 번호가 사용됨 

  ※ [참고] ☞ TCP 헤더, TCP 제어 플래그, TCP 연결 종료 등 참조


4. TCP의 3-way Handshaking의 주요 목적 둘

  ㅇ 연결이 시작됨과 옵션이 교환됐음을 알림
  ㅇ ISN(랜덤초기 순서번호)를 생성하고 교환했음을 알림


5. TCP 연결과정에서 교환되는 주요 정보ISN (초기 순서번호)
     - 연결된 두 장비 간에 각 방향 마다 초기 순서번호를 서로 교환함 
  ㅇ 수신 기본 윈도우 크기 (rwnd)
  ㅇ 옵션 정보TCP 옵션 참조
     - MSS 옵션
     - 추가 윈도우 크기 스케일 옵션
     - SACK 옵션 허용
     - SACK 옵션 데이터 등


[TCP 연결관리] 1. TCP 연결 2. TCP 연결설정(3단계) 3. TCP 연결종료 4. TCP 상태 5. TCP 헤더 옵션 6. TCP MSS 옵션 7. path MTU
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
        1. 통신 이란?
        2. 신뢰적 통신
    1.   통신이론
    2.   선로/전송
    3.   통신망 일반
    4.   회선교환(PSTN)
    5.   무선/이동통신
    6.   광통신
    7.   인터넷/데이터통신
          1. 데이터통신망
          2. 인터넷
          3. 데이터 네트워크 설계
      1.   데이터 단위
      2.   프로토콜/계층
      3.   데이터 링크
      4.   TCP/IP
            1. TCP/IP 이란?
        1.   IP 계층
        2.   전송계층(UDP,TCP,SCTP,포트번호)
              1. 전송 계층
          1.   포트번호(프로세스식별)
          2.   TCP
                1. TCP
            1.   TCP 패킷(세그먼트)
            2.   TCP 연결관리
              1.   1. TCP 연결
                  2. TCP 연결설정(3단계)
                  3. TCP 연결종료
                  4. TCP 상태
                  5. TCP 헤더 옵션
                  6. TCP MSS 옵션
                  7. path MTU
            3.   TCP 오류제어
            4.   TCP 흐름/혼잡 제어
            5.   TCP 기타사항
          3.   UDP,SCTP,MPTCP
        3.   DHCP
        4.   TCP/IP 유틸리티
        5.   TCP/IP 기타일반
      5.   라우팅
      6.   인터넷 QoS
      7.   인터넷 관리
      8.   인터넷 응용
      9.   인터넷 기타
      10.   패킷교환(PSN)
      11.   인터넷 관련 기관
  7.   정보기술(IT)
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록     참고문헌