통신 규약

Communication protocol

통신 프로토콜은 통신 시스템의 두 개 이상의 엔티티가 물리적인 양의 변화를 통해 정보를 전송하도록 허용하는 규칙의 시스템입니다.이 프로토콜은 통신규칙, 구문, 의미론, 동기화가능한 오류 복구 방법을 정의합니다.프로토콜은 하드웨어, 소프트웨어 또는 둘 [1]다의 조합으로 구현될 수 있습니다.

통신 시스템은 다양한 메시지를 주고받을 때 잘 정의된 형식을 사용합니다.각 메시지는 해당 특정 상황에 대해 사전에 결정된 가능한 응답 범위에서 응답을 이끌어내기 위한 정확한 의미를 가지고 있습니다.지정된 동작은 일반적으로 구현 방법과 무관합니다.통신 규약은 관련 [2]당사자들의 동의를 받아야 합니다.합의를 위해 프로토콜을 기술표준으로 개발할 수 있습니다.프로그래밍 언어는 계산에 대해 동일한 설명을 하므로 프로토콜과 프로그래밍 언어 사이에는 밀접한 유사점이 있습니다. 프로토콜은 프로그래밍 언어[3]계산에 무엇인지를 전달하는 것입니다.대체 공식은 프로토콜이 알고리즘[4]계산에 어떤 영향을 미치는지를 전달하는 것이라고 말합니다.

여러 프로토콜은 종종 단일 통신의 다른 측면을 설명합니다.함께 작동하도록 설계된 프로토콜 그룹을 프로토콜 스위트라고 합니다. 소프트웨어로 구현되는 경우 프로토콜 스택입니다.

인터넷 통신 프로토콜은 IETF(Internet Engineering Task Force)에 의해 출판됩니다.IEEE(Institute of Electrical and Electronics Engineers)는 유무선 네트워킹을, ISO(International Organization for Standardization)는 기타 유형을 처리합니다.ITU-T공중전화교환망(PSTN)을 위한 통신 프로토콜과 형식을 처리합니다.PSTN과 인터넷이 융합됨에 따라, 표준 또한 융합 쪽으로 추진되고 있습니다.

통신 시스템

역사

데이터-커뮤테이션 컨텍스트에서 프로토콜이라는 용어를 처음 사용한 것 중 하나는 1967년 [5][6]4월 Roger Scanletbury와 Keith Bartlett가 작성한 "NPL 데이터 통신 네트워크에서의 사용 프로토콜"이라는 비망록에서 발생합니다.

ARPANET에서 1969년 호스트간 통신의 시작점은 1822 프로토콜로,[7] IMP로의 메시지 전송을 정의했습니다.ARPANET을 위한 NCP(Network Control Protocol)는 [8]1970년에 처음으로 구현되었습니다.NCP 인터페이스는 프로토콜 계층화 [9]개념의 초기 예인 더 높은 수준의 통신 프로토콜을 구현함으로써 애플리케이션 소프트웨어가 ARPANET을 통해 연결되도록 했습니다.

1970년대 Robert E. Kahn과 Vint Cerf네트워킹 연구는 전송 제어 프로그램(Transmission Control Program, TCP)[10]의 구성으로 이어졌습니다. RFC675 사양은 1974년 12월에 Cerf가 Yogen Dalal과 Carl Sunshine과 함께 작성한 것으로, 이 당시에도 여전히 단일 설계입니다.

국제 네트워킹 작업 그룹은 1975년에 CCITT에 제시되었으나 CCITT나 [11]ARPANET에 의해 채택되지 않은 무연결 데이터그램 표준에 합의했습니다.1976년 [12][13]CCITT에 의해 가상 회로를 기반으로 한 X.25 표준의 개발에 기여한 국제적 연구, 특히 레미 데스프레의 연구.컴퓨터 제조업체들은 IBM의 SNA(Systems Network Architecture), Digital Equipment Corporation의 DECnetXerox Network [14]Systems와 같은 독점 프로토콜을 개발했습니다.

TCP 소프트웨어는 모듈형 프로토콜 스택으로 재설계되었습니다.원래 IP/TCP로 불리던 것이 1982년 SATNET에, 1983년 1월 ARPANET에 설치되었습니다.1989년까지 RFC 1122 RFC 1123에 개략적으로 설명된 바와 같이, 완전한 프로토콜 스위트의 개발은 [15]부상하는 인터넷의 핵심 구성요소로서 포괄적인 프로토콜 스위트로서 TCP/IP의 성장을 위한 기반을 마련하였습니다.

통신 표준의 참조 모델에 대한 국제적인 연구는 1984년에 발표된 OSI 모델로 이어졌습니다.1980년대 후반과 1990년대 초반 동안 엔지니어, 조직 및 국가들은 OSI 모델 또는 인터넷 프로토콜 제품군 중 어떤 표준이 가장 우수하고 강력한 [16][17][18]컴퓨터 네트워크를 가져올지에 대한 문제로 양극화되었습니다.

개념.

네트워크 또는 다른 미디어를 통해 디바이스 간에 교환되는 정보는 통신 프로토콜 사양에 규정될 수 있는 규칙 및 규칙에 의해 관리됩니다.통신의 성격, 교환되는 실제 데이터와 상태에 따라 달라지는 모든 행동은 이러한 사양에 의해 정의됩니다.디지털 컴퓨팅 시스템에서 규칙은 알고리즘데이터 구조로 표현될 수 있습니다.프로토콜은 알고리즘이나 프로그래밍 언어가 [3][4]계산에 어떤 영향을 미치는지를 전달하는 것입니다.

운영 체제는 일반적으로 공유 데이터를 서로 통신하도록 조작하는 일련의 협력 프로세스를 포함합니다.이 통신은 잘 이해된 프로토콜에 의해 통제되며, 이 프로토콜은 프로세스 코드 [19][20]자체에 내장될 수 있습니다.반면, 공유 메모리가 없기 때문에, 통신 시스템들은 공유 전송 매체를 이용하여 서로 통신해야 합니다.전송이 반드시 신뢰할 수 있는 것은 아니며, 개별 시스템이 서로 다른 하드웨어 또는 운영 체제를 사용할 수도 있습니다.

네트워킹 프로토콜을 구현하기 위해, 프로토콜 소프트웨어 모듈은 기계의 운영 체제에 구현된 프레임워크와 인터페이스됩니다.이 프레임워크는 운영 [21]체제의 네트워킹 기능을 구현합니다.프로토콜 알고리즘이 휴대용 프로그래밍 언어로 표현될 때, 프로토콜 소프트웨어는 운영체제를 독립적으로 만들 수 있습니다.가장 잘 알려진 프레임워크는 TCP/IP 모델OSI 모델입니다.

인터넷이 개발될 당시 추상화 계층화는 컴파일러와 운영 체제 설계를 위한 성공적인 설계 접근 방식으로 입증되었으며 프로그래밍 언어와 통신 프로토콜 간의 유사성을 고려하여 원래 단일 네트워킹 프로그램은 [22]협력 프로토콜로 분해되었습니다.이것은 오늘날 프로토콜 [23]설계의 기초를 이루는 계층화된 프로토콜의 개념을 낳았습니다.

시스템은 일반적으로 전송을 처리하기 위해 단일 프로토콜을 사용하지 않습니다.대신에 그들은 때때로 프로토콜 [24]스위트라고 불리는 일련의 협력 프로토콜을 사용합니다.가장 잘 알려진 프로토콜 제품군으로는 TCP/IP, IPX/SPX, X.25, AX.25, AppleTalk 등이 있습니다.

