TCP   Transmission Control Protocol  

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

  ㅇ 양종단 호스트프로세스 상호 간에 신뢰적연결지향성 서비스를 제공
     - 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는 혼잡제어를 위해 수신 윈도우(rwnd) 및 혼잡 윈도우(cwnd) 2개의 변수를 관리
        . 이 중 최소가되는 크기를 윈도우 크기로 잡게됨

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

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

     - TCP 패킷 헤더 구성         ☞  TCP Header
        . 꽤 크고 유연한 헤더 구조를 갖음
     - 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
[TCP 패킷(세그먼트)] [TCP 연결관리] [TCP 오류제어] [TCP 흐름/혼잡 제어] [TCP 기타사항]
  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 연결관리
            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.   기술경영

 
        최근수정     요약목록(시험중)     참고문헌