트랜스포트 레이어

Transport layer
Four labelled stacked blocks. The blue block labelled "transport" is the second from the top.
인터넷 프로토콜 스택의 전송 계층입니다.

컴퓨터 네트워킹에서, 전송 계층은 인터넷 프로토콜 스위트와 OSI 모델에서 네트워크 스택의 프로토콜 계층 구조에서 방법의 개념적 분할이다.이 계층의 프로토콜은 애플리케이션을 [1]: §1.1.3 위한 엔드 투 엔드 통신 서비스를 제공합니다.접속 지향 통신, 신뢰성, 흐름 제어 및 다중화 등의 서비스를 제공합니다.

인터넷의 기반인 인터넷 프로토콜 [1]스위트의 전송 계층과 일반 네트워킹의 OSI 모델의 구현 세부사항과 의미론은 다르다.오늘날 이 인터넷 계층에서 사용되는 프로토콜은 모두 TCP/IP의 개발에서 비롯되었습니다.OSI 모델에서는, 트랜스포트 레이어는 레이어 4(L4)[2]라고 불리는 경우가 있습니다만, TCP/IP 에서는 번호가 매겨진 레이어는 사용되지 않습니다.

인터넷 프로토콜 스위트의 가장 잘 알려진 전송 프로토콜은 Transmission Control Protocol(TCP)입니다.이것은 connection 지향 전송에 사용되는 반면 connectionless User Datagram Protocol(UDP)은 단순한 메시징 전송에 사용됩니다.TCP는 신뢰할 수 있는 전송 및 데이터 스트림 서비스를 포함하는 상태 저장 설계로 인해 더 복잡한 프로토콜입니다.TCP와 UDP는 기본적으로 인터넷 상의 모든 트래픽을 구성하며 모든 주요 운영 체제에서 구현되는 유일한 프로토콜입니다.정의 및 구현된 추가 전송 계층 프로토콜에는 데이터그램 폭주 제어 프로토콜(DCCP)과 스트림 제어 전송 프로토콜(SCTP)이 포함됩니다.

서비스

트랜스포트 레이어 서비스는 트랜스포트 레이어 프로토콜에 대한 프로그래밍 인터페이스를 통해 애플리케이션에 전달됩니다.이 서비스에는, 다음의 기능이 포함됩니다.

  • 연결 지향 통신:애플리케이션이 사용자 데이터그램 프로토콜(UDP)과 인터넷 프로토콜(IP)의 데이터그램 모델과 같은 기본 연결 없는 모델을 다루어야 하는 것보다 일반적으로 연결을 데이터 스트림으로 해석하는 것이 더 쉽다.
  • 동일한 주문 배송:일반적으로 네트워크 계층은 데이터 패킷이 전송되었을 때와 같은 순서로 도착한다는 것을 보증하지 않지만, 이것은 바람직한 기능입니다.이것은, 통상, 세그먼트 번호를 사용해 행해지며, 수신측은 세그먼트 번호를 애플리케이션에 차례차례 전달합니다.이로 인해 헤드오브라인 블로킹이 발생할 수 있습니다.
  • 신뢰성: 네트워크의 congestion와 에러에 의해, 전송중에 패킷이 없어지는 일이 있습니다.전송 프로토콜은 체크섬과 같은 오류 검출 코드를 사용하여 데이터가 손상되지 않았는지 확인하고 ACK 또는 NACK 메시지를 송신자에게 전송하여 올바른 수신을 확인할 수 있습니다.자동 반복 요청 방식을 사용하여 손실되거나 손상된 데이터를 재발송할 수 있습니다.
  • 흐름 제어:고속 송신기가 수신 데이터 버퍼에서 지원할 수 있는 것보다 더 많은 데이터를 전송하여 버퍼 오버런을 발생시키지 않도록 하기 위해 두 노드 간의 데이터 전송 속도를 관리해야 하는 경우가 있습니다.또한 버퍼 언더런을 줄여 효율성을 향상할 수도 있습니다.
  • 폭주 회피:congestion 제어는, 통신 네트워크에의 트래픽의 엔트리를 제어할 수 있기 때문에, 중간 노드나 네트워크의 처리 기능 또는 링크 기능의 오버 서브 스크라이브를 회피해, 패킷의 송신 레이트를 삭감하는 등의 자원 삭감 조치를 취함으로써, congestion의 붕괴를 회피할 수 있습니다.예를 들어 자동 반복 요구에 의해 네트워크가 congestion 상태가 되는 경우가 있습니다. 상황은 슬로우 스타트 등의 congestion 회피를 흐름 제어에 추가하는 것으로 회피할 수 있습니다.이것에 의해, 송신 개시시 또는 패킷 재발송신 후에 대역폭의 소비량이 낮게 유지됩니다.
  • 다중화: 포트는 단일 노드에서 여러 엔드포인트를 제공할 수 있습니다.예를 들어, 우편 주소의 이름은 다중화의 일종으로, 같은 위치의 다른 수신자를 구별합니다.컴퓨터 애플리케이션은 각각 자신의 포트로 정보를 수신하기 때문에 동시에 여러 네트워크 서비스를 사용할 수 있습니다.TCP/IP 모델에서는 트랜스포트 층의 일부이지만 OSI 모델에서는 세션 층의 일부입니다.