프로토콜들은 를 들어, 전송 프로토콜들의 그룹이 있는 것과 같이, 그룹들의 기능에 기초하여 배열될 수 있습니다.기능은 계층에 매핑되며, 각 계층은 애플리케이션, 전송, 인터넷,[25] 네트워크 인터페이스 기능과 관련된 별개의 문제를 해결합니다.메시지를 전송하려면 각 계층에서 프로토콜을 선택해야 합니다.다음 프로토콜 선택은 각 [26]계층별 프로토콜 선택기로 메시지를 확장하여 수행됩니다.

종류들

통신 프로토콜에는 전송되는 콘텐츠에 대한 표현에 기반한 텍스트 기반 및 바이너리라는 두 가지 유형이 [27]있습니다.

텍스트 기반

텍스트 기반 프로토콜 또는 일반 텍스트 프로토콜은 해당 내용을 사람이 읽을 수 있는 형식(종종 평문)으로 나타냅니다.

즉각적인 인간의 가독성은 컴퓨터 환경에서 사용하기 위한 고유한 이점(기계적 구문 분석의 용이성 및 대역폭 활용도 향상 등)을 가진 바이너리 프로토콜과 대조됩니다.

네트워크 응용 프로그램들은 데이터를 캡슐화하는 다양한 방법들을 가지고 있습니다.인터넷 프로토콜에 매우 일반적인 한 가지 방법은 요청과 응답을 ASCII 텍스트의 행으로 전송하는 텍스트 지향 표현이며, 이는 새로운 행 문자(그리고 보통은 반송 문자)로 끝납니다.명령어에 사람이 읽을 수 있는 일반 텍스트를 사용하는 프로토콜의 예로는 FTP(파일 전송 프로토콜), SMTP(Simple Mail Transfer Protocol), 핑거 프로토콜 [28]등이 있습니다.

텍스트 기반 프로토콜은 일반적으로 인간 파싱 및 해석에 최적화되므로 디버깅 및 초기 프로토콜 개발 설계 단계와 같이 프로토콜 내용에 대한 인간 검사가 필요할 때마다 적합합니다.

분명히 말하면, 모든 디지털 통신은 기본적으로 이진법입니다.여기에 언급된 "텍스트" 기반 프로토콜은 텍스트 편집기(또는 기타 소프트웨어)에 의해 "인간이 읽을 수 있는" 바이너리 컨텐츠만을 사용합니다.

이진법

ASCII 인코딩에서 사람이 읽을 수 있는 문자에 해당하는 값만 사용하는 텍스트 기반 프로토콜과 달리 이진 프로토콜바이트의 모든 값을 사용합니다.바이너리 프로토콜은 사람이 아닌 기계가 읽기 위한 것입니다.바이너리 프로토콜은 전송과 해석의 [29]속도로 변환되는 간결함의 장점이 있습니다.

이진법은 EbXML, HTTP/2, HTTP/3 [30]및 EDOC와 같은 현대 표준을 설명하는 표준 문서에 사용되었습니다.UML의[31] 인터페이스는 이진 프로토콜로 간주될 수도 있습니다.

기본소요사항

네트워크를 통해 데이터를 가져오는 것은 프로토콜의 문제 중 일부일 뿐입니다.수신된 데이터는 대화 진행 상황에서 평가되어야 하므로 프로토콜에는 상황을 설명하는 규칙이 포함되어야 합니다.이런 종류의 규칙들은 의사소통의 구문을 표현한다고 합니다.다른 규칙은 데이터가 교환이 이루어지는 상황에 의미가 있는지 여부를 결정합니다.이런 종류의 규칙들은 의사소통의 의미론을 표현한다고 합니다.

통신 시스템 상에서 메시지를 주고받음으로써 통신을 구축합니다.따라서 프로토콜은 전송을 관리하는 규칙을 명시해야 합니다.일반적으로 다음의 많은 부분을 [32]다루어야 합니다.

데이터 교환을 위한 데이터 형식
디지털 메시지 비트열이 교환됩니다.비트열은 필드로 구분되며 각 필드는 프로토콜과 관련된 정보를 전달합니다.개념적으로 비트열은 헤더페이로드라고 불리는 두 부분으로 나뉩니다.실제 메시지는 페이로드에 실립니다.헤더 영역에는 프로토콜의 동작과 관련된 필드가 포함됩니다.MTU(Maximum Transmission Unit)보다 긴 비트열은 적절한 [33]크기로 분할됩니다.
데이터 교환을 위한 주소 형식
주소는 발신자와 수신자를 모두 식별하는 데 사용됩니다.주소는 비트열의 헤더 영역에 전달되므로 수신기는 비트열이 관심이 있으므로 처리해야 하는지 또는 무시해야 하는지 여부를 결정할 수 있습니다.주소 쌍(발신자 주소, 수신자 주소)을 이용하여 발신자와 수신자의 연결을 확인할 수 있습니다.보통 어떤 주소 값들은 특별한 의미를 갖습니다.all-1s 주소는 네트워크 상의 모든 스테이션의 주소를 의미할 수 있으므로, 이 주소로 전송하면 로컬 네트워크에서 브로드캐스트가 발생합니다.주소 값의 의미를 설명하는 규칙을 통칭하여 주소 지정 [34]체계라고 합니다.
주소 매핑
때때로 프로토콜은 한 방식의 주소를 다른 방식의 주소에 매핑해야 합니다.예를 들어, 응용 프로그램에서 지정한 논리 IP 주소를 이더넷 MAC 주소로 변환합니다.를 주소 [35]매핑이라고 합니다.
라우팅
시스템이 직접 연결되어 있지 않은 경우, 의도된 수신기로 가는 경로를 따라 있는 중개 시스템은 송신자를 대신하여 메시지를 전달해야 합니다.인터넷에서 네트워크는 라우터를 이용하여 연결됩니다.라우터를 통한 네트워크 상호 연결을 인터네트워킹이라고 합니다.
전송오류 감지
데이터 손상이 발생할 수 있는 네트워크에서는 오류 탐지가 필요합니다.일반적인 방법에서는 데이터 영역의 CRC가 패킷 끝에 추가되어 수신기가 손상으로 인한 차이를 감지할 수 있습니다.수신기는 CRC 차이에 대한 패킷을 거부하고 재전송을 [36]위해 어떻게든 정렬합니다.
확인서
연결 지향적인 통신을 위해서는 패킷의 올바른 수신에 대한 인정이 필요합니다.수신자에서 수신자에게 다시 수신자에게 [37]확인 응답이 전송됩니다.
정보 손실 - 타임아웃 및 재시도
패킷이 네트워크에서 손실되거나 전송 중에 지연될 수 있습니다.이에 대처하기 위해, 일부 프로토콜에 따라, 송신자는 일정 시간 이내에 수신자로부터 올바른 수신 확인을 기대할 수 있습니다.따라서 시간 초과 시 송신자는 [a]정보를 재전송해야 할 수 있습니다.영구적으로 끊어진 링크의 경우 재전송은 아무런 영향이 없으므로 재전송 횟수가 제한됩니다.재시도 제한을 초과하면 [38]오류로 간주됩니다.
정보 흐름 방향
전송이 반이중 링크에서와 같이 한 번에 한 방향으로만 발생할 수 있거나 공유 매체에서와 같이 한 번에 한 송신자로부터만 발생할 수 있는 경우에는 방향을 지정해야 합니다.이를 미디어 액세스 제어라고 합니다.두 당사자가 동시에 송신하거나 [39]송신하고자 하는 충돌 또는 경합경우를 수용하기 위한 준비가 이루어져야 합니다.
순서제어
긴 비트열을 조각으로 나눈 다음 개별적으로 네트워크로 전송하면 조각이 손실되거나 지연되거나 일부 네트워크에서는 목적지까지 다른 경로를 선택할 수 있습니다.그 결과, 순서가 맞지 않게 조각이 도착할 수 있습니다.재전송 시 중복 조각이 발생할 수 있습니다.송신자에게 시퀀스 정보를 표시함으로써, 수신자는 무엇이 분실되거나 복제되었는지를 판단하고, 필요한 재전송을 요청하고,[40] 원래의 메시지를 다시 조립할 수 있습니다.
유량조절
송신자가 수신자보다 빨리 송신하거나 중간 네트워크 장비가 송신을 처리할 수 있을 때는 흐름 제어가 필요합니다.수신자에서 [41]발신자로 메시지를 보내며 흐름 제어를 구현할 수 있습니다.
대기열
통신 프로세스 또는 상태 머신은 전송된 순서대로 메시지를 처리하기 위해 보통 FIFO 큐인 큐(또는 "버퍼")를 사용하며, 때때로 다른 우선순위를 가진 여러 개의 큐를 가질 수 있습니다.

