TCP는 다음을 의미합니다. 전송 제어 프로토콜 . 소스에서 대상으로 패킷 전송을 용이하게 하는 전송 계층 프로토콜입니다. 이는 네트워크의 컴퓨팅 장치 간에 발생하는 통신에 앞서 연결을 설정하는 것을 의미하는 연결 지향 프로토콜입니다. 이 프로토콜은 IP 프로토콜과 함께 사용되므로 함께 TCP/IP라고 합니다.
TCP의 주요 기능은 애플리케이션 계층에서 데이터를 가져오는 것입니다. 그런 다음 데이터를 여러 개의 패킷으로 나누고, 이러한 패킷에 번호를 부여한 다음, 최종적으로 이 패킷을 대상으로 전송합니다. 반면에 TCP는 패킷을 재조립하여 애플리케이션 계층으로 전송합니다. TCP가 연결 지향 프로토콜이라는 것을 알고 있으므로 발신자와 수신자 간의 통신이 완료되지 않을 때까지 연결이 유지됩니다.
배우 사이 팔라비
TCP 프로토콜의 특징
TCP 프로토콜의 특징은 다음과 같습니다.
TCP는 송신자로부터 수신자에게 데이터를 전송하는 데 사용되는 전송 계층 프로토콜입니다.
TCP는 흐름 및 오류 제어 메커니즘을 따르기 때문에 신뢰할 수 있는 프로토콜입니다. 또한 데이터의 상태와 소리 도착을 확인하는 승인 메커니즘도 지원합니다. 승인 메커니즘에서 수신자는 데이터 패킷이 수신되었는지 또는 재전송해야 하는지 여부를 발신자가 알 수 있도록 발신자에게 긍정적 또는 부정적 승인을 보냅니다.
이 프로토콜은 데이터가 전송된 순서와 동일한 순서로 의도한 수신자에게 도달하도록 보장합니다. 대상 측의 TCP 계층이 순서에 따라 세그먼트를 다시 조립할 수 있도록 각 세그먼트에 순서를 지정하고 번호를 매깁니다.
연결이 설정된 후에만 데이터 교환이 발생하는 연결 지향 서비스입니다. 데이터 전송이 완료되면 연결이 종료됩니다.
자바 arraylist 메소드
전이중이란 데이터가 동시에 양방향으로 전송될 수 있음을 의미합니다.
TCP는 송신자가 바이트 스트림 형태로 데이터를 보낼 수 있도록 하고 수신자가 바이트 스트림 형태로 데이터를 받을 수 있도록 허용하는 스트림 지향 프로토콜입니다. TCP는 송신자와 수신자 모두 가상 회선이라는 가상의 튜브로 연결되는 환경을 만듭니다. 이 가상 회로는 인터넷을 통해 바이트 스트림을 전달합니다.
전송 제어 프로토콜의 필요성
네트워크 모델의 계층화된 아키텍처에서는 전체 작업이 더 작은 작업으로 나뉩니다. 각 작업은 작업을 처리하는 특정 계층에 할당됩니다. 에서 TCP/IP 모델 , 5개 계층은 애플리케이션 계층, 전송 계층, 네트워크 계층 , 데이터 링크 계층 및 물리 계층. 전송 계층은 애플리케이션 프로세스에 직접 엔드투엔드 통신을 제공하는 데 중요한 역할을 합니다. 여러 애플리케이션에 동시에 액세스할 수 있도록 65,000개의 포트를 생성합니다. 상위 계층에서 데이터를 가져와서 데이터를 더 작은 패킷으로 나눈 다음 네트워크 계층으로 전송합니다.
TCP의 작동
TCP에서는 3방향 핸드셰이킹을 사용하여 연결이 설정됩니다. 클라이언트는 시퀀스 번호와 함께 세그먼트를 보냅니다. 그 대가로 서버는 자체 시퀀스 번호와 클라이언트 시퀀스 번호보다 하나 더 많은 승인 시퀀스를 포함하는 세그먼트를 보냅니다. 클라이언트가 해당 세그먼트에 대한 승인을 받으면 해당 승인을 서버로 보냅니다. 이런 방식으로 클라이언트와 서버 사이에 연결이 설정됩니다.
TCP의 장점
- 연결 지향의 안정적인 서비스를 제공합니다. 즉, 데이터 패킷의 전달을 보장합니다. 데이터 패킷이 네트워크 전체에서 손실되면 TCP는 손실된 패킷을 다시 보냅니다.
- 슬라이딩 윈도우 프로토콜을 사용하여 흐름 제어 메커니즘을 제공합니다.
- 체크섬을 이용한 오류 감지 기능과 Go Back 또는 ARP 프로토콜을 이용한 오류 제어 기능을 제공합니다.
- AIMD(Additive 증가/Multiplicative 감소), Slow Start, 혼잡 윈도우 등 다양한 방식을 포함하는 네트워크 혼잡 회피 알고리즘을 사용하여 혼잡을 제거합니다.
TCP의 단점
각 세그먼트가 자체 TCP 헤더를 가져오므로 오버헤드가 많이 증가하므로 라우터에 의한 조각화로 인해 오버헤드가 증가합니다.
TCP 헤더 형식
6개의 제어 비트 또는 플래그가 있습니다.
16비트 필드입니다. 수신자가 받아들일 수 있는 데이터의 크기를 포함합니다. 이 필드는 송신자와 수신자 간의 흐름 제어에 사용되며 세그먼트에 대해 수신자가 할당하는 버퍼의 양도 결정합니다. 이 필드의 값은 수신자에 의해 결정됩니다.
16비트 필드입니다. UDP에서는 선택사항이지만, TCP/IP의 경우에는 필수입니다.
URG 플래그가 1로 설정된 경우 긴급 데이터 바이트를 가리키는 포인터입니다. 마지막 긴급 바이트의 시퀀스 번호를 얻기 위해 시퀀스 번호에 추가되는 값을 정의합니다.
추가 옵션을 제공합니다. 선택적 필드는 32비트로 표시됩니다. 이 필드에 32비트 미만의 데이터가 포함되어 있으면 나머지 비트를 얻기 위해 패딩이 필요합니다.