기술(IT)

네트워크 프로토콜 (Protocol)

2019. 9. 30.
728x90

통신에서, 통신 프로토콜은 두 개 이상의 통신 시스템 기관이 물리적인 양의 어떤 종류의 변화를 통해 정보를 전송할 수 있도록 허용하는 규칙의 시스템이다. 프로토콜은 규칙, 구문, 의미론 및 통신 동기화와 가능한 오류 복구 방법을 정의한다. 프로토콜은 하드웨어, 소프트웨어 또는 둘의 조합에 의해 구현될 수 있다.


프로그래밍 언어는 계산에 대해서도 같은 것을 기술하므로 프로토콜과 프로그래밍 언어 사이에는 밀접한 유사성이 있다. 프로토콜은 프로그래밍 언어가 계산에 어떤 것인지 통신하는 것이다. 대체 공식은 프로토콜이 계산에 필요한 알고리즘을 통신하는 것이라고 기술한다.통신 시스템은 다양한 메시지를 교환하기 위해 잘 정의된 형식을 사용한다. 각 메시지에는 특정 상황에 대해 미리 결정된 가능한 대응 범위에서 반응을 이끌어내기 위한 정확한 의미가 있다. 특정 행동은 일반적으로 구현 방법과 무관하다. 통신 규약은 관련된 당사자들에 의해 합의되어야 한다. 합의에 도달하기 위해, 프로토콜은 기술 표준으로 개발될 수 있다. 다중 프로토콜은 종종 단일 통신의 다른 측면을 설명한다. 함께 작동하도록 설계된 프로토콜 그룹을 프로토콜 스위트라고 한다. 소프트웨어에서 구현될 경우 프로토콜 스택이다. 인터넷 통신 프로토콜은 IETF(Internet Engineering Task Force)에서 발행한다. IEEE는 유선 및 무선 네트워킹을 취급하고, 국제표준화기구(ISO)는 다른 유형을 취급한다. ITU-T는 공중 교환 전화 네트워크(PSTN)의 통신 프로토콜과 형식을 취급한다. PSTN과 인터넷이 융합되면서, 그 기준도 융합 쪽으로 추진되고 있다.


프로토콜 개발

통신이 이루어지려면 프로토콜을 선택해야 한다. 규칙은 알고리즘과 데이터 구조에 의해 표현될 수 있다. 알고리즘을 휴대용 프로그래밍 언어로 표현함으로써 하드웨어 및 운영 체제 독립성이 향상된다. 소스 코드는 프로토콜 사양으로 간주될 수 있지만, 규격의 소스 독립성은 상호운용성을 더 넓힌다. 어떤 경우에는 프로토콜 표준이 널리 받아들여지기에는 충분하지 않다. 즉, 때로는 소스 코드가 공개되고 대중을 위해 법률이나 정부에 의해 시행되어야 한다.프로토콜 표준은 일반적으로 표준화 과정을 개시하는 표준 조직의 승인이나 지원을 얻음으로써 만들어진다. 이 활동을 프로토콜 개발이라고 한다. 표준기구의 구성원들은 자발적으로 작업 결과를 준수하는 것에 동의한다. 종종 회원들은 프로토콜과 관련된 큰 시장 점유율을 통제하고 있으며, 많은 경우 표준은 중요한 공공 이익에 기여한다고 생각되기 때문에 법이나 정부에 의해 시행되므로, 프로토콜에 있어 승인을 얻는 것이 매우 중요할 수 있다.


프로토콜 표준의 필요성

프로토콜 표준의 필요성은 IBM이 발명한 BSC(bi-sync protocol)에 일어난 일을 보면 알 수 있다. BSC는 두 개의 개별 노드를 연결하는 데 사용되는 초기 링크 레벨 프로토콜이다. 그것은 원래 멀티노드 네트워크에서 사용되도록 의도된 것이 아니었으나, 그렇게 함으로써 프로토콜의 몇 가지 결함이 드러났다. 표준화가 없을 때, 제조업체와 조직은 자유롭게 프로토콜의 '강화'를 느껴 네트워크에 호환되지 않는 버전을 만들었다. 어떤 경우에는 사용자가 다른 제조업체의 장비를 사용하지 못하도록 하기 위해 의도적으로 이러한 조치를 취한 경우도 있다. 원래 바이싱크 프로토콜에는 50가지가 넘는 변종이 있다. 어떤 사람들은 표준이 적어도 이런 일이 일어나는 것을 막았을 것이라고 추측할 수 있다. 표준화 과정을 거치지 않고 프로토콜이 시장 지배력을 얻는 경우도 있다. 그러한 프로토콜은 사실상의 표준으로 언급된다. 사실상의 표준은 신흥 시장, 틈새 시장 또는 독점화된 시장(또는 과점 시장)에서 흔히 볼 수 있다. 그들은 특히 경쟁을 겁주는데 사용되었을 때, 매우 부정적인 지배력을 가지고 있을 수 있다. 역사적 관점에서 표준화는 사실상의 표준의 악영향에 대응하기 위한 조치로 보아야 한다. 긍정적인 예외들이 존재한다. GNU/리눅스와 같은 '사실상의 표준' 운영체제는 그 시장을 부정적으로 장악하지 못한다. 왜냐하면 출처가 공개되고 유지되기 때문에 경쟁을 유도하기 때문이다. 그러므로 표준화는 개방형 시스템 상호연결을 위한 유일한 해결책은 아니다.