프로토콜 설계

시스템 공학 원리는 일련의 공통 네트워크 프로토콜 설계 원리를 만들기 위해 적용되었습니다.복잡한 프로토콜의 설계는 종종 더 단순하고 협력적인 프로토콜로 분해됩니다.이러한 일련의 협력 프로토콜은 개념적 프레임워크 내에서 프로토콜 패밀리 또는 프로토콜 [24]스위트라고 불리기도 합니다.

통신 시스템은 동시에 작동합니다.동시 프로그래밍의 중요한 측면은 적절한 시퀀스에서 통신 메시지를 수신하고 전송하기 위한 소프트웨어의 동기화입니다.운영 체제 이론 [42]텍스트에서 동시 프로그래밍은 전통적으로 하나의 주제였습니다.동시 프로그램은 [43]숨겨진 복잡한 버그로 악명이 높기 때문에 공식적인 검증은 필수적인 것으로 보입니다.동시성과 의사소통에 대한 연구는 CSP(Communication Sequential Process)[44]라는 수학적 접근법으로 지칭됩니다.동시성은 Mealy Moore 기계와 같은 유한 상태 기계를 사용하여 모델링할 수도 있습니다.Mealy와 Moore 머신은 [45][better source needed]일반적으로 통신 또는 전자 장치에 사용되는 하드웨어의 형태로 접하게 되는 디지털 전자 시스템에서 설계 도구로 사용되고 있습니다.

그 문헌은 컴퓨터 통신과 프로그래밍 사이에 수많은 유사점을 제시합니다.유사하게, 프로토콜의 전송 메커니즘은 중앙 처리 장치(CPU)와 유사합니다.이 프레임워크는 프로그래머가 서로 독립적으로 협력 프로토콜을 설계할 수 있는 규칙을 도입합니다.

레이어링

Figure 2. Protocols in relation to the Internet layering scheme.
그림 2.TCP/IP 모델 또는 인터넷 계층 구조 및 일부 공통 프로토콜과의 관계.

현대의 프로토콜 설계에서, 프로토콜은 프로토콜 스택을 형성하기 위해 계층화됩니다.계층화는 프로토콜 설계 작업을 더 작은 단계로 나누는 설계 원리로, 각 단계는 특정 부분을 수행하며 프로토콜의 다른 부분과 소수의 잘 정의된 방식으로만 상호 작용합니다.계층화를 통해 복합적인 케이스 폭발 없이 프로토콜의 부품을 설계하고 테스트할 수 있으므로 각 설계는 비교적 단순합니다.

인터넷에서 사용되는 통신 프로토콜은 다양하고 복잡한 환경에서 작동하도록 설계되었습니다.인터넷 프로토콜은 단순성과 모듈화를 위해 설계되었으며 Internet Protocol [46]Suite에 정의된 기능 계층의 대략적인 계층 구조에 들어맞습니다.처음 두 협력 프로토콜인 전송 제어 프로토콜(TCP)과 인터넷 프로토콜(IP)은 단일 통신 프로토콜인 원래 전송 제어 프로그램을 계층화된 통신 스위트로 분해한 결과입니다.

OSI 모델은 훨씬 더 엄격한 프로토콜 상호작용 규칙과 엄격한 계층화를 가진 일반 통신의 참조 모델로서 인터넷보다 앞선 네트워크에 대한 경험을 바탕으로 국제적으로 개발되었습니다.

일반적으로 애플리케이션 소프트웨어는 강력한 데이터 전송 계층 위에 구축됩니다.이 전송 계층의 기초에는 일반적으로 인터넷에서 연결되지 않는 데이터그램 전달 및 라우팅 메커니즘이 있습니다.네트워크를 통한 패킷 릴레이는 이더넷과 같은 특정 물리 계층 기술에 특화된 네트워크 링크 기술만을 포함하는 다른 계층에서 이루어집니다.계층화는 필요할 때 기술을 교환할 수 있는 기회를 제공합니다. 예를 들어 프로토콜은 종종 서로 다른 네트워크의 연결을 수용하기 위해 터널링 배열로 쌓입니다.예를 들어, IP는 ATM(Asynchronous Transfer Mode) 네트워크를 통해 터널링될 수 있습니다.

프로토콜 계층화

Figure 3. Message flows using a protocol suite.
그림 3.메시지 흐름은 프로토콜 모음을 사용합니다.블랙 루프는 실제 메시징 루프를 보여주며, 레드 루프는 하위 레이어에 의해 활성화되는 레이어 간의 효과적인 통신입니다.

프로토콜 계층화는 프로토콜 [23]설계의 기본을 형성합니다.복잡한 단일 프로토콜을 보다 단순하고 협력적인 [46]프로토콜로 분해할 수 있습니다.프로토콜 계층들은 각각 다른 종류의 통신 문제들을 해결합니다.층들은 함께 층 구조 또는 모델을 구성합니다.

계산은 알고리즘과 데이터를 다룹니다. 통신은 프로토콜과 메시지를 포함합니다. 따라서 데이터 흐름도의 아날로그는 일종의 메시지 [4]흐름도입니다.프로토콜 계층화 및 프로토콜 스위트를 시각화하기 위해 A와 B 두 시스템 사이에 메시지 흐름에 대한 다이어그램이 그림 3에 나와 있습니다.A와 B 시스템 모두 동일한 프로토콜 제품군을 사용합니다.수직 흐름(및 프로토콜)은 시스템 내에 있고 수평 메시지 흐름(및 프로토콜)은 시스템 간에 있습니다.메시지 흐름은 규칙 및 프로토콜에 의해 지정된 데이터 형식에 의해 제어됩니다.파란색 선은 (수평) 프로토콜 계층의 경계를 표시합니다.

소프트웨어 계층화

그림 5: 프로토콜 및 소프트웨어 계층화.프로토콜을 구현하는 소프트웨어 모듈은 큐브로 표시됩니다.모듈 간의 정보 흐름은 화살표로 표시됩니다.(위쪽 두 개의 가로 화살표) 빨간색 화살표는 가상입니다.파란색 선은 도면층 경계를 표시합니다.

소프트웨어 지원 프로토콜은 계층화된 조직을 가지며, 프로토콜 계층화와의 관계는 그림 5와 같습니다.

