구글상단


[웹용어] 프로토콜의 개념 - Nate Tong 자료 옮김 by 놀라운넘

                


1. 프로토콜의 개념

한때 대중들이 정보통신에 대해 전혀 관심이 없었을 때에도 프로토콜이란 단어가 가끔 신문기사에 등장한적이 있었다. 대체로 외국의 국빈이 우리나라를 방문하였을 때 그 방문기사에 등장하던 프로토콜이란 단어는 국빈을 대접하는 의전 절차라는 의미로 쓰인다.
예를들어 외국 원수의 공식 방문시 우리나라에서는 국무총리나 외무부 장관이 기내에 들어가서 영접을 하고 난 후 의장대를 사열하고, 이어서 환영연설을 하고, 저녁에는 대통령과의 만찬이 있고 등등 방문객의 지위나 방문 형태에 따라서 그 프로토콜도 달라지게 된다.
프로토콜이란 단어를 사전에서 찾으면 위에 얘기한 외교상의 의례란 의미 외에도 의정서, 조약(안)으로 설명이 되어있다. 아무튼 프로토콜이란 단어속에는 어떤 경우이든지 간에 두 상대방이 있어 그 두 상대방간 합의된 약속이란 의미를 내포하고 있다. 국빈의 의전절차에도 피방문자가 지켜야 할 도리뿐만 아니라 방문객이 이에 따라 취해야 하는 행동 절차도 같이 포함되어 있으므로, 프로토콜이란 방문자와 피방문자 두 상대방의 행동양식에 대한 미리 정해진 약속으로 볼 수 있다. 방문객이 이렇게 하면 피방문객은 저렇게 하고, 피방문객이 또 이렇게 하면 방문객이 거기에 대응하여 행동하는 등등 프로토콜은 외교관이 배우고 갖추어야 할 중요한 내용이 틀림없다.

그러면 통신에 등장하는 프로토콜은 어떤 의미를 지니고 있으며 왜 필요한가?
사실 통신에서 말하는 프로토콜은 엄밀히 말하면 통신 프로토콜이라고 앞에 통신을 반드시 붙여 말해야 한다. 그런데 어떤 사실을 얘기할 때 대주제가 통신인 경우 우리는 통신을 생략하고 보통 프로토콜이라고만 말하게 되고, 이 경우 듣는 사람이나 말하는 사람 모두 프로토콜은 통신 프로토콜을 의미하게 되는 셈이다. 이제 프로토콜이 통신 프로토콜의 생략형이라는 것은 분명해졌다.

통신 프로토콜의 정의에는 앞에서 말한 프로토콜의 일반적인 개념이 그대로 들어있다. 통신이란 말에 이미 두 상대방이라는 개념이 배경에 놓여 있다. 상대방이 없는 통신이란 있을 수 없으므로, 통신 프로토콜 또한 당연히 정보를 송신하고 수신하는 두 상대방 사이의 약속이다. 약속은 약속인데 그럼 무슨 약속인가. 앞에서 말한 외교적인 프로토콜에서처럼 상대방을 예우하기 위한 약속이 아님은 분명하다. 통신은 공학이다. 따라서 필요한 것은 예의가 아니고 통신의 목적을 경제적으로 달성하기 위한 약속이다.

2. 효율적인 관리

