TCP   Transmission Control Protocol  

(2022-01-13)

1. TCP (Transmission Control Protocol)TCP/IP 프로토콜 群 (1백개 이상 존재) 중 하나
     - OSI 계층모델의 관점에서 트랜스포트 계층 (4계층)에 해당

  ㅇ 양종단 호스트프로세스 상호 간에 신뢰적연결지향성 서비스를 제공
     - IP비신뢰적최선형 서비스에다가, 신뢰적연결지향성 서비스를 추가 제공하게 됨
     - 이렇게, IP에 추가적으로 신뢰적전송을 보장함으로써, 어플리케이션 구현이 한층 쉬워지게 됨

  ※ 또한, 이외에도 매우 많은 일을 하는, 상당히 복잡하지만 많이 쓰이는 프로토콜2. 주요 특징신뢰성 있음 (Reliable)
     - 패킷 손실, 중복, 순서바뀜 등이 없도록 보장
        . TCP 하위계층인 IP 계층신뢰성 없는 서비스에 대해 다방면으로 신뢰성을 제공

  ㅇ 연결지향적 (Connection-oriented)                                        ☞ TCP 연결
     - 같은 전송계층UDP비연결성(connectionless)인 것과는 달리, TCP는 연결지향적 임
        . 이 경우, 느슨한 연결(Loosly Connected)을 갖으므로,
        . 강한 연결을 의미하는 가상회선이라는 표현 보다는, 오히려 연결지향적이라고 말함

     - 연결 관리를 위한 연결설정 및 연결해제 필요          ☞ TCP 연결설정, TCP 연결종료
        . 양단간 어플리케이션/프로세스는 TCP가 제공하는 연결성 회선을 통하여 서로 통신TCP 연결의 식별, 다중화, 포트번호
     - TCP 연결(회선)의 식별  :  소켓(양단 IP주소포트번호 쌍)으로 회선을 식별 함
        . 2개의 IP 주소 및 2개의 포트 번호에 의한 4개가 하나의 연결(회선)을 식별함
     - 여러 응용 간 다중화 가능  :  단일 연결 뿐만아니라 다수 연결의 동시적 처리도 가능 
     - 응용과의 연결점 식별  :  TCP는 포트 번호에 의해 어플리케이션(응용)과의 연결점을 식별

  ㅇ 전이중 전송방식/양방향성 (Full-Duplex) 
     - 종단간프로세스가 서로 동시에 세그먼트를 전달할 수 있음
        . 양방향 각각에 대해 `송수신 버퍼` 및 `데이터흐름용 순서번호` 유지

  ㅇ 멀티캐스트 불가능 : 단대단 전송 방식 (1:1) 즉, 유니캐스트성 임
     - 단일 송신자와 단일 수신자 간에 단일 경로 연결이 설정됨 
        . 한편, 차세대 전송계층 프로토콜로써,   ☞ MPTCP 참고

  ㅇ 상위 응용과는 바이트 스트림(Byte Stream)으로 주고받음
     - 논리적(의미를 갖는) 단위메세지 스트림이 아님
        . 각 데이터 간의 구분을 의미적으로 구분하지 않고,
        . 단순히 바이트들의 연속적인 흐름으로 보고, 이들을 묶어 세그먼트화하여 전송

     - 이는 상위 응용 개발자들이 흐름제어,회선관리,전송단위 등을 신경쓰지 않도록 함

  ㅇ 세그먼트화 처리             : 데이터패키징 처리
     - 바이트들을 모아서 세그먼트화하고 이에 TCP 헤더를 붙이고, 이들을 순서제어함
        . TCP 세그먼트 : TCP에서 IP로 전달되는 정보 단위(통상, 수 백 바이트 정도)   
           .. 양 끝단의 TCP 모듈간에 서로 교환되는 데이터 단위를 TCP 세그먼트라고 함

     - TCP 세그먼트의 (한 번에 보낼 수 있는) 최대 크기  ☞ TCP MSS흐름제어 (Flow Control)                                           ☞ 슬라이딩 윈도우
     - 송신(송신전송률) 및 수신(수신처리율)  속도를 일치시키는 것
        . 주로, `순서번호`,`확인응답번호`,`수신윈도우 크기`라는 3개 변수흐름제어혼잡제어 (Congestion Control)                                     ☞ TCP 혼잡제어
     - 네트워크가 혼잡하다고 판단될 때 송신률을 감속함
        . 이에따른 여러 장치(기법)들을 다양한 TCP 버젼에서 마련하고 있음
           .. 주요활용기능 : 느린 시작, 혼잡 회피, 수신 윈도우혼잡 윈도우 크기결정 등

     - TCP는 혼잡제어를 위해 수신 윈도우(rwnd) 및 혼잡 윈도우(cwnd) 2개의 변수를 관리
        . 이 중 최소가되는 크기를 윈도우 크기로 잡게됨

  ㅇ 비 실시간적 응용
     - TCP는 데이터의 전달에 대한 보장을 하지만, 전달에 따른 지연에는 취약하므로
       실시간적 응용에는 통상 UDP 를 사용

  ㅇ TCP 활용 
     - 상위 프로토콜 지원 : HTTP, FTP, SMTP 듬
     - 응용 지원 : TELNET, rlogin, , 전자우편3. TCP 패킷의 구조 IP datagram 안에 TCP data가 캡슐화 

     - TCP 패킷 헤더 구성         ☞  TCP Header
        . 꽤 크고 유연한 헤더 구조를 갖음 (기본 20 ~ 최대 60 바이트)
     - TCP 포트의 식별번호        ☞  포트 번호, 소켓 주소
        . 양단 간 연결 식별을 소켓 식별자(IP주소포트번호 쌍)로 함
     - TCP 연결회선의 제어관리    ☞  TCP 제어 플래그
        . TCP 세그먼트데이터 운반용인지, 그냥 제어용인지 등을 TCP 제어 플래그에 표시
     - TCP 연결 관리 기능의 확장  ☞  TCP 옵션


4. TCP가 신뢰성,전송효율성,흐름제어가 있도록 하는 기법들체크섬 (Checksum)    ☞ TCP Checksum (TCP 헤더 내 16 비트 검사합 필드 있음)
     - 전송되는 데이타 손상 여부 점검 

  ㅇ 순서번호 (Sequence Number) 및 확인응답 번호 (Acknowledgement 번호)
     - 순서 번호      : 순서가 어긋나지 않도록 함
     - 확인 응답 번호 : 실제 수신 여부 확인 및 그 다음 순서를 지시함

  ㅇ 재전송 및 시간제한   ☞ TCP 재전송, TCP 타이머
     - 정해진 시간(RTO)이 지나면 또는 중복 ACK가 도착하면 재전송 시도 등

  ※ 위 3개 모두 상호 밀접한 연관관계가 있음


5. 관련 RFC

  ㅇ 최초버전 :  RFC 793 (Transmission Control Protocol, 1981)
  ㅇ 오류수정 :  RFC 1122
  ㅇ 개선확장
     - 재전송 타임아웃 : RFC 6298, 5682, 4015 등
     - 혼잡제어 : RFC 2581, 5681, 3782, 3517, 3390, 3168 등 
     - 확인응답 : RFC 2018, 2883
     - 보안 : RFC 6056, 5927, 5926
     - 윈도우 크기,타임스탬프 : RFC 1323
     - NAT : RFC 5382
     - 긴급 메커니즘 : RFC 6093

TCP
   1. TCP  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"