A 시스템에서 메시지를 전송하기 위해 최상위 소프트웨어 모듈은 바로 아래 모듈과 상호 작용하고 캡슐화할 메시지를 전달합니다.하위 모듈은 자신이 구현하는 프로토콜에 따라 헤더 데이터를 입력하고 하위 모듈과 상호 작용하여 시스템 B의 하위 모듈로 통신 채널을 통해 메시지를 전송합니다.수신 시스템 B에서는 역으로 발생하므로 궁극적으로 메시지는 원래 형태로 시스템 [47]B의 최상위 모듈로 전달됩니다.

프로그램 번역은 하위 문제로 나뉩니다.따라서 번역 소프트웨어도 계층화되어 소프트웨어 계층을 독립적으로 설계할 수 있습니다.TCP/IP [48]계층에서도 동일한 접근 방식을 볼 수 있습니다.

애플리케이션 계층 아래의 모듈은 일반적으로 운영 체제의 일부로 간주됩니다.이러한 모듈 간에 데이터를 전달하는 것은 응용 프로그램과 전송 계층 간에 데이터를 전달하는 것보다 훨씬 비용이 적게 듭니다.응용 계층과 전송 계층 사이의 경계를 운영 체제 [49]경계라고 합니다.

엄격층

계층화 모델을 엄격하게 준수하는 것, 즉 엄격한 계층화라고 알려진 관행이 [50]네트워킹에 항상 최선의 접근법은 아닙니다.엄격한 계층화는 [51]구현 성능에 부정적인 영향을 미칠 수 있습니다.

프로토콜 계층화의 사용은 오늘날 컴퓨터 네트워킹의 분야에 걸쳐 어디에나 있지만, 이러한 방식으로 프로토콜 스택을 추상화하는 것은 더 높은 계층이 더 낮은 계층의 기능을 복제하게 할 수도 있기 때문에 역사적으로 많은 연구자들에[52] 의해 비판을 받아왔습니다.대표적인 예로 링크 단위 및 엔드 투 엔드 [53]단위 모두에서 오류 복구를 들 수 있습니다.

디자인패턴

통신 프로토콜의 설계와 구현에서 흔히 반복되는 문제들은 소프트웨어 설계 [54][55][56][57][58]패턴에 의해 해결될 수 있습니다.

정형사양

통신 구문을 설명하는 일반적인 형식 방법은 추상 구문 표기법 원(ISO 표준)과 증강 백투스-나우르(IETF 표준)입니다.

유한 [59][60]상태 기계 모델은 프로토콜의 가능한 상호작용을 공식적으로 설명하는 데 사용됩니다.그리고 통신하는 유한 상태[61] 기계들.

프로토콜 개발

통신이 이루어지려면 프로토콜을 선택해야 합니다.규칙은 알고리즘과 데이터 구조로 표현할 수 있습니다.알고리즘을 휴대용 프로그래밍 언어로 표현함으로써 하드웨어와 운영체제의 독립성이 향상됩니다.규격의 소스 독립성은 더 넓은 상호 운용성을 제공합니다.

프로토콜 표준은 일반적으로 표준화 과정을 시작하는 표준 단체의 승인 또는 지원을 받아 작성됩니다.표준기관의 구성원들은 자발적으로 작업 결과를 준수하기로 동의합니다.종종 회원들은 프로토콜과 관련된 큰 시장 점유율을 통제하고 많은 경우 표준은 중요한 공익에 도움이 된다고 생각하기 때문에 법이나 정부에 의해 시행됩니다. 따라서 승인을 받는 것이 프로토콜에 매우 중요할 수 있습니다.

프로토콜 표준의 필요성

프로토콜 표준의 필요성은 IBM이 발명BSC(Binary Synchronous Communications) 프로토콜에 무슨 일이 일어났는지를 보면 알 수 있습니다.BSC는 두 개의 개별 노드를 연결하는 데 사용되는 초기 링크 레벨 프로토콜입니다.이것은 원래 다노드 네트워크에서 사용하기 위한 것이 아니었지만, 그렇게 함으로써 프로토콜의 몇 가지 결함이 드러났습니다.표준화가 이루어지지 않은 상황에서 제조업체와 조직은 자유롭게 프로토콜을 강화하여 네트워크에 호환되지 않는 버전을 만들 수 있었습니다.어떤 경우에는 사용자가 다른 제조업체의 장비를 사용하지 못하도록 의도적으로 한 것입니다.원래의 바이싱크 프로토콜에는 50가지 이상의 변형이 있습니다.표준이 이러한 현상 [21]중 적어도 일부를 방지했을 것이라고 추측할 수 있습니다.

프로토콜이 표준화 과정을 거치지 않고 시장 지배력을 얻는 경우도 있습니다.이러한 프로토콜을 사실상의 표준이라고 합니다.사실상의 표준은 신흥 시장, 틈새 시장 또는 독점(또는 과점)된 시장에서 일반적입니다.그들은 특히 경쟁을 겁주기 위해 사용될 때 매우 부정적으로 시장을 장악할 수 있습니다.역사적 관점에서, 표준화는 사실상의 표준의 부작용을 방지하기 위한 조치로 여겨져야 합니다.긍정적인 예외가 존재합니다. 리눅스와 같은 사실상의 표준 운영 체제는 소스가 공개되고 유지되므로 경쟁을 유발할 수 있기 때문에 시장에서 이러한 부정적인 영향력을 가지고 있지 않습니다.

표준조직

통신 프로토콜 관련 표준 기관으로는 국제 표준화 기구(ISO), 국제 전기 통신 연합(ITU), 전기 전자 기술자 협회(IEEE), 인터넷 엔지니어링 태스크 포스(IETF) 등이 있습니다.IETF는 인터넷에서 사용중인 프로토콜을 유지합니다.IEEE는 상업용 및 소비자용 장치를 위한 전자 산업의 많은 소프트웨어 및 하드웨어 프로토콜을 제어합니다.ITU는 공중전화교환망(PSTN)과 많은 무선통신 시스템을 설계하는 통신 기술자들의 우산 조직입니다.해양 전자제품의 경우 NMEA 표준이 사용됩니다.W3C(World Wide Web Consortium)는 웹 기술에 대한 프로토콜과 표준을 생산합니다.

국제표준기구는 국내적 또는 상업적 이익을 고려하는 국내기구보다 더 공정한 것으로 여겨집니다.표준 기관들은 미래의 표준에 대한 연구 개발도 수행합니다.실제로 언급된 표준기관들은 [62]서로 긴밀히 협력하고 있습니다.

프로토콜 개발에는 여러 표준 기관이 참여할 수 있습니다.조정되지 않은 경우 결과는 프로토콜에 대한 여러 개의 호환되지 않는 정의 또는 메시지에 대한 여러 개의 호환되지 않는 해석일 수 있습니다. 한 정의에서 중요한 불변량(예: 안정적인 라우팅 루프를 방지하기 위해 수명 값이 단조 감소한다는 것)은 다른 [63]정의에서 존중되지 않을 수 있습니다.

표준화 프로세스

ISO에서 표준화 프로세스는 하위 위원회 작업 그룹의 커미셔닝으로 시작됩니다.작업 그룹은 토론과 의견을 유발하기 위해 이해 관계자(다른 표준 기관 포함)에게 작업 초안과 토론 문서를 발행합니다.이것은 많은 질문과 많은 토론 그리고 보통 약간의 의견 차이를 발생시킬 것입니다.이러한 의견을 고려하여 작업 그룹에서 제안서 초안을 작성합니다.피드백, 수정 및 타협을 거쳐 제안서는 국제 표준 초안, 궁극적으로 국제 표준의 지위에 도달합니다.국제 표준은 부족한 부분을 처리하고 그 [64]주제에 대한 변화된 견해를 반영하기 위해 주기적으로 재발행됩니다.