공학적인 의미의 통신의 목적은 한마디로 정확한 정보의 전송이다. 공학에서는 정확성만 의미를 갖는 것이 아니라 경제성 또한 중요한 의미를 갖는다. 따라서 통신 프로토콜은 두 통신하는 상대방 사이에 정확하고 효율적인 정보의 전송을 위한 여러 가지 약속의 집합이다.
다시 말하면 통신 프로토콜은 송신자가 이렇게 하면 수신자가 저렇게 하고, 수신자가 어떻게 하면 송신자가 거기에 따라 어떤 행동을 취해야 하는지 등을 사전에 약속해 둔 것이다. 이러한 사전 약속이 없다면 어떤 상황에서든지 정확한 정보를 효율적으로 전송해야 한다는 통신의 기본목적을 달성할 수 없기 때문이다.
통신하는 상대방은 일반적으로 서로 원격지에 위치한다. 따라서 정보를 전송하기 위해서는 정보를 전기적인 혹은 광학적인 형태로 변환하고 그 변환된 신호가 통신채널을 통해 흐르게 될 때 정상적인 신호의 흐름을 훼방놓는 여러가지 현상이 존재하게 된다. 이러한 훼방 행위는 통칭하여 잡음이라는 형태로 나타나게 되고 이는 신호의 변형을 가져오고 신호변형은 결국 정확한 정보의 전송을 방해한다. 즉, 신호의 전송 중에 에러가 발생하게 되고, 따라서 통신 프로토콜에서는 이러한 에러가 발생하였을때 어떻게 에러의 발생사실을 알아내고 손실된 정보를 회복할 것인가에 대한 엄밀한 절차가 사전에 약속되어 있어야 한다.

그러한 약속이 프로토콜의 일부가 된다. 프로토콜이라는 약속의 집합속에 이렇게 에러에 대응하기 위한 약속이 중요하기는 하나 그것이 프로토콜의 전부는 아니다. 정보를 정확히 그리고 효율적으로 전송하기 위해서는 동기(sychronization)라고 부르는 개념도 중요하다.
예를 들어 정보를 송수신하는 상대방이 서로 한 비트의 시간 길이를 서로 다르게 사용한다든지, 한 메시지의 시작 지점을 서로 다르게 인식하게 되면 순식간에 대량의 에러가 발생하기 때문에 이들에 대해서도 사전 약속이 필요하다.
이 뿐만 아니라 정보흐름의 양을 조절하는 흐름제어(flow control) 방법도 역시 사전에 약속되어 프로토콜 속에 포함되어 있어야 한다. 흐름제어란 정보의 송신측에서 너무 빠르게 정보를 보내는 바람에 수신측에서 이를 미처 소화하지 못함으로써 결과적으로 정보의 손실을 가져오는 사태를 막기 위한 방법을 말한다.

에러제어, 동기, 흐름제어 등에 관한 약속 이외에도 통신하는 상대방의 상호위치가 어디냐에 따라 여러가지 약속이 추가로 필요하다. 그리고 효율적인 전송을 위해서도 여러가지 기법이 있으므로 어떤 경우에 어떤 방법을 사용해야 할지에 대해서도 사전에 약속하여 프로토콜에 포함시켜야 하며 최근에 관심이 높아지고 있는 정보의 안전성(security)을 위한 약속도 역시 여러가지 방법이 있을 수 있으므로 사전에 프로토콜에 포함되어야 한다.

3. 원리

지금까지 우리는 통신하는 두 상대방이란 표현을 사용하였는데 OSI 규약에서는 이를 실체(entity)라는 용어로 사용하고 있다. OSI에서는 통신하는 두 상대방이 컴퓨터 내부에서 돌아가는 프로그램인 경우가 대부분이다. 하지만 위에서 설명한 통신 프로토콜은 통신하는 두 상대방 즉 실체가 사람인 경우, 우리가 전화를 이용하여 음성 통신을 하는 것과 마찬가지로 그대로 적용되는 이야기이다. 이는 사람들이 전화를 통해 음성 정보를 주고 받을 때에도 프로토콜이 필요하다는 뜻이다. 사람이 다른 사람과 전화 할 때에도 전화선이라는 전송채널에서 에러가 발생하며, 사람에 따라서는 너무 빨리 말하는 사람이 있어 듣는 사람이 미처 이해하지 못하고 지나가는 경우가 있는데 사람들은 이 경우 그러한 상황에 자연스럽게 대처할 수 있는 능력을 태어났을 때부터 갖고 있다.

