logo

전송 제어 프로토콜(TCP)이란 무엇입니까?

TCP는 다음을 의미합니다. 전송 제어 프로토콜 . 소스에서 대상으로 패킷 전송을 용이하게 하는 전송 계층 프로토콜입니다. 이는 네트워크의 컴퓨팅 장치 간에 발생하는 통신에 앞서 연결을 설정하는 것을 의미하는 연결 지향 프로토콜입니다. 이 프로토콜은 IP 프로토콜과 함께 사용되므로 함께 TCP/IP라고 합니다.

TCP의 주요 기능은 애플리케이션 계층에서 데이터를 가져오는 것입니다. 그런 다음 데이터를 여러 개의 패킷으로 나누고, 이러한 패킷에 번호를 부여한 다음, 최종적으로 이 패킷을 대상으로 전송합니다. 반면에 TCP는 패킷을 재조립하여 애플리케이션 계층으로 전송합니다. TCP가 연결 지향 프로토콜이라는 것을 알고 있으므로 발신자와 수신자 간의 통신이 완료되지 않을 때까지 연결이 유지됩니다.

배우 사이 팔라비

TCP 프로토콜의 특징

TCP 프로토콜의 특징은 다음과 같습니다.

    전송 계층 프로토콜

TCP는 송신자로부터 수신자에게 데이터를 전송하는 데 사용되는 전송 계층 프로토콜입니다.

    믿을 수 있는

TCP는 흐름 및 오류 제어 메커니즘을 따르기 때문에 신뢰할 수 있는 프로토콜입니다. 또한 데이터의 상태와 소리 도착을 확인하는 승인 메커니즘도 지원합니다. 승인 메커니즘에서 수신자는 데이터 패킷이 수신되었는지 또는 재전송해야 하는지 여부를 발신자가 알 수 있도록 발신자에게 긍정적 또는 부정적 승인을 보냅니다.

    데이터의 순서가 유지됩니다

이 프로토콜은 데이터가 전송된 순서와 동일한 순서로 의도한 수신자에게 도달하도록 보장합니다. 대상 측의 TCP 계층이 순서에 따라 세그먼트를 다시 조립할 수 있도록 각 세그먼트에 순서를 지정하고 번호를 매깁니다.

    연결 지향

연결이 설정된 후에만 데이터 교환이 발생하는 연결 지향 서비스입니다. 데이터 전송이 완료되면 연결이 종료됩니다.

자바 arraylist 메소드
    전이중

전이중이란 데이터가 동시에 양방향으로 전송될 수 있음을 의미합니다.

    스트림 지향

TCP는 송신자가 바이트 스트림 형태로 데이터를 보낼 수 있도록 하고 수신자가 바이트 스트림 형태로 데이터를 받을 수 있도록 허용하는 스트림 지향 프로토콜입니다. TCP는 송신자와 수신자 모두 가상 회선이라는 가상의 튜브로 연결되는 환경을 만듭니다. 이 가상 회로는 인터넷을 통해 바이트 스트림을 전달합니다.

전송 제어 프로토콜의 필요성

네트워크 모델의 계층화된 아키텍처에서는 전체 작업이 더 작은 작업으로 나뉩니다. 각 작업은 작업을 처리하는 특정 계층에 할당됩니다. 에서 TCP/IP 모델 , 5개 계층은 애플리케이션 계층, 전송 계층, 네트워크 계층 , 데이터 링크 계층 및 물리 계층. 전송 계층은 애플리케이션 프로세스에 직접 엔드투엔드 통신을 제공하는 데 중요한 역할을 합니다. 여러 애플리케이션에 동시에 액세스할 수 있도록 65,000개의 포트를 생성합니다. 상위 계층에서 데이터를 가져와서 데이터를 더 작은 패킷으로 나눈 다음 네트워크 계층으로 전송합니다.

TCP

TCP의 작동