OSI 표준화

인터넷의 전신인 아르파넷(ARPANET)에서 배운 교훈은 프로토콜이 작동하려면 프레임워크가 필요하다는 것이었습니다.따라서 구조화된 프로토콜(계층화 프로토콜 등) 및 표준화에 적합한 범용 미래형 프레임워크를 개발하는 것이 중요합니다.이렇게 하면 기능이 중복되는 프로토콜 표준을 방지할 수 있으며, 여러 수준(계층)[66]에서 프로토콜의 책임을 명확하게 정의할 수 있습니다.이로 인해 다양한 [67]계층 규격을 준수하는 표준 프로토콜 및 서비스 설계를 위한 프레임워크로 사용되는 개방형 시스템 상호 연결 모델(OSI 모델)이 생겨났습니다.

OSI 모델에서, 통신 시스템들은 기본적인 전송 메커니즘을 제공하는 기초적인 물리적 매체에 의해 연결되는 것으로 가정됩니다.그 위에 층들은 번호가 매겨져 있습니다.각 계층은 그 바로 아래 계층의 서비스를 이용하여 그 위 계층에 서비스를 제공합니다.최상위 계층은 애플리케이션 프로세스에 서비스를 제공합니다.계층들은 서비스 액세스 포인트라고 불리는 인터페이스를 통해 서로 통신합니다.각 시스템의 해당 계층을 피어 엔티티라고 합니다.통신하기 위해, 주어진 계층의 두 피어 엔티티는 아래 [68]계층의 서비스를 사용하여 구현되는 해당 계층에 특정한 프로토콜을 사용합니다.각 계층에 대해, 주어진 계층의 피어 엔티티들이 통신하는 방법을 정의하는 프로토콜 표준과 주어진 계층이 그 위의 계층과 통신하는 방법을 정의하는 서비스 표준이 있습니다.

OSI 모델에서 레이어와 그 기능은 다음과 같습니다(최고 레이어에서 최저 레이어까지).

  • 애플리케이션 계층은 애플리케이션 프로세스에 다음과 같은 서비스를 제공할 수 있습니다: 통신 파트너의 식별, 통신에 필요한 권한 설정, 파트너의 가용성 및 인증 결정, 통신을 위한 개인 정보 보호 메커니즘에 대한 합의, 책임에 대한 합의오류 복구 및 데이터 무결성 보장을 위한 절차, 협력하는 애플리케이션 프로세스 간 동기화, 구문(예: 문자 집합 및 데이터 구조)에 대한 제약 조건 식별, 비용 및 허용 가능한 서비스 품질 결정, 필요한 로그온 및 로그오프 [69]절차를 포함한 대화 규칙 선택.
  • 표현 계층은 애플리케이션 계층에 다음과 같은 서비스들을 제공할 수 있습니다: 세션 설립에 대한 요청, 데이터 전송, 애플리케이션 계층들 사이에서 사용될 구문의 협상, 필요한 임의의 구문 변환, 포맷 및 특수 목적 변환(예를 들어, 데이터 압축 및 데이터 암호화).[70]
  • 세션 계층은 세션 연결 설정 및 해제, 정상적이고 신속한 데이터 교환, 송신 세션 엔티티가 자신의 프리젠테이션 엔티티에게 데이터를 허락 없이 해제하지 말도록 지시할 수 있는 검역 서비스, 인터렉션(interaction), 세션 연결 설정 및 해제, 정상적이고 신속한 데이터 교환, 송신 세션 엔티티가 자신의 프리젠테이션 엔티티에게 데이터를 무단으로 해제하지 말도록 지시할 수 있는 검역 서비스,n 프레젠테이션 주체가 특정 제어 기능을 수행할 차례, 세션 연결의 재동기화, 복구할 수 없는 예외 사항을 프레젠테이션 [71]주체에게 보고할 차례를 제어할 수 있도록 관리합니다.
  • 전송 계층은 선택한 서비스 품질에서 요구하는 비용 효율적인 방식으로 신뢰할 수 있고 투명한 데이터 전송을 제공합니다.하나의 네트워크 연결에 여러 전송 연결을 다중화하거나 하나의 전송 연결을 여러 개의 네트워크 [72]연결로 분할할 수 있습니다.
  • 네트워크 계층은 전송 피어 엔티티 사이의 네트워크 경로 설정, 유지보수 및 해제를 수행합니다.릴레이가 필요할 때 라우팅 및 릴레이 기능이 이 계층에 의해 제공됩니다.서비스 품질은 연결이 설정될 때 네트워크와 전송 엔티티 사이에서 협상됩니다.이 계층은 네트워크 혼잡 [73]제어도 담당합니다.
  • 데이터 링크 계층은 데이터 링크 연결의 설정, 유지보수 및 해제를 수행합니다.물리 계층에서 발생하는 오류가 감지되어 수정될 수 있습니다.네트워크 계층에 오류가 보고됩니다.데이터 링크 유닛의 교환(흐름 제어 포함)은 이 [74]계층에 의해 정의됩니다.
  • 물리 계층은 물리적 연결의 전기적 특성, 사용되는 전송 기술, 물리적 [75]연결의 설정, 유지 및 삭제와 같은 세부 사항을 설명합니다.

연결이 없는 네트워크를 가정하는 TCP/IP 계층화 방식과는 대조적으로, RM/OSI는 연결 지향 [76]네트워크를 가정하였습니다.연결 지향 네트워크는 광역 네트워크에 더 적합하고 무연결 네트워크는 근거리 네트워크에 더 적합합니다.연결 지향 통신은 어떤 형태의 세션 및 (가상) 회로를 필요로 하기 때문에 (TCP/IP 모델에서 부족한) 세션 계층을 필요로 합니다.ISO의 구성원들은 대부분 광역 네트워크에 관심을 가지고 있었기 때문에 연결 지향 네트워크와 무연결 네트워크에 집중된 RM/OSI의 개발은 RM/OSI의[77][78] 부록에서 처음 언급되었고 나중에 RM/[79]OSI의 업데이트에 포함되었습니다.

당시 [when?]IETF는 이 문제와 인터넷이 단순히 존재하지 [citation needed]않는 프로토콜을 필요로 한다는 사실에 대처해야 했습니다.그 결과, IETF는 "대략적인 합의와 실행 코드"[80]에 기초한 독자적인 표준화 프로세스를 개발했습니다.표준화 과정은 RFC 2026에 의해 설명됩니다.

오늘날, IETF는 인터넷에서 사용되는 프로토콜의 표준 조직이 되었습니다.RM/OSI는 무접속 서비스를 포함하는 모델로 확장되었으며, 이를 통해 TCP와 IP 모두 국제 [citation needed]표준으로 발전할 수 있었습니다.

와이어이미지

프로토콜의 와이어 이미지는 비참여 관찰자가 프로토콜 메시지를 관찰함으로써 수집할 수 있는 정보로, 프로토콜에 의해 명시적으로 의미가 부여된 정보뿐만 아니라 [81]관찰자가 추론하는 정보도 포함됩니다.암호화되지 않은 프로토콜 메타데이터는 와이어 이미지를 구성하는 하나의 소스이며, 패킷 타이밍을 포함한 사이드 채널 또한 [82]기여합니다.서로 다른 장점을 가진 관찰자가 서로 다른 [83]와이어 이미지를 볼 수 있습니다.와이어 이미지는 최종 사용자의 개인 정보 보호 [84]프로토콜의 확장성과 관련이 있습니다.