즉, 잡음 때문에 상대방의 단어를 놓쳤을 때에는 "잠깐 잘못들었는데 다시 한번 말해 줄래" 라든지 상대방 말이 너무 빨라 의미를 소화하기 어려우면 "잠깐 좀 천천히 말해줄래"라고 하는데 이는 프로토콜 용어로는 각각 에러제어와 흐름제어에 해당된다.
위에서 말한대로 사람들은 누구든지 프로토콜을 학습하지 않고도 잘 알 수 있으므로 굳이 사전에 프로토콜이라는 약속을 할 필요가 없을 뿐이다. 따라서 지금은 사람간의 통신에는 정보를 정확히 효율적으로 전송하기 위한 약속은 필요치 않고, 그 대신 예의바른 통신을 하기 위한 프로토콜은 많을수록 좋은 것이다.
반대로 지능이 전혀 없는 정보기기들은 돌발적인 상황에 대처할 능력이 전혀 없으므로 통신할 때 발생할 수 있는 모든 상황에 일일이 꼬치꼬치 이럴 때는 이렇게, 저럴 때는 저렇게 등등의 지시를 해 놓아 마치 지능을 갖는 것처럼 만들어 주어야 한다. 이렇게 통신하는 두 상대방은 정보의 정확하고 효율적인 전송을 위한 많은 약속들이 필요하나, 상대방끼리 예의를 차리기 위한 프로토콜은 전혀 필요치 않다.

통신하는 두 상대방은 틀림없이 모든 프로토콜이 요구되기는 하나 사람인 경우에는 그 프로토콜이 명문화되어 있지 않고 예의범절이 포함되어야 하며, 정보기기인 경우에는 그 프로토콜은 엄밀히 명문화되어야 하고 그대신 예의범절에 관한 부분을 포함시킬 필요도 없고 포함되어서도 안된다. 정보통신이 사람 사이의 통신과 다른점은 지능이 없는 정보기기 사이의 통신이라는 점 이외에도 사람과 사람간의 통신이 1대 1인것과는 달리 1대 다수, 혹은 다수대 다수의 경우가 많으므로 프로토콜 또한 이러한 경우까지 대비해서 만들어져야 하므로 종류가 많고 복잡해질 수 밖에 없다.

여기서 말하는 정보통신이라는 용어는 정보처리 및 모든 통신을 통칭하는 넓은 의미의 정보통신이 아니라 정보기기 사이의 통신을 의미한다. 정보기기는 물론 정보를 송신하고 수신할 수 있는 기기를 통칭하는 용어로서, 컴퓨터만을 의미하지 않는다. 예를 들어 팩시밀리도 정보기기이며, 공해를 측정하여 그 결과를 공해 감시 센터로 전송하는 공해 측정기나, 장마철에 한강의 수위나 유속을 홍수 통제 본부로 송신하는 수위유속 측정기도 정보기기다.
따라서 이들 사이에도 모두 통신의 프로토콜이 필요하다. 더 나아가 현존하는 모든 통신 관련 정보기기는 어떠한 형태든 모두 프로토콜을 갖고 있다.

4. 구성

여기서 중요한 의미를 갖는 프로토콜은 사용하는 범위가 넓고 표준화 되어 있어 전세계 어디에 설치되어 있는 정보기기 간에도 정보의 상호교환을 가능하게 하는 그런 종류의 프로토콜로, 흔히 말하는 컴퓨터의 네트웍에서 사용되는 프로토콜이다.
실제로 말하면 ISO, TCP/IP 등의 프로토콜이며, 그밖에도 SNA(Simple Network Architecture), ONA(Open Network Architecture)등 특정 컴퓨터 회사에서 만들어진 프로토콜 등도 있다. 좀 더 구체적으로 말하면 X.25나 HDLC(High level Data link control)등의 예를 들수 있다.

프로토콜을 폭 넓게 이해하기 위해서는 계층화의 사고방식을 이해하지 않으면 안된다. 컴퓨터 네트웍은 제작회사가 서로 다른 컴퓨터끼리 통신할 수 있도록 다양한 응용 프로그램과 터미널, 그리고 데이터 전송을 돕는 갖가지 통신장비 및 전송장비와 전송매체 등으로 구성되게 되었고, 이러한 환경에서 정확하고 효과적인 정보전송을 수행하기 위해서는 프로토콜 역시 복잡하고 다기능화 할 수밖에 없다.
따라서 이러한 프로토콜들의 효과적인 정리를 위해서 프로토콜 계층화의 사고 방식이 도입되었다.