TCP에서는 3방향 핸드셰이킹을 사용하여 연결이 설정됩니다. 클라이언트는 시퀀스 번호와 함께 세그먼트를 보냅니다. 그 대가로 서버는 자체 시퀀스 번호와 클라이언트 시퀀스 번호보다 하나 더 많은 승인 시퀀스를 포함하는 세그먼트를 보냅니다. 클라이언트가 해당 세그먼트에 대한 승인을 받으면 해당 승인을 서버로 보냅니다. 이런 방식으로 클라이언트와 서버 사이에 연결이 설정됩니다.

TCP

TCP의 장점

  • 연결 지향의 안정적인 서비스를 제공합니다. 즉, 데이터 패킷의 전달을 보장합니다. 데이터 패킷이 네트워크 전체에서 손실되면 TCP는 손실된 패킷을 다시 보냅니다.
  • 슬라이딩 윈도우 프로토콜을 사용하여 흐름 제어 메커니즘을 제공합니다.
  • 체크섬을 이용한 오류 감지 기능과 Go Back 또는 ARP 프로토콜을 이용한 오류 제어 기능을 제공합니다.
  • AIMD(Additive 증가/Multiplicative 감소), Slow Start, 혼잡 윈도우 등 다양한 방식을 포함하는 네트워크 혼잡 회피 알고리즘을 사용하여 혼잡을 제거합니다.

TCP의 단점

각 세그먼트가 자체 TCP 헤더를 가져오므로 오버헤드가 많이 증가하므로 라우터에 의한 조각화로 인해 오버헤드가 증가합니다.

TCP 헤더 형식

TCP
    소스 포트:데이터를 보내는 애플리케이션의 포트를 정의합니다. 따라서 이 필드에는 16비트인 소스 포트 주소가 포함됩니다.대상 포트:수신 측에서 애플리케이션의 포트를 정의합니다. 따라서 이 필드에는 16비트인 대상 포트 주소가 포함됩니다.시퀀스 번호:이 필드에는 특정 세션의 데이터 바이트 시퀀스 번호가 포함됩니다.승인 번호:ACK 플래그가 설정되면 이는 데이터 바이트의 다음 시퀀스 번호를 포함하고 수신된 이전 데이터에 대한 승인으로 작동합니다. 예를 들어, 수신자가 세그먼트 번호 'x'를 수신하면 'x+1'을 승인 번호로 응답합니다.헬렌:헤더의 4바이트 단어로 표시되는 헤더의 길이를 지정합니다. 헤더의 크기는 20~60바이트입니다. 따라서 이 필드의 값은 5에서 15 사이입니다.예약된:향후 사용을 위해 예약된 4비트 필드이며 기본적으로 모두 0으로 설정됩니다.플래그
    6개의 제어 비트 또는 플래그가 있습니다.
      촉구:긴급 포인터를 나타냅니다. 설정되면 데이터가 긴급하게 처리됩니다.ACK:ACK가 0으로 설정되면 데이터 패킷에 승인이 포함되어 있지 않음을 의미합니다.PSH:이 필드가 설정되면 수신 장치에 데이터를 버퍼링하지 않고 수신 애플리케이션에 푸시하도록 요청합니다.우선:설정된 경우 연결을 다시 시작하도록 요청합니다.동기화:호스트 간의 연결을 설정하는 데 사용됩니다.끝:연결을 해제하는 데 사용되며 더 이상 데이터 교환이 발생하지 않습니다.
    창 크기
    16비트 필드입니다. 수신자가 받아들일 수 있는 데이터의 크기를 포함합니다. 이 필드는 송신자와 수신자 간의 흐름 제어에 사용되며 세그먼트에 대해 수신자가 할당하는 버퍼의 양도 결정합니다. 이 필드의 값은 수신자에 의해 결정됩니다.체크섬
    16비트 필드입니다. UDP에서는 선택사항이지만, TCP/IP의 경우에는 필수입니다.긴급 포인터
    URG 플래그가 1로 설정된 경우 긴급 데이터 바이트를 가리키는 포인터입니다. 마지막 긴급 바이트의 시퀀스 번호를 얻기 위해 시퀀스 번호에 추가되는 값을 정의합니다.옵션
    추가 옵션을 제공합니다. 선택적 필드는 32비트로 표시됩니다. 이 필드에 32비트 미만의 데이터가 포함되어 있으면 나머지 비트를 얻기 위해 패딩이 필요합니다.