분석.

전송 계층은 호스트 시스템의 적절한 응용 프로그램 프로세스로 데이터를 전송하는 역할을 합니다.여기에는, 다른 애플리케이션 프로세스로부터의 데이터의 통계적 다중화(즉, 데이터 세그먼트 형성, 각 트랜스포트층 데이터 세그먼트의 헤더에 소스 및 수신처 포트 번호 추가)가 포함됩니다.송신원 및 행선지 IP 주소와 함께, 포토 번호는 네트워크 소켓, 즉 프로세스간 통신의 식별 주소를 구성한다.OSI 모델에서는 이 기능은 세션층에서 지원됩니다.

예를 들어 UDP가 아닌 TCP와 같은 일부 전송 계층 프로토콜은 가상 회로를 지원합니다. 즉, 기본 패킷 지향 데이터그램 네트워크를 통해 연결 지향 통신을 제공합니다.애플리케이션 프로세스에 대한 패킷 모드 통신을 숨기면서 바이트 스트림을 전달한다.여기에는 접속 확립, 데이터 스트림의 세그먼트라고 불리는 패킷 분할, 세그먼트 번호부여 및 순서가 다른 데이터의 순서부여가 포함됩니다.

마지막으로, UDP가 아닌 TCP와 같은 일부 전송 계층 프로토콜은 엔드 투 엔드의 신뢰할 수 있는 통신, 즉 오류 검출 코드 자동 반복 요청(ARQ) 프로토콜통한 오류 복구를 제공합니다.ARQ 프로토콜은 또한 흐름 제어를 제공하며, 이는 폭주 회피와 결합될 수 있습니다.

UDP는 매우 단순한 프로토콜로 가상 회선이나 신뢰할 수 있는 통신을 제공하지 않으며 이러한 기능을 애플리케이션 프로그램에 위임합니다.UDP 패킷은 세그먼트가 아니라 데이터그램이라고 불립니다.

TCP는 HTTP 웹 브라우징 및 이메일 전송을 포함한 많은 프로토콜에 사용됩니다.UDP 는, 대량의 호스트에 재전송할 수 없기 때문에, 멀티 캐스트나 브로드캐스트에 사용할 수 있습니다.UDP는 일반적으로 높은 throughput과 짧은 지연을 제공하기 때문에 IP-TV나 IP 텔레포니 등 패킷 손실이 허용되는 실시간 멀티미디어 통신 및 온라인 컴퓨터 게임에 자주 사용됩니다.

X.25, 프레임 릴레이, ATM많은 비 IP 기반 네트워크는 트랜스포트 레이어가 아닌 네트워크 또는 데이터 링크레이어에서 접속 지향 통신을 구현합니다.X.25에서, 전화 네트워크 모뎀과 무선 통신 시스템에서, 신뢰성 높은 노드간 통신은 낮은 프로토콜 계층에서 구현된다.

OSI 연결 모드 전송 계층 프로토콜 규격은 다음과 같은 다섯 가지 전송 프로토콜 클래스를 정의합니다.TP0은 신뢰성이 낮은 네트워크를 위해 설계된 TP4에 최소한의 오류 복구를 제공합니다.

프로토콜

이 목록은 인터넷 프로토콜 제품군, OSI 프로토콜 제품군, NetWareIPX/SPX, AppleTalk 파이버 채널의 전송 계층에 일반적으로 배치되는 일부 프로토콜을 보여 줍니다.

인터넷 전송 계층[5] 프로토콜 비교

