>일반적인 문제 >안정적인 전송을 제공하는 전송 계층 프로토콜은 무엇입니까?

안정적인 전송을 제공하는 전송 계층 프로토콜은 무엇입니까?

青灯夜游
青灯夜游원래의
2021-07-12 14:06:3323843검색

신뢰할 수 있는 전송을 제공하는 전송 계층 프로토콜은 TCP입니다. TCP(전송 제어 프로토콜)는 연결 지향적이고 안정적인 바이트 스트림 기반 전송 계층 통신 프로토콜로, 신뢰할 수 없는 인터넷 전송 프로토콜에서 안정적인 종단 간 바이트 스트림을 제공하도록 특별히 설계되었습니다.

안정적인 전송을 제공하는 전송 계층 프로토콜은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, Dell G3 컴퓨터.

TCP/IP 프로토콜 제품군에는 TCP(전송 제어 프로토콜)와 UDP(사용자 데이터그램 프로토콜)의 두 가지 전송 프로토콜이 있습니다. TCP 프로토콜은 연결 지향 프로토콜로 상대적으로 신뢰성이 높고 안전하며 안정적이지만 효율성이 떨어지고 리소스를 많이 차지합니다. UDP 프로토콜은 매우 효율적이고 빠르며 리소스를 거의 차지하지 않는 프로토콜입니다. 그러나 전송 메커니즘은 신뢰할 수 없으며 전송 제어를 완료하려면 보조 알고리즘에 의존해야 합니다.

따라서 신뢰할 수 있는 전송을 제공하는 전송 계층 프로토콜은 TCP입니다.

TCP는 다중 네트워크 애플리케이션을 지원하는 계층화된 프로토콜 계층 구조를 수용하도록 설계되었습니다. TCP는 서로 다르지만 상호 연결된 컴퓨터 통신 네트워크에 연결된 호스트 컴퓨터의 프로세스 쌍 간에 안정적인 통신 서비스를 제공하는 데 사용됩니다. TCP는 하위 수준 프로토콜에서 단순하고 신뢰할 수 없는 데이터그램 서비스를 얻을 수 있다고 가정합니다. 원칙적으로 TCP는 유선 연결부터 패킷 교환 또는 회선 교환 네트워크에 이르기까지 다양한 통신 시스템 위에서 작동할 수 있어야 합니다.

TCP 전송 제어 프로토콜은 신뢰할 수 없는 인터넷 네트워크에서 안정적인 종단 간 바이트 스트림을 제공하도록 특별히 설계된 전송 프로토콜입니다.

주요 기능:

애플리케이션 계층에서 네트워크 간 전송을 위해 8비트 바이트로 표시되는 데이터 스트림을 TCP 계층으로 보내면 TCP는 데이터 스트림을 적절한 길이의 메시지 세그먼트로 나누어 최대 전송 세그먼트는 크기(MSS)는 일반적으로 이 컴퓨터가 연결된 네트워크의 데이터 링크 계층의 최대 전송 단위(MTU)에 의해 제한됩니다. 그런 다음 TCP는 데이터 패킷을 IP 계층으로 전달하고, IP ​​계층은 네트워크를 통해 패킷을 수신 엔터티의 TCP 계층으로 전달합니다.

메시지 전송의 신뢰성을 보장하기 위해 TCP는 각 패킷에 시퀀스 번호를 부여하는 동시에 수신측 엔터티에 전송된 패킷이 순서대로 수신되도록 보장합니다. 그런 다음 수신 엔터티는 성공적으로 수신된 바이트에 대한 해당 승인(ACK)을 다시 보냅니다. 전송 엔터티가 합리적인 왕복 지연(RTT) 내에 승인을 받지 못하면 해당 데이터(손실된 것으로 가정)가 재전송됩니다. .

  • 데이터의 정확성과 합법성 측면에서 TCP는 체크섬 기능을 사용하여 데이터에 오류가 있는지 확인합니다. 체크섬은 전송 및 수신과 동시에 계산되어야 하며, 데이터를 암호화하는 데 md5 인증을 사용할 수 있습니다.

  • 신뢰성을 보장하기 위해 시간 초과 재전송 및 피기백 확인 메커니즘이 채택되었습니다.

  • 흐름 제어를 위해 슬라이딩 윈도우 프로토콜이 채택되었습니다. 이 프로토콜은 윈도우 내에서 확인되지 않은 패킷을 재전송해야 한다고 규정합니다.

혼잡 제어 측면에서는 널리 호평을 받고 있는 TCP 혼잡 제어 알고리즘(AIMD 알고리즘이라고도 함)이 사용됩니다. 알고리즘은 주로 네 가지 주요 부분으로 구성됩니다.

(1) 느린 시작

TCP 연결이 설정되거나 TCP 연결 시간이 초과되어 재전송될 때마다 연결은 느린 시작 단계로 들어갑니다. 느린 시작에 들어간 후 TCP 엔터티는 혼잡 창의 크기를 하나의 세그먼트, 즉 cwnd=1로 초기화합니다. 이후 메시지 세그먼트에 대한 ACK(acknowledgement)가 수신될 때마다 cwnd 값은 1씩 증가한다. 즉, 혼잡 윈도우(Congestion Window)가 기하급수적으로 증가한다. cwnd 값이 느린 시작 임계값(ssthresh)을 초과하거나 세그먼트가 손실되어 재전송되면 느린 시작 단계가 종료됩니다. 전자는 혼잡회피 단계로 진입하고, 후자는 다시 느린 시작 단계로 진입한다.

(2) 혼잡 회피

느린 시작 단계에서 cwnd 값이 느린 시작 해석 값(ssthresh)을 초과하면 느린 시작 프로세스가 종료되고 TCP 연결이 혼잡 회피 단계로 들어갑니다. 혼잡 회피 단계에서는 전송된 각 cwnd 메시지 세그먼트가 완전히 확인된 후 cwnd 값이 1씩 증가합니다. 이 단계에서 cwnd 값은 선형적으로 증가합니다.

(3) 빠른 재전송

빠른 재전송은 시간 제한 재전송을 개선한 것입니다. 소스가 동일한 메시지에 대해 3개의 중복 승인을 받으면 메시지 세그먼트가 손실되었다고 판단하므로 재전송 타이머(RTO)가 만료될 때까지 기다리지 않고 손실된 메시지 세그먼트를 즉시 재전송합니다. 불필요한 대기 시간을 줄여줍니다.

(4) 빠른 복구

빠른 복구는 손실된 복구 메커니즘을 개선한 것입니다. 빠른 재전송 이후에는 느린 시작 과정을 거치지 않고 바로 혼잡회피 단계로 진입한다. 빠른 재전송 후 매번 ssthresh=cwnd/2, ewnd=ssthresh+3을 설정합니다. 이후 중복 승인을 받을 때마다 손실된 메시지 세그먼트와 여러 후속 메시지 세그먼트에 대한 누적 승인이 수신될 때까지 cwnd 값이 1씩 증가하고 cwnd=ssthresh가 설정되어 혼잡 회피 단계로 진입합니다.

더 많은 관련 지식을 알고 싶다면 FAQ 칼럼을 방문해주세요!

위 내용은 안정적인 전송을 제공하는 전송 계층 프로토콜은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.