표준 조직

통신 프로토콜 관련 표준 기구로는 국제 표준화 기구(ISO), 국제 전기 통신 연합(ITU), 전기 및 전자 공학 연구소(IEEE), 인터넷 엔지니어링 태스크포스(IETF) 등이 있다. IETF는 인터넷에서 사용 중인 프로토콜을 유지한다. IEEE는 상용 및 소비자 기기를 위해 전자 산업에서 많은 소프트웨어 및 하드웨어 프로토콜을 관리한다. ITU는 많은 무선 통신 시스템뿐만 아니라 공중 교환 전화 네트워크(PSTN)를 설계하는 통신 기술자들의 산하기관이다. 해양 전자제품의 경우 NMEA 표준이 사용된다. 월드 와이드 웹 컨소시엄(W3C)은 웹 기술에 대한 프로토콜과 표준을 생산한다.

국제표준기구는 국가 또는 상업적 이기심을 가진 지역단체보다 더 공정하게 고려되어야 한다. 또한 표준 조직은 미래의 표준에 대한 연구 개발을 수행한다. 실제로, 기관들이 언급한 표준들은 서로 긴밀히 협력한다.


표준화 프로세스

표준화 과정은 ISO가 소위원회 작업 그룹을 위탁하는 것으로 시작한다. 작업 그룹은 토론과 논평을 유발하기 위해 이해관계자(기타 표준기구를 포함)에게 작업 초안과 토론 문서를 발행한다. 이것은 많은 의문과 많은 토론 그리고 보통 표준이 무엇을 제공해야 하고 그것이 모든 요구를 충족시킬 수 있는지에 대해 약간의 의견 불일치를 야기할 것이다(대개 그렇지 않다). 모든 상반된 관점은 종종 타협을 통해 실무그룹의 초안을 진행시키기 위해 고려되어야 한다. 초안은 회원국의 표준기구와 각 나라 내의 다른 단체들이 논의한다. 의견과 제안이 수집되고, ISO 회원들이 제안에 대한 투표를 하기 전에 국가적인 견해가 형성될 것이다. 만약 거부된다면, 초안은 또 다른 투표를 위한 새로운 초안을 만들기 위해 반대와 반대 제안을 고려해야 한다. 많은 피드백, 수정 및 절충 후에 제안서는 국제 표준 초안, 그리고 궁극적으로 국제 표준의 상태에 도달한다. 그 과정은 보통 완성하는 데 몇 년이 걸린다. 설계자가 작성한 원본 종이 초안은 표준과 상당히 다르며, 다음과 같은 '특징' 중 일부를 포함한다. 정의되지 않은 채로 남겨지거나 구현자의 재량에 따라 정의된 집합의 값을 취할 수 있는 매개변수. 이것은 종종 일부 회원들의 상반된 견해를 반영한다. 회원들이 시설이 제공되어야 한다는 것에 동의하지만, 이용 가능한 시간에 어떻게 해야 하는지에 대한 합의에 도달할 수 없다는 것을 반영하여 향후 사용을 위해 예약된 매개변수 이 기준을 시행할 때 다양한 모순과 모호함이 발견될 수밖에 없다. 국제 표준은 정기적으로 재발행되어 그 결함을 처리하고 그 주제에 대한 변화하는 관점을 반영한다.


OSI 표준화

