TCP vs UDP : 신뢰성 대 효율 토론을 시연합니다

오늘 우리는 TCP에 중점을 두어 시작할 것입니다. 레이어링에 관한 장의 앞부분에서 우리는 중요한 요점을 언급했습니다. 네트워크 계층에서 아래에서 호스트에 대한 호스트에 관한 것입니다. 즉, 컴퓨터가 다른 컴퓨터를 연결하려면 다른 컴퓨터가 어디에 있는지 알아야합니다. 그러나 네트워크에서의 통신은 종종 상계 간 통신보다는 의사 소통입니다. 따라서 TCP 프로토콜은 포트의 개념을 소개합니다. 포트는 하나의 프로세스 만 차지할 수 있으며,이 프로세스는 다른 호스트에서 실행되는 응용 프로그램간에 직접적인 통신을 제공합니다.

전송 계층의 작업은 다른 호스트에서 실행되는 응용 프로그램 프로세스간에 직접 통신 서비스를 제공하는 방법이므로 엔드 투 엔드 프로토콜이라고도합니다. 전송 계층은 네트워크의 핵심 세부 사항을 숨겨서 응용 프로그램 프로세스가 두 전송 계층 엔티티 사이에 논리적 엔드 투 엔드 통신 채널이있는 것처럼 볼 수 있습니다.

TCP는 전송 제어 프로토콜을 나타 내며 연결 지향 프로토콜이라고합니다. 즉, 한 응용 프로그램이 다른 응용 프로그램을 다른 응용 프로그램으로 보내기 전에 두 프로세스가 핸드 셰이크를 수행해야 함을 의미합니다. 핸드 셰이크는 신뢰할 수있는 전송 및 데이터 수신을 보장하는 논리적으로 연결된 프로세스입니다. 핸드 셰이크 중에 일련의 컨트롤 패킷을 교환하고 성공적인 데이터 전송을 보장하기 위해 일부 매개 변수 및 규칙에 동의하여 소스와 대상 호스트 간의 연결이 설정됩니다.