계층화의 개념은 구조화 프로그래밍(Structured Programming)의 경우와 흡사하다. 프로토콜의 각 계층은 구조화 프로그래밍의 모듈(Moudule)과 같으며, 각 계층이 수직적으로 상하 관계를 갖는 것은 모듈들을 수직적으로 배치하여 모듈 사이의 접촉(interface)이 최소화 되도록 하는 개념과 흡사하다. 즉, 네트웍 프로토콜이 계층화되어 상위계층이 인접한 바로 아래 계층의 서비스를 받는 것은 마치 구조화 프로그래밍에서 메인 프로그램이 부프로그램을 호출하여 서비스를 받는 것과 같으며, 이때 호출한 프로그램과 호출 당한 프로그램이 파라메터를 이용하여 필요한 정보를 주고 받는 것과 같이 역시 상위 계층이 인접한 하위 계층의 서비스를 받을 때 필요한 정보를 파라메터의 형태로 주고 받게 된다. 또한 구조화 프로그램에서 모듈 내부의 변경이 외부의 다른 모듈에게는 영향을 미치지 않는 것과 마찬가지로, 어떤 계층의 내부적인 변화는 다른 계층의 내부적인 변화에 전혀 영향을 받지 않으므로 계층화 되지 않았던 종래의 통신 프로토콜에서 기능의 일부 변경으로 프로토콜 전체를 다시 작성해야 하는 어려움을 극복할 수 있게 되었다.
계층화된 네트웍 프로토콜들을 총칭하여 네트웍 구조(Network Architecture)라고 부른다. 앞에서 말한 OSI나 SNA, TCP/IP등의 프로토콜들은 상위 계층에서부터 하위계층까지 논리정연한 구조를 갖는 프로토콜의 집합으로, 이들은 각각 현재 사용중인 가장 대표적인 네트웍 구조인 셈이다.
가장 나중에 만들어진 네트웍 구조인 OSI는 국제표준기구인 ISO에서 만들어진 7계층을 갖는 네트웍 구조로서 가장 넓은 지지층을 확보하고 있으며, 모든 네트웍 교과서의 모델로 소개되고 있다. 가장 많은 프로토콜을 거느리고 있고 가장 다양한 기능을 갖고 있으며, 언젠가는 지구상의 모든 정보기기들이 이에 따르려는 계획을 갖고 있는 세계적인 표준이다.
물론 철저하게 계층화된 구조를 갖고 있고, 많은 프로토콜이 개발되어 있으며 지금도 끊임없이 개발이 이루어지고 있어 앞으로도 계속 개발이 이루어 질 것이다. 그러나 모든 정보기기들이 이들을 채택할 때까지는 상당한 시간이 걸릴 것이다.

5. 종류

컴퓨터 언어에서도 이론적으로 가장 좋은 언어가 반드시 가장 많은 사용자를 확보하지 못하는 것과 마찬가지로, 네트워크 프로토콜에서도 가장 이상적이고 논리적이며 다양한 기능까지 갖춘 OSI가 현재 시점에서는 가장 많은 사용자를 확보하지 못하고 있는 실정이다. 이는 OSI가 만들어진 것이 SNA(Systems Network Architecture)나 TCP/IP보다 늦고, 실제 상품화가 늦어지고 이용자들이 비교 평가하여 값싸고 좋은 물건을 살 수 있을 만큼 OSI에 근거한 다양한 프로토콜 제품들이 시장에 풍부하지 못하기 때문이다. 이에 비해 TCP/IP 프로토콜 제품들은 매우 다양한 제조회사들이 관련 제품을 선보이고 있고 때문에 가장 널리 보급되어 있기 때문에 현재 시점에서 가장 큰 지지세력을 확보하고 있는 셈이다. 이러한 경향은 최소한 5년에서 10년 이상 지속될 가능성이 있다. 특히 국내의 경우에는 웍스테이션과 유닉스, 그리고 인터넷의 보급과 함께 시작된 TCP/IP 프로토콜 제품들이 한 동안 큰 세력을 형성하며 상당기간 동안 그자리를 지켜나갈 것으로 보인다. SNA는 그 동안 아이비엠 컴퓨터의 막강한 시장 점유율에 의해 널리 보급되었고, 아직도 아이비엠의 후광을 입고 있어 쉽게 사라지지 않을 것으로 보인다.
어떻게 보면 현재 네트웍 기술의 중심사상이 된 계층화의 개념을 비롯하여, 중요기술과 개념들이 상당 부분 아이비엠의 SNA로부터 출발했다고 봐도 무리는 아닐듯 싶다. 최근 아이비엠 자체의 시장점유율 하락에 따라 SNA에 근거한 프로토콜의 사용도 줄어들 것으로 생각할 수 있으나, 아직은 프로토콜을 공부할 때 SNA를 빼놓을 수 없다.