인터넷의 전신인 ARPANET으로부터 얻은 교훈은 프로토콜 역시 운용하기 위한 프레임워크가 필요하기 때문에 프로토콜의 표준화가 충분하지 않다는 것이었다 그러므로 구조화된 프로토콜(계층화된 프로토콜 등)과 그 표준화에 적합한 범용적이고 미래 지향적인 프레임워크를 개발하는 것이 중요하다. 이것은 기능성이 중복되는 프로토콜 표준을 방지하고 다른 수준(계층)에서 프로토콜의 책임에 대한 명확한 정의를 가능하게 할 것이다. 이로 인해 OSI 오픈 시스템 상호접속 참조 모델(RM/OSI)이 생겨났으며, 이는 다양한 계층 규격을 준수하는 표준 프로토콜과 서비스 설계를 위한 프레임워크로 사용된다. OSI 모델에서, 통신 시스템은 기본적인 전송 메커니즘을 제공하는 기초적인 물리적 매체에 의해 연결된다고 가정한다. 그 위에 있는 층은 번호가 매겨진다; n번째 층은 (n) 층이라고 불린다. 각 계층은 그 바로 아래의 계층의 서비스를 이용하여 그 위 계층(또는 애플리케이션 프로세스 상단에서)에 서비스를 제공한다. 계층들은 서비스 액세스 포인트라고 불리는 인터페이스를 통해 서로 통신한다. 각 시스템의 해당 계층을 피어 엔티티라고 한다. 통신하기 위해, 특정 계층의 두 동위 실체는 (n) 프로토콜을 사용한다. 이 프로토콜은 (n-1) 계층의 서비스를 사용하여 구현된다. 시스템이 직접 연결되지 않은 경우 중간 피어 엔티티를 사용한다. 주소는 서비스 액세스 지점을 고유하게 식별한다. 주소 이름 지정 도메인은 한 계층으로 제한될 필요는 없으므로, 모든 계층에 대해 하나의 이름 지정 도메인만 사용할 수 있다. 각 계층에는 두 가지 유형의 표준이 있다. 즉, 특정 계층의 피어 엔티티가 어떻게 통신하는지를 규정하는 프로토콜 표준과, 특정 계층이 그 위에 있는 계층과 통신하는 방법을 정의하는 서비스 표준이다.


RM/OSI의 원래 버전에서 계층과 그 기능은 최고 계층에서 최저 계층까지 다음과 같다.

애플리케이션 계층은 애플리케이션 프로세스에 다음과 같은 서비스를 제공할 수 있다. 프레젠테이션 계층은 애플리케이션 계층에 세션 설정 요청, 데이터 전송, 애플리케이션 계층 간에 사용할 구문 협상, 필요한 구문 변환, 포맷 및 특수 목적 변환을 제공할 수 있다. 세션 계층은 세션 연결의 설정 및 해제, 정상적이고 신속한 데이터 교환, 수신 세션 엔티티가 허가 없이 자신의 프레젠테이션 엔티티에 데이터를 릴리스하지 않도록 지시하는 검역 서비스, 상호 작용, 세션 계층에 다음 서비스를 제공할 수 있다. 경영진은 표시기업이 특정 통제 기능을 수행할 차례, 세션 연결의 재동기화, 표시기업에 대한 복구할 수 없는 예외 보고 등을 통제할 수 있도록 한다. 전송 계층은 선택된 서비스 품질에 필요한 비용 효율적인 방법으로 신뢰할 수 있고 투명한 데이터 전송을 제공한다. 그것은 하나의 네트워크 연결에 대한 여러 전송 연결의 멀티플렉싱을 지원하거나 하나의 전송 연결을 여러 개의 네트워크 연결로 분할할 수 있다. 네트워크 계층은 전송 피어 엔티티 사이의 네트워크 경로의 설정, 유지 및 해제를 수행한다. 릴레이가 필요할 경우, 라우팅 및 릴레이 기능이 이 계층에 의해 제공된다. 서비스 품질은 연결이 설정될 때 네트워크와 전송 주체 간에 협상된다. 이 계층은 또한 네트워크 혼잡 통제에 책임이 있다. 데이터 링크 계층은 데이터 링크 연결의 설정, 유지, 해제를 수행한다. 물리적 계층에서 발생하는 오류가 감지되어 수정될 수 있다. 오류는 네트워크 계층에 보고된다. 데이터 링크 단위 교환(흐름 제어 포함)은 이 계층에 의해 정의된다. 물리적 계층은 물리적 연결의 전기적 특성, 사용되는 전송 기법, 물리적 연결의 설정, 유지 및 정리 등과 같은 세부사항을 설명한다. 무접속 네트워크를 상정하는 TCP/IP 계층화 방식과는 대조적으로, RM/OSI는 접속 지향 네트워크를 상정했다. 연결 지향 네트워크는 광역 네트워크에 더 적합하고 무접속 네트워크는 근거리 네트워크에 더 적합하다. 통신을 위해 연결을 사용하는 것은 세션 및  회로의 어떤 형태를 의미하므로 (TCP/IP 모델에서 부족) 세션 계층이 필요하다. ISO의 구성원은 대부분 광역 네트워크에 관심이 많았으므로, RM/OSI의 개발은 연결 지향 네트워크와 비연결 네트워크에 집중되어 RM/OSI의 부록에서만 언급되었다. 그 당시에 IETF는 이것과 인터넷이 단순히 존재하지 않는 프로토콜을 필요로 한다는 사실에 대처해야 했다. 그 결과, IETF는 "합의와 실행 코드"를 바탕으로 자체적인 표준화 프로세스를 개발하였다.

LIST

댓글

추천 글