TCP 란 무엇입니까? (mylinking 's네트워크 탭그리고네트워크 패킷 브로커TCP 또는 UDP 패킷을 모두 처리 할 수 ​​있습니다)
TCP (Transmission Control Protocol)는 연결 지향적이고 신뢰할 수있는 바이트 스트림 기반 전송 계층 통신 프로토콜입니다.

연결 지향: Connection-Oriented는 TCP 통신이 일대일, 즉 UDP와 달리 Point-to-Point 엔드 투 엔드 커뮤니케이션이라는 것을 의미합니다. UDP와 달리 여러 호스트에게 동시에 메시지를 보낼 수 있으므로 일대일 통신을 달성 할 수 없습니다.
믿을 수 있는: TCP의 신뢰성은 네트워크 링크의 변경에 관계없이 패킷이 수신기에 안정적으로 전달되도록하여 TCP의 프로토콜 패킷 형식을 UDP보다 복잡하게 만듭니다.
바이트 스트림 기반: TCP의 바이트 스트림 기반 특성은 모든 크기의 메시지를 전송하고 메시지 순서를 보증 할 수 있습니다. 이전 메시지가 완전히 수신되지 않았으며 후속 바이트를 수신하더라도 TCP는 처리를 위해 응용 프로그램 계층으로 전달하지 않으며 자동으로 중복 패킷을 삭제합니다.
호스트 A와 호스트 B가 연결을 설정하면 응용 프로그램은 가상 통신 라인을 사용하여 데이터를 보내고 수신하여 데이터 전송을 보장하면됩니다. TCP 프로토콜은 연결 설정, 단절 및 유지와 같은 작업을 제어 할 책임이 있습니다. 여기서 우리는 가상 선이 연결을 설정하는 것만 의미한다고 말하면, TCP 프로토콜 연결은 양측이 데이터 전송을 시작하고 데이터의 신뢰성을 보장 할 수 있음을 나타냅니다. 라우팅 및 전송 노드는 네트워크 장치에 의해 처리됩니다. TCP 프로토콜 자체는 이러한 세부 사항과 관련이 없습니다.

TCP 연결은 전이중 서비스이며, 이는 호스트 A와 호스트 B가 TCP 연결에서 양방향으로 데이터를 전송할 수 있음을 의미합니다. 즉, 데이터는 양방향 흐름에서 호스트 A와 호스트 B 사이에 전송 될 수 있습니다.

TCP는 Connection의 Send 버퍼에 데이터를 임시로 저장합니다. 이 보내기 버퍼는 3 방향 핸드 셰이크 중에 설정된 캐시 중 하나입니다. 그 후, TCP는 적절한 시간에 대상 호스트의 수신 캐시로 보내는 캐시의 데이터를 보내는 캐시의 데이터를 보냅니다. 실제로 각 피어는 여기에 표시된대로 보내는 캐시와 수신 캐시가 있습니다.

TCP-UDP

Send 버퍼는 발신자 측의 TCP 구현에 의해 유지되는 메모리 영역이며, 이는 전송 될 데이터를 임시로 저장하는 데 사용됩니다. 연결을 설정하기 위해 3 방향 핸드 셰이크가 수행되면 보내기 캐시가 설정되어 데이터를 저장하는 데 사용됩니다. 전송 버퍼는 네트워크 혼잡과 수신기의 피드백에 따라 동적으로 조정됩니다.

수신 버퍼는 수신 된 데이터를 일시적으로 저장하는 데 사용되는 수신 측의 TCP 구현에 의해 유지되는 메모리 영역입니다. TCP는 수신 된 데이터를 수신 캐시에 저장하고 상단 응용 프로그램이 읽을 때까지 기다립니다.

캐시가 가득 차면 TCP는 신뢰할 수있는 데이터 전송 및 네트워크 안정성을 보장하기 위해 혼잡 제어, 흐름 제어 등과 같은 일부 전략을 채택 할 수 있습니다.

컴퓨터 네트워크에서 호스트 간의 데이터 전송은 세그먼트를 통해 수행됩니다. 그렇다면 패킷 세그먼트는 무엇입니까?

TCP는 들어오는 스트림을 청크로 분할하고 각 청크에 TCP 헤더를 추가하여 TCP 세그먼트 또는 패킷 세그먼트를 만듭니다. 각 세그먼트는 제한된 시간 동안 만 전송 될 수 있으며 최대 세그먼트 크기 (MSS)를 초과 할 수 없습니다. 내려 가면 패킷 세그먼트는 링크 계층을 통과합니다. 링크 계층은 최대 전송 장치 (MTU)를 가지며, 이는 데이터 링크 계층을 통과 할 수있는 최대 패킷 크기입니다. 최대 전송 장치는 일반적으로 통신 인터페이스와 관련이 있습니다.

그렇다면 MSS와 MTU의 차이점은 무엇입니까?

컴퓨터 네트워크에서는 계층 구조가 다른 수준의 차이점을 고려하기 때문에 매우 중요합니다. 각 레이어는 이름이 다릅니다. 전송 계층에서 데이터를 세그먼트라고하며 네트워크 계층에서 데이터를 IP 패킷이라고합니다. 따라서 MTU (최대 전송 장치)는 네트워크 계층으로 전송할 수있는 최대 IP 패킷 크기로 생각할 수있는 반면, 최대 세그먼트 크기 (MSS)는 TCP 패킷으로 한 번에 TCP 패킷으로 전송할 수있는 최대량의 데이터 양을 나타내는 전송 계층 개념입니다.

최대 세그먼트 크기 (MS)가 최대 전송 장치 (MTU)보다 큰 경우 네트워크 계층에서 IP 조각화가 수행되며 TCP는 더 큰 데이터를 MTU 크기에 적합한 세그먼트로 분할하지 않습니다. IP 계층 전용 네트워크 계층에 섹션이 있습니다.

TCP 패킷 세그먼트 구조
TCP 헤더의 형식과 내용을 살펴 보겠습니다.

TCP 세그먼트

시퀀스 번호: TCP 연결이 설정 될 때 연결이 초기 값으로 연결되고 시퀀스 번호가 Syn 패킷을 통해 수신기로 전송 될 때 컴퓨터에 의해 생성 된 임의의 숫자. 데이터 전송 중에 발신자는 전송 된 데이터 양에 따라 시퀀스 번호를 증가시킵니다. 수신자는 수신 된 시퀀스 번호에 따라 데이터의 순서를 판단합니다. 데이터가 순서대로 발견되면 수신기는 데이터의 순서를 보장하기 위해 데이터를 재정렬합니다.

승인 번호: 이것은 데이터 수령을 승인하는 데 TCP에서 사용되는 시퀀스 번호입니다. 발신자가받을 것으로 예상되는 다음 데이터의 시퀀스 번호를 나타냅니다. TCP 연결에서 수신자는 수신 된 데이터 패킷 세그먼트의 시퀀스 수에 따라 성공적으로 수신 된 데이터를 결정합니다. 수신기가 데이터를 성공적으로 수신하면 ACK 패킷을 발신자에게 보내 승인 승인 번호가 포함되어 있습니다. ACK 패킷을 수신 한 후 발신자는 응답 번호를 확인하기 전에 데이터가 성공적으로 수신되었음을 확인할 수 있습니다.

TCP 세그먼트의 제어 비트에는 다음이 포함됩니다.

ACK 비트:이 비트가 1 인 경우 승인 회신 필드가 유효 함을 의미합니다. TCP는 연결이 처음 설정 될 때 SYN 패킷을 제외 하고이 비트가 1으로 설정되어야 함을 지정합니다.
첫 비트:이 비트가 1 인 경우 TCP 연결에 예외가 있으며 연결을 분리해야 함을 나타냅니다.
동기 비트:이 비트가 1으로 설정되면 연결이 설정되고 시퀀스 번호의 초기 값이 시퀀스 번호 필드에 설정됨을 의미합니다.
핀 비트:이 비트가 1 인 경우, 향후 더 이상 데이터가 전송되지 않고 연결이 필요하다는 것을 의미합니다.
TCP의 다양한 기능과 특성은 TCP 패킷 세그먼트의 구조에 의해 구현된다.

UDP는 무엇입니까? (mylinking 's네트워크 탭그리고네트워크 패킷 브로커TCP 또는 UDP 패킷을 모두 처리 할 수 ​​있습니다)
UDP (User Datagram Protocol)는 연결이없는 통신 프로토콜입니다. TCP와 비교하여 UDP는 복잡한 제어 메커니즘을 제공하지 않습니다. UDP 프로토콜을 사용하면 응용 프로그램이 연결을 설정하지 않고 캡슐화 된 IP 패킷을 직접 보낼 수 있습니다. 개발자가 TCP 대신 UDP를 사용하기로 선택하면 응용 프로그램은 IP와 직접 통신합니다.

UDP 프로토콜의 전체 이름은 사용자 데이터 그램 프로토콜이며 헤더는 8 바이트 (64 비트)에 불과하며 매우 간결합니다. UDP 헤더의 형식은 다음과 같습니다.

UDP 세그먼트

대상 및 소스 포트: 그들의 주요 목적은 UDP가 패킷을 보내야하는 프로세스를 나타내는 것입니다.
패킷 크기: 패킷 크기 필드는 UDP 헤더의 크기와 데이터 크기를 유지합니다.
체크섬: UDP 헤더와 데이터를 안정화시키기 위해 설계된 체크섬의 역할은 데이터의 무결성을 보장하기 위해 UDP 패킷을 전송하는 동안 오류 또는 손상이 발생했는지 여부를 감지하는 것입니다.

MyLinking의 TCP와 UDP의 차이점네트워크 탭그리고네트워크 패킷 브로커TCP 또는 UDP 패킷을 모두 처리 할 수 ​​있습니다
TCP 및 UDP는 다음과 같은 측면에서 다릅니다.

TCP 대 UDP

연결: TCP는 데이터를 전송하기 전에 연결을 설정 해야하는 연결 지향 전송 프로토콜입니다. 반면에 UDP는 연결이 필요하지 않으며 즉시 데이터를 전송할 수 있습니다.

서비스 객체: TCP는 일대일 2 포인트 서비스입니다. 즉, 연결에는 서로 통신 할 두 가지 단점이 있습니다. 그러나 UDP는 동시에 여러 호스트와 통신 할 수있는 일대일, 일대일 및 다수의 대화식 커뮤니케이션을 지원합니다.

신뢰할 수 있음: TCP는 데이터를 안정적으로 전달하는 서비스를 제공하여 데이터가 오류가없고 손실이없고, 복잡하지 않으며, 주문시 도착하도록합니다. 반면에 UDP는 최선의 노력을 기울이고 신뢰할 수있는 배송을 보장하지 않습니다. UDP는 전송 중 데이터 손실 및 기타 상황으로 고통받을 수 있습니다.

정체 제어, 흐름 제어: TCP에는 정체 제어 및 흐름 제어 메커니즘이있어 네트워크 조건에 따라 데이터 전송 속도를 조정하여 데이터 전송의 보안 및 안정성을 보장 할 수 있습니다. UDP에는 정체 제어 및 흐름 제어 메커니즘이 없으며 네트워크가 매우 혼잡하더라도 UDP 전송 속도를 조정하지 않습니다.

헤더 오버 헤드: TCP는 헤더 길이가 길고 일반적으로 20 바이트를 가지며 옵션 필드를 사용할 때 증가합니다. 반면에 UDP는 고정 된 헤더 만 8 바이트 만 있으므로 UDP는 헤더 오버 헤드가 낮습니다.

TCP 대 UDP

TCP 및 UDP 응용 프로그램 시나리오 :
TCP와 UDP는 두 가지 다른 전송 계층 프로토콜이며 응용 프로그램 시나리오에는 약간의 차이가 있습니다.

TCP는 연결 지향 프로토콜이므로 신뢰할 수있는 데이터 전달이 필요한 시나리오에서 주로 사용됩니다. 일부 일반적인 사용 사례는 다음과 같습니다.

FTP 파일 전송: TCP는 전송 중에 파일이 손실되고 손상되지 않도록 할 수 있습니다.
HTTP/HTTPS: TCP는 웹 컨텐츠의 무결성과 정확성을 보장합니다.
UDP는 연결이없는 프로토콜이므로 신뢰성 보장을 제공하지는 않지만 효율성과 실시간의 특성이 있습니다. UDP는 다음 시나리오에 적합합니다.

DNS (도메인 이름 시스템)와 같은 저 포켓 트래픽: DNS 쿼리는 일반적으로 짧은 패킷이며 UDP는 더 빨리 완성 할 수 있습니다.
비디오 및 오디오와 같은 멀티미디어 커뮤니케이션: 실시간 요구 사항이 높은 멀티미디어 전송의 경우 UDP는 데이터를 적시에 전송할 수 있도록 낮은 대기 시간을 제공 할 수 있습니다.
방송 커뮤니케이션: UDP는 일대일 및 다수의 커뮤니케이션을 지원하며 방송 메시지 전송에 사용할 수 있습니다.

요약
오늘 우리는 TCP에 대해 배웠습니다. TCP는 연결 지향적이고 신뢰할 수있는 바이트 스트림 기반 전송 계층 통신 프로토콜입니다. 연결, 핸드 셰이크 및 승인을 설정하여 신뢰할 수있는 전송 및 데이터 수신을 보장합니다. TCP 프로토콜은 포트를 사용하여 프로세스 간의 통신을 실현하고 다른 호스트에서 실행되는 응용 프로그램 프로세스에 대한 직접 통신 서비스를 제공합니다. TCP 연결은 전이중이므로 동시 양방향 데이터 전송이 가능합니다. 대조적으로, UDP는 신뢰성 보장을 제공하지 않으며 실시간 요구 사항이 높은 일부 시나리오에 적합한 연결이없는 지향 통신 프로토콜입니다. TCP 및 UDP는 연결 모드, 서비스 객체, 신뢰성, 정체 제어, 흐름 제어 및 기타 측면에서 다르며 응용 프로그램 시나리오도 다릅니다.


후 시간 : Dec-03-2024