와이어 이미지의 일부 부분이 암호로 인증되지 않으면 중간 당사자(즉, 중간 상자)에 의해 수정될 수 있으며,[82] 이는 프로토콜 작동에 영향을 미칠 수 있습니다.인증된 경우에도 일부분이 암호화되지 않은 경우 와이어 이미지의 일부를 형성하게 되며, 중간 당사자가 내용에 따라 개입할 수 있습니다(예: 특정 플래그가 포함된 패킷 삭제).의도적으로 중간 소비를 목적으로 하는 신호는 인증되었지만 [85]암호화되지 않은 채로 남겨질 수 있습니다.

와이어 이미지는 의도적으로 설계되어 중개자가 관찰할 수 없어야 할 부분을 암호화하고 그들이 [86]관찰할 수 있어야 할 부분에 대한 신호를 제공할 수 있습니다.제공된 신호가 프로토콜의 동작과 분리되면 신뢰할 [87]수 없게 될 수 있습니다.양호한 네트워크 관리 및 연구는 메타데이터 암호화의 영향을 받습니다. 프로토콜 설계자는 운영성에 대한 관찰 가능성과 연구 간의 내오실리화 및 최종 사용자의 [84]프라이버시를 균형 있게 고려해야 합니다.IETF는 2014년에 사용자와 사용자의 [88]행동에 대한 유선 이미지에서 정보를 추론할 수 있는 능력 때문에 프로토콜 운영에 대한 대규모 감시가 공격이라고 판단했으며, IETF는 [89]프로토콜 설계에서 "퍼베이시브 모니터링을 완화하기 위해" 노력할 것이라고 발표했습니다. 이전에는 [89]체계적으로 수행되지 않았습니다.인터넷건축위원회는 2023년에 네트워크에 대한 프로토콜에 의한 정보공개는 [90]고의적이어야 하고, 수신자와 [91]송신자의 합의에 따라 수행되어야 하며, 가능하고 [92]필요한 정도로 인증되어야 하며, 신뢰성의 [93]정도에 따라 조치되어야 한다고 권고하였고,최소화하여 최소 개체 [94][95]수에 제공할 수 있습니다.IAB에 [96]따르면, 와이어 이미지를 설계하고 네트워크 요소에 제공되는 신호를 제어하는 것은 2023년의 "개발 분야"였습니다.

골화

프로토콜 골화네트워크 프로토콜의 유연성, 확장성 및 진화 가능성을 상실하는 입니다.이는 프로토콜의 와이어 이미지에 민감하고 유효하지만 미들박스가 올바르게 [97]인식하지 못하는 메시지를 중단하거나 방해할 수 있는 미들박스 때문입니다.이는 단대단 [98]원칙 위반입니다.2차적인 원인으로는 [99]프로토콜의 엔드포인트 구현에 있어서의 융통성이 없습니다.

새 프로토콜이나 확장이 인터넷에 배포되는 것을 막거나 새 프로토콜의 설계에 제약을 줄 수 있기 때문에, 새 프로토콜은 이미 배포된 프로토콜에 캡슐화되거나 다른 [100]프로토콜의 와이어 이미지를 모방해야 할 수도 있기 때문에, 인터넷 프로토콜 설계와 배포에 있어서 주요한 문제입니다.인터넷의 [101]전송 프로토콜은 전송 제어 프로토콜(TCP)과 사용자 데이터그램 프로토콜(UDP)이 유일하게 골화되어 있기 때문에, TCP 자체가 상당히 골화되어 프로토콜의 확장이나 수정이 [102]어려운 실정입니다.

골화 방지를 위한 권장 방법으로는 프로토콜 [103]메타데이터를 암호화하는 것과 확장점이 행사되고 와이어 이미지의 가변성이 [104]가능한 완전히 나타나도록 하는 것이 있습니다. 기존 골화를 해결하려면 프로토콜 [105]참가자 간에 조정이 필요합니다.QUIC는 고의적인 [81]반오석화 특성으로 설계된 최초의 IETF 전송 프로토콜입니다.

분류학

프로토콜의 분류 체계는 대개 사용 영역과 기능에 초점을 맞춥니다.예를 들어, 연결 지향 프로토콜과 연결 없는 프로토콜은 연결 지향 네트워크와 연결 없는 네트워크에서 각각 사용됩니다.기능의 한 예로 터널링 프로토콜을 들 수 있는데, 터널링 프로토콜은 패킷이 높은 수준의 프로토콜을 사용하여 전송 시스템을 통해 전달될 수 있도록 높은 수준의 프로토콜로 패킷을 캡슐화하는 데 사용됩니다.

계층 구조는 기능과 사용 영역을 모두 결합합니다.주요 계층화 체계는 IETF와 ISO에 의해 개발된 체계입니다.계층화 계획의 기본 가정이 두 가지를 구별할 수 있을 정도로 다르긴 하지만, 공통 프로토콜을 [106]두 계획의 계층과 연관시켜 두 가지를 비교하는 것이 일반적인 관례입니다.IETF로부터의 계층화 방식은 인터넷 계층화 또는 TCP/IP 계층화라고 불립니다.ISO의 계층 구조를 OSI 모델 또는 ISO 계층이라고 합니다.

네트워킹 장비 구성에서 기술 용어의 구별은 종종 다음과 같습니다.프로토콜이라 함은 엄밀하게 전송 계층을 의미하며, 서비스라 함은 전송을 위한 프로토콜을 사용하는 프로토콜을 의미합니다.TCP와 UDP의 일반적인 경우 서비스는 포트 번호로 구분됩니다.이러한 포트 번호를 준수하는 것은 자발적이기 때문에 콘텐츠 검사 시스템에서 서비스라는 용어는 포트 번호를 엄격하게 지칭하며, 응용 프로그램이라는 용어는 종종 검사 서명을 통해 식별된 프로토콜을 지칭하는 데 사용됩니다.

참고 항목

메모들

  1. ^ 확인 응답을 수신하지 못하면 원래 전송 또는 확인 응답이 손실되었음을 나타냅니다.송신자는 이러한 경우를 구별할 수단이 없으므로, 모든 데이터가 수신되도록 하려면 원래 전송이 손실되었다는 보수적인 가정을 해야 합니다.