특징 UDP UDP 라이트 TCP 멀티패스 TCP SCTP DCCP 러프[a]
패킷 헤더 크기 8 바이트 8 바이트 20 ~ 60 바이트 50 ~ 90 바이트 12[b] 바이트 12 또는 16 바이트 14바이트 이상
일반적인 데이터 패킷 오버헤드 8 바이트 8 바이트 20 바이트 ?바이트 44 ~ 48 바이트[c] 이상 12 또는 16 바이트 14 바이트
트랜스포트 레이어 패킷엔티티 데이터그램 데이터그램 부분 부분 데이터그램 데이터그램 데이터그램
커넥션 지향 아니요. 아니요. 네. 네. 네. 네. 네.
신뢰성 높은 전송 아니요. 아니요. 네. 네. 네. 아니요. 네.
신뢰할 수 없는 전송 네. 네. 아니요. 아니요. 네. 네. 네.
메시지 경계 유지 네. 네. 아니요. 아니요. 네. 네. 네.
배달. 무질서 무질서 주문된 주문된 주문 완료/무주문 완료 무질서 무질서
데이터 체크섬 선택적. 네. 네. 네. 네. 네. 선택적.
체크섬 크기 16비트 16비트 16비트 16비트 32비트 16비트 16비트
부분 체크섬 아니요. 네. 아니요. 아니요. 아니요. 네. 아니요.
패스 MTU 아니요. 아니요. 네. 네. 네. 네. ?
흐름 제어 아니요. 아니요. 네. 네. 네. 아니요. 네.
폭주 제어 아니요. 아니요. 네. 네. 네. 네. ?
명시적 폭주 통지 아니요. 아니요. 네. 네. 네. 네. ?
다중 스트림 아니요. 아니요. 아니요. 아니요. 네. 아니요. 아니요.
멀티호밍 아니요. 아니요. 아니요. 네. 네. 아니요. 아니요.
번들링/나글 아니요. 아니요. 네. 네. 네. 아니요. ?
  1. ^ RUDP는 공식적으로 표준화되지 않았습니다.1999년 이후 표준 관련 개발은 없었다.
  2. ^ 데이터 청크 헤더 및 오버헤드 청크는 제외됩니다.내장된 청크가 없으면 SCTP 패킷은 기본적으로 사용할 수 없습니다.
  3. ^ 12 바이트 SCTP 헤더 + 16 바이트 DATA 청크 헤더 또는 20 바이트 I-DATA 청크 헤더 + 16 + 바이트 SACK 청크로 카운트됩니다.추가 데이터 청크를 위한 추가 비데이터 청크(AUTH 등) 및/또는 헤더. 50바이트 이상으로 쉽게 오버헤드가 증가할 수 있습니다(카운트되지 않음).

OSI 전송 프로토콜 비교

ISO/IEC 8073/ITU-T 권고 X.224, "Information Technology - Open Systems Interconnection - Protocol for the connection-mode transport service"는 클래스 0(TP0)에서 클래스 4(TP4)로 지정된 5개의 연결 모드 전송 프로토콜 클래스를 정의합니다.클래스 0 에는 에러 리커버리가 포함되어 있지 않고, 에러 없는 접속을 제공하는 네트워크층에서 사용하도록 설계되어 있습니다.클래스 4는 TCP에 가장 가깝지만 TCP에는 OSI가 세션레이어에 할당하는 그레이스 풀클로즈 등의 기능이 포함되어 있습니다.모든 OSI 연결 모드 프로토콜 클래스는 신속한 데이터 및 레코드 경계 보존을 제공합니다.클래스의 상세한 특성을 다음 [6]표에 나타냅니다.

서비스 TP0 TP1 TP2 TP3 TP4
커넥션 지향 네트워크 네. 네. 네. 네. 네.
커넥션리스 네트워크 아니요. 아니요. 아니요. 아니요. 네.
연결과 분리 아니요. 네. 네. 네. 네.
분할 및 재구성 네. 네. 네. 네. 네.
에러 리커버리 아니요. 네. 아니요. 네. 네.
접속 재초기화(과도한 수의 PDU가 확인 응답되지 않은 경우) 아니요. 네. 아니요. 네. 아니요.
단일 가상 회선을 통한 다중화 및 다중화 해제 아니요. 아니요. 네. 네. 네.
명시적 흐름 제어 아니요. 아니요. 네. 네. 네.
타임아웃 시 재발송신 아니요. 아니요. 아니요. 아니요. 네.
신뢰성 높은 수송 서비스 아니요. 네. 아니요. 네. 네.

ISO/IEC 8602/ITU-T Recommendation X.234에 [7]의해 지정된 커넥션리스 트랜스포트 프로토콜도 있습니다.

레퍼런스

  1. ^ a b R. Braden, ed. (October 1989). Requirements for Internet Hosts – Communication Layers. doi:10.17487/RFC1122. RFC 1122.
  2. ^ "Introducing the Internet Protocol Suite". System Administration Guide, Volume 3.
  3. ^ "X.225 : Information technology – Open Systems Interconnection – Connection-oriented Session protocol: Protocol specification". Archived from the original on February 1, 2021. Retrieved November 24, 2021.
  4. ^ Brian C. Smith, Cyclic-UDP: A Priority-Driven Best-Effort Protocol (PDF), retrieved February 23, 2020
  5. ^ "Transport Layer - Comparison of Transport-layer Protocols Comparison Transport-layer Protocols". www.liquisearch.com. Retrieved August 5, 2022.
  6. ^ "ITU-T Recommendation X.224 (11/1995) ISO/IEC 8073". Itu.int. Retrieved January 17, 2017.
  7. ^ "ITU-T Recommendation X.234 (07/1994) ISO/IEC 8602". Itu.int. Retrieved January 17, 2017.