우리가 프로토콜을 분류할 때 상위계층 프로토콜과 하위계층 프로토콜로 구분하는데 여기서 상위계층 프로토콜은 통신의 이용자가 손쉽게 통신을 이용할 수 있도록 해 주는 역할을 수행하는데 반하여, 하위계층은 실제 통신이 어떻게 효과적으로 정확하게 정보를 전송할 수 있게 하느냐에 관심이 있다. 어떻게 보면 통신의 최종 이용자에게 보이는 것은 상위계층 중에서도 가장 상위계층인 응용계층 (OSI인 경우 제7계층)뿐이고, 나머지 계층들은 응용계층이 운용되는데 필요한 각종 서비스를 제공하는데 불과하다.
전자우편, EDI, 메시지 핸들링 시스템, FTAM(File Transfer Access and Management)등은 모두 응용계층 프로토콜에 속한다. 따라서 네트웍의 단순한 이용자는 이러한 응용계층의 프로토콜 이용법만 공부하면 네트웍을 이용하여 원하는 정보전송을 행할 수 있으나, 네트웍의 설계 운용자들은 그 이하 계층의 프로토콜을 공부해야 한다.
한국적인 통신 프로토콜의 개발은 국제 표준과의 문제 때문에 의미없는 일이지만 모든 프로토콜 제품을 돈을 주고 사와야 하는 현실을 생각할 때, 통신 소프트웨어에 많은 관심을 기울여야 함은 당연한 일이다. 다른 일반 응용 소프트웨어에 비해 통신 프로토콜 제품의 가격이 상대적으로 높고 따라서 국내 개발 자체가 더 높은 부가가치의 창출을 의미하기 때문이다.

6. PDU(Protocol Data Unit)

프로토콜 이용자 정보를 실어나르기 위해서는 프로토콜 데이타 유니트(PDU: Protocol Data Unit)를 사용한다. 즉 PDU는 물건을 운반할때 상자 단위로 포장하여 운반하는 것과 같이 프로토콜이 정보의 운반을 위해서는 PDU라는 상자를 이용한다. 우리가 상자 단위로 물건을 포장하여 운반할때 그 상자마다 물품의 내용이나 발송처 수신처 등을 표기하는 것과 마찬가지로 PDU에도 이용자 정보뿐만 아니라 정보의 발신처, 수신처등의 주소와 전송등에 에러의 발생이 있었는지를 점검하기 위한 정보 그밖에 흐름제어 등을 위한 정보등이 같이 들어가게 된다.

계층화된 프로토콜에서는 계층마다 PDU이름을 독특하게 붙여 사용하는 경우가 있다.
계층2 PDU는 프레임(Frame), 계층3 PDU는 패킷(Packet), 계층4 PDU는 세그먼트(Segment)등으로 부르는 것이 일반적이다. 이러한 특별한 이름이 없는 경우에는 그냥 몇 계층의 PDU라고 부르게 된다. 그리고 세그먼트라는 PDU이름은 TCP에서 사용하는 경우가 많다.

※ Source : LG텔레콤

출처 : Tong - 놀라운넘님의 Web 용어정리통










 








블로그코리아에 블UP하기








덧글

댓글 입력 영역


[BEST] Funny baby videos

통계 위젯 (화이트)

2215
89
1031089

코튜버

[TOP] KoTuber Funny videos

구글 애드센스