참고문헌

  1. ^ US 7529565, Hilpisch, Robert E.;Duchscher, Rob & Seel, Mark et al., "Wireless 통신 프로토콜", 2009-05-05 출판, Starkey Laboratories Inc.Oticon AS에 할당
  2. ^ Protocol, Encyclopædia Britannica, archived from the original on 12 September 2012, retrieved 24 September 2012
  3. ^ a b Comer 2000, 11.2절 - 다중 프로토콜의 필요성, p. 177, "그것들(프로토콜)은 프로그래밍 언어가 계산에 무엇인지를 전달하기 위한 것입니다."
  4. ^ a b c Comer 2000, 1.3절 - 인터넷 서비스, p. 3, "프로토콜은 알고리즘이 계산에 어떤 영향을 미치는지 통신하는 것입니다."
  5. ^ Naughton, John (24 September 2015). A Brief History of the Future. Orion. ISBN 978-1-4746-0277-8.
  6. ^ Cambell-Kelly, Martin (1987). "Data Communications at the National Physical Laboratory (1965-1975)". Annals of the History of Computing. 9 (3/4): 221–247. doi:10.1109/MAHC.1987.10023. S2CID 8172150.
  7. ^ Interface Message Processor: Specifications for the Interconnection of a Host and an IMP (PDF) (Report). Bolt Beranek and Newman (BBN). Report No. 1822.
  8. ^ BOOKS, HIGH DEFINITION. UGC -NET/JRF/SET PTP & Guide Teaching and Research Aptitude: UGC -NET By HD. High Definition Books.
  9. ^ "NCP – Network Control Program". Living Internet. Archived from the original on 7 August 2022. Retrieved 8 October 2022.
  10. ^ Cerf, V.; Kahn, R. (1974). "A Protocol for Packet Network Intercommunication" (PDF). IEEE Transactions on Communications. 22 (5): 637–648. doi:10.1109/TCOM.1974.1092259. ISSN 1558-0857. Archived (PDF) from the original on 6 January 2017. Retrieved 23 February 2020. The authors wish to thank a number of colleagues for helpful comments during early discussions of international network protocols, especially R. Metcalfe, R. Scantlebury, D. Walden, and H. Zimmerman; D. Davies and L. Pouzin who constructively commented on the fragmentation and accounting issues; and S. Crocker who commented on the creation and destruction of associations.
  11. ^ McKenzie, Alexander (2011). "INWG and the Conception of the Internet: An Eyewitness Account". IEEE Annals of the History of Computing. 33 (1): 66–71. doi:10.1109/MAHC.2011.9. ISSN 1934-1547. S2CID 206443072.
  12. ^ Schwartz, Mischa (2010). "X.25 Virtual Circuits - TRANSPAC IN France - Pre-Internet Data Networking [History of communications]". IEEE Communications Magazine. 48 (11): 40–46. doi:10.1109/MCOM.2010.5621965. ISSN 1558-1896. S2CID 23639680.
  13. ^ Rybczynski, Tony (2009). "Commercialization of packet switching (1975-1985): A Canadian perspective [History of Communications]". IEEE Communications Magazine. 47 (12): 26–31. doi:10.1109/MCOM.2009.5350364. ISSN 1558-1896. S2CID 23243636.
  14. ^ The "Hidden" Prehistory of European Research Networking. Trafford Publishing. p. 354. ISBN 978-1-4669-3935-6.
  15. ^ "TCP/IP Internet Protocol". Living Internet. Archived from the original on 1 September 2022. Retrieved 8 October 2022.
  16. ^ Andrew L. Russell (30 July 2013). "OSI: The Internet That Wasn't". IEEE Spectrum. Vol. 50, no. 8.
  17. ^ Russell, Andrew L. "Rough Consensus and Running Code' and the Internet-OSI Standards War" (PDF). IEEE Annals of the History of Computing. Archived (PDF) from the original on 17 November 2019. Retrieved 23 February 2020.
  18. ^ "Standards Wars" (PDF). 2006. Archived (PDF) from the original on 24 February 2021. Retrieved 23 February 2020.
  19. ^ Ben-Ari 1982, chapter 2 - 동시 프로그래밍 추상화, p. 18-19도 동일하게 기술합니다.
  20. ^ Ben-Ari 1982, 섹션 2.7 - 요약, 페이지 27은 동시 프로그래밍 추상화를 요약합니다.
  21. ^ a b Marsden 1986, 섹션 6.1 - 표준이 왜 필요합니까? 페이지 64-65는 BSC를 예로 들어 표준 프로토콜과 표준 프레임워크의 필요성을 보여줍니다.
  22. ^ Comer 2000, Sect. 11.2 - The Need For Multiple Protocols, p. 177은 컴퓨터 통신과 프로그래밍 언어 사이의 유사성을 이끌어냄으로써 이를 설명합니다.
  23. ^ a b 11.10절 - 계층화의 단점, p. 192, 상태: 계층화는 프로토콜 설계의 기초를 형성합니다.
  24. ^ a b Comer 2000, Sect. 11.2 - The Need For Multiple Protocols, p. 177, 동일한 내용.
  25. ^ Comer 2000, Sect. 11.3 - The Conceptual Layers Of Protocol Software, p. 178, "각 계층은 문제의 한 부분을 처리할 책임이 있습니다."
  26. ^ Comer 2000, Sect. 11.11 - 다중화와 역다중화 이면의 기본 아이디어, p. 192는 동일하게 언급합니다.
  27. ^ "Data Communication - an overview ScienceDirect Topics". www.sciencedirect.com. Archived from the original on 31 May 2022. Retrieved 31 May 2022.
  28. ^ Kirch, Olaf (16 January 2002). "Text Based Protocols". Archived from the original on 30 May 2010. Retrieved 21 October 2014.
  29. ^ Kirch, Olaf (16 January 2002). "Binary Representation Protocols". Archived from the original on 30 May 2010. Retrieved 4 May 2006.
  30. ^ Kirch, Olaf (16 January 2002). "Binary Representation Protocols". Archived from the original on 5 March 2006. Retrieved 4 May 2006.
  31. ^ "Welcome To UML Web Site!". Uml.org. Archived from the original on 30 September 2019. Retrieved 15 January 2017.
  32. ^ Marsden 1986, 3장 - 기본 프로토콜 개념과 문제 영역, 페이지 26-42는 다음의 많은 부분을 설명합니다.
  33. ^ Comer 2000, 섹션 7.7.4 - Datagram Size, Network MTU, Fragmentation, 페이지 104, fragmentation 및 fragmentation에 대한 fragmentation과 fragment의 헤더에 미치는 영향에 대해 설명합니다.
  34. ^ Comer 2000, 4장 - 클래스풀 인터넷 주소, 페이지 64-67;71
  35. ^ Marsden 1986, 섹션 14.3 - 계층화 개념 및 일반 정의, p. 187, 주소 매핑에 대해 설명합니다.
  36. ^ Marsden 1986, 섹션 3.2 - 탐지 및 전송 오류, p. 27은 역방향 오류 수정의 장점을 설명합니다.
  37. ^ Marsden 1986, 섹션 3.3 - Acknowledgement, p. 28-33은 긍정적인 only acknowledgement의 장점을 설명하고 예외로서 데이터그램 프로토콜을 언급합니다.
  38. ^ Marsden 1986, 섹션 3.4 - 정보 손실 - 타임아웃 및 재시도, 페이지 33-34.
  39. ^ Marsden 1986, 섹션 3.5 - 정보 흐름의 방향, 페이지 34-35, 마스터/슬레이브와 통제권을 얻기 위한 협상에 대해 설명합니다.
  40. ^ Marsden 1986, 섹션 3.6 - Sequence control, p. 35-36은 패킷이 손실되는 방법과 시퀀싱이 이를 해결하는 방법을 설명합니다.
  41. ^ Marsden 1986, 섹션 3.7 - 흐름 제어, 페이지 36-38
  42. ^ 벤아리 1982, 그의 서문에서, p. 13.
  43. ^ 벤아리 1982, 그의 서문에서, p. xiv.
  44. ^ Hoare 1985, 4장 - 커뮤니케이션, 페이지 133, 커뮤니케이션을 다룹니다.
  45. ^ S. Srinivasan, Digital Circuits and Systems, NPTEL courses, archived from the original on 27 December 2009
  46. ^ a b Comer 2000, Sect. 11.2 - The Need For Multiple Protocols, p. 177은 계층별 분해를 소개합니다.
  47. ^ Comer 2000, Sect. 11.3 - The Conceptual Layers Of Protocol Software, p. 179, 첫 두 단락은 연속적인 계층을 통한 메시지 전송을 설명합니다.
  48. ^ Comer 2000, 섹션 11.2 - 다중 프로토콜의 필요성, 페이지 178, 유사성 프로토콜 소프트웨어 및 컴파일러, 어셈블러, 링커, 로더에 대해 설명합니다.
  49. ^ Comer 2000, 섹션 11.9.1 - 운영 체제 경계, 페이지 192는 운영 체제 경계에 대해 설명합니다.
  50. ^ IETF 1989, 1.3.1절 - Organization, p. 15, 2단락: 많은 디자인 선택들은 엄격한 층위의 창조적인 "파괴"를 수반합니다.
  51. ^ Comer 2000, 섹션 11.10 - 계층화의 단점, 페이지 192는 최적화의 예를 들어 "엄격한 계층화가 극도로 비효율적일 수 있는" 이유를 설명합니다.
  52. ^ Wakeman, I (January 1992). "Layering considered harmful". IEEE Network: 20–24.
  53. ^ Kurose, James; Ross, Keith (2005). Computer Networking: A Top-Down Approach. Pearson.
  54. ^ Lascano, Jorge Edison; Clyde, Stephen; Raza, Ali. "Communication-protocol Design Patterns (CommDP) - COMMDP". Archived from the original on 18 March 2017. Retrieved 17 March 2017.
  55. ^ Lascano, J. E.; Clyde, S. (2016). A Pattern Language for Application-level Communication Protocols. ICSEA 2016, The Eleventh International Conference on Software Engineering Advances. pp. 22–30.
  56. ^ Daigneau, R. (2011). Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services (1 ed.). Upper Saddle River, NJ: Addison-Wesley Professional.
  57. ^ Fowler, M. (2002). Patterns of Enterprise Application Architecture (1 ed.). Boston: Addison-Wesley Professional. ISBN 0-321-12742-0.
  58. ^ [1]F. 부슈만, K.Henney, D. C. Schmidt, 패턴 지향 소프트웨어 아키텍처 제4권: 분산 컴퓨팅을 위한 패턴 언어, 제4권치체스터 영국; 뉴욕: 와일리, 2007.
  59. ^ Bochmann, G. (1978). "Finite state description of communication protocols". Computer Networks. 2 (4–5): 361–372. doi:10.1016/0376-5075(78)90015-6.
  60. ^ Comer 2000, 인터넷 작업 용어 및 약어 용어집, p. 704, 용어 프로토콜
  61. ^ Brand, Daniel; Zafiropulo, Pitro (1983). "On Communicating Finite-State Machines". Journal of the ACM. 30 (2): 323. doi:10.1145/322374.322380. S2CID 11607967.
  62. ^ Marsden 1986, 섹션 6.3 - 표준화의 장점, p. 66-67, 동일한 내용.
  63. ^ 브라이언트 & 모로, 2009 페이지 4.
  64. ^ Marsden 1986, 섹션 6.4 - 표준화의 일부 문제, 페이지 67은 HDLC를 따라 프로세스를 설명합니다.
  65. ^ "X.225 : Information technology – Open Systems Interconnection – Connection-oriented Session protocol: Protocol specification". Archived from the original on 1 February 2021. Retrieved 10 March 2023.
  66. ^ Marsden 1986, 섹션 6.1 - 표준이 왜 필요합니까? 페이지 65는 ARPANET에서 배운 교훈을 설명합니다.
  67. ^ Marsden 1986, 섹션 14.1 - 소개, p. 181, OSI 소개.
  68. ^ Marsden 1986, 섹션 14.3 - 계층화 개념 및 일반 정의, p. 183-185, 용어 설명
  69. ^ Marsden 1986, 섹션 14.4 - 응용 계층, 페이지 188은 이것을 설명합니다.
  70. ^ Marsden 1986, 섹션 14.5 - 프레젠테이션 층, p. 189는 이것을 설명합니다.
  71. ^ Marsden 1986, 섹션 14.6 - 세션 층, 페이지 190, 이에 대해 설명합니다.
  72. ^ Marsden 1986, 섹션 14.7 - 수송층, p. 191이 이를 설명합니다.
  73. ^ Marsden 1986, 섹션 14.8 - 네트워크 계층, 페이지 192는 이것을 설명합니다.
  74. ^ Marsden 1986, 섹션 14.9 - 데이터 링크 계층, 페이지 194는 이를 설명합니다.
  75. ^ Marsden 1986, 섹션 14.10 - 물리적 층, p. 195가 이를 설명합니다.
  76. ^ ISO 7498:1984 – Information processing systems - Open Systems Interconnection - Basic Reference Model. p. 5. This Basic Reference Model of Open Systems Interconnection is based on the assumption that a connection is required for the transfer of data.
  77. ^ ISO 7498:1984/ADD 1:1987 – Information processing systems — Open Systems Interconnection — Basic Reference Model — Addendum 1.
  78. ^ Marsden 1986, 섹션 14.11 - 연결 없는 모드와 RM/OSI, 페이지 195는 이것을 언급합니다.
  79. ^ ISO 7498:1994 – Information processing systems - Open Systems Interconnection - Basic Reference Model.
  80. ^ Comer 2000, 섹션 1.9 - 인터넷 프로토콜 및 표준화, 페이지 12는 IETF가 기존 프로토콜을 사용하지 않은 이유를 설명합니다.
  81. ^ a b Trammell & Kuehlewind 2019, 페이지 2.
  82. ^ a b Trammell & Kuehlewind 2019, 페이지 3.
  83. ^ Trammell & Kuehlewind 2019, 페이지 4.
  84. ^ a b 페어허스트 & 퍼킨스 2021, 7. 결론
  85. ^ Trammell & Kuehlewind 2019, 페이지 5.
  86. ^ Trammell & Kuehlewind 2019, 페이지 6.
  87. ^ Trammell & Kuehlewind 2019, 페이지 7-8.
  88. ^ Farrell & Tschofenig 2014, p. 2.
  89. ^ a b Farrell & Tschofenig 2014, 페이지 3.
  90. ^ Arkko et al. 2023, 2.1.의도적인 배포.
  91. ^ Arkko et al. 2023, 2.2. 정보의 유통 통제
  92. ^ Arkko et al. 2023, 2.3. 정보와 인증의 보호
  93. ^ Arkko et al. 2023, 2.5. 정보의 영향 제한
  94. ^ Arkko et al. 2023, 2.4. 정보 최소화
  95. ^ Arkko et al. 2023, 2.6. 최소 개체 집합
  96. ^ Arkko et al. 2023, 3.추가 작업.
  97. ^ Papastergiou 2017, p. 619
  98. ^ Papastergiou 2017, p. 620
  99. ^ Papastergiou 2017, p. 620-621
  100. ^ Papastergiou 2017, p. 623-4
  101. ^ 맥퀴스틴, 퍼킨스 & 파예드 2016, p. 1.
  102. ^ Thomson & Pauly 2021, A.5. TCP.
  103. ^ 하디 2019, 페이지 7-8.
  104. ^ 톰슨 파울리 2021, 3.Active Use.
  105. ^ Thomson & Pauly 2021, 3.5. 활성 사용 복원
  106. ^ Comer 2000, 섹션 11.5.1 - TCP/IP 5-계층 참조 모델(p. 183)도 이와 동일하다고 기술하고 있습니다.

서지학

외부 링크