구글와이드(336x280)_상단 2개


제3장 프로토콜이란 무엇인가? 홈피 제작 관련지식

LAN 입문 - 프로토콜이란 무엇인가? 네트워크
2005/04/30 18:49

제3장 프로토콜이란 무엇인가?

1. 프로토콜이란?
프로토콜은 원래 외교상의 언어로서 국가와 국가간의 교류를 원활하게 하기 위한 외교에 관한 의례나 국가간에 약속을 정한 의정서이다. 이것을 통신에 적용 한 것이 통신 프로토콜 (communication protocol ) 이다.
즉 통신 프로토콜은 어떤 시스템이 다른 시스템과 통신을 원활하게 수용하도록 해주는 통신 규약 이라고 말할 수 있다.
1.1 프로토콜의 예
인간과 인간의 한 예로서 전화의 경우를 생각해 보자. 전화를 걸기 위해 최초에 수화기를 들고 다이얼링하여 상대방이 나오는 것을 기다린다.
상대방이 나오면 “여보세요,XXX양 입니까?” , “네 그렇습니다” , 저는 YYY입니다” 라고 상대를 확인한 후 용건에 들어간다.. 이때 두 사람이 서로 다른 언어를 사용하면 의사소통이 될 수가 없다. 그러나 인간의 대화에서는 말의 전후관계,상대방의 표정들을 통해 어느 정도 문법에 맞지 않아도 서로간에 내용을 전달할 수 있다. 이것은 인간이 분석하고 추론하는 지능을 지니고 있기 때문이다.
그러나 컴퓨터의 경우에는 인간의 경우처럼 융통성이 없으므로, 미리 규칙을 정해놓고 이 규칙을 따르지 않으면 통신이 불가능 하다. 따라서 컴퓨터가 관여하는 통신에서는 규칙,즉 프로토콜의 확립이 필수적이다.
1.2 프로토콜 개발의 경위
앞에서 기술한 바와 같이 모든 형태의 통신에 있어서 프로토콜이 규정되어 있다. 그렇지만 프로토콜이 본격적으로 의식되기 시작한 것은 컴퓨터를 사용한 온라인 시스템이 등장할 때 부 터이며,보다 구체화된 것은 컴퓨터 네트워크가 등장한 1970년대이다.
이와 같은 계기로 만든 것은 미국 국방성이 개발한 ARRPA (Advanced Research Project Agency ) 네트워크 이다. 이 네트워크는 미국의 대학 및 연구소의 컴퓨터 들이 연결되어있는 대규모 컴퓨터 네트워크로서, 패킷 교환 방식을 처음으로 실용화 하고 분산 처리를 위한 각종 프로토콜이 개발되었다.
이 때부터 미국의 학회에서는 프로토콜이 대대적으로 거론되기 시작하였다. 그 후 ARPA네트워크의 성과를 토대로 각종 프로토콜이 실용화되었는데,CCITT에서는 공중 패킷 교환 망 프로토콜인 X.25를 표준화 하였다. 이X.25프로토콜은 지금까지의 여러 가지 프로토콜을 계층구조의 개념을 도입하여 체계화 한 것으로, 그 후 프로토콜 개발에 대단한 영향을 주었다. 통신 업자들을 중심으로 한 이와 같은 데이터 통신 프로토콜의 표준화와 병행하여 컴퓨터 제조업자들도 적극적으로 표준화를 추진하고 있다.
결국 이용자의 다양한 요구에 유연하게 대처하기 위한 분산처리 지향의 컴퓨터 네트워크를 효율적으로 구축하기 위해서 어떤 기능을 어떻게 매치할 것인가 또한 이러한 기능을 실현하기 위해서는 어떤 프로토콜을 채용해야 하는가 등에 초점을 맞추어가고 있다.
1.3 프로토콜의 중요성
단일의 컴퓨터 시스템에서 단말-센터간에 프로토콜은 효율성을 높이기 위한 것이라면 어떤 결정을 해도 좋다. 그러나 두개의 시스템간이나 그 이상의 시스템간에 통신을 하려는 경우라면 각각의 프로토콜이 다른 경우에는 자유스러운 통신이 되지 않는다.
네트워크 상에서 통신을 하기 위해서는 모든 시스템간에 알맞은 프로토콜이 필요하다. 프로토콜은 상대와의 약속이 있기 때문에 시스템과 시스템 사이에 혹은 프로그램 상호간에 각각의 대상끼리 사이의 약속을 만들지 않으면 안된다.
그래서 이 프로토콜로 다른 기종 상호간에 자유롭게 효율적인 통신을 하기 위해 통일된 프로토콜의 표준화는 빠질 수 없는 중요한 사항이다. 더욱더 계층화된 경우에는 그 경계와 그 사이에 교환이 필요하게 되며 이것을 층간에 인터페이스라고 한다. 네트워크 아키텍쳐를 계층 구조에 따라 프로토콜을 정하고 보다 좋은 범위에서 정보 통신이 가능 하도록 표준화가 진전 되고있다.
네트워크의 아키텍쳐의 표준화는 통신 측에서는 CCITT가 주관되고 또 ISO (국제 표준화 기구) 는 정보처리 측면에서 검토가 별도로 시작되었지만 현재는 공동으로 표준화 작업이 진행되고 있다. 아무래도 국제기구 이기 때문에 급속한 진전은 기대하기 어렵지만 차츰 결과가 나오고 있다.
타 기종간에 통신을 가능하게 하기 위한 네트워크 아키텍쳐의 표준으로 개방형 시스템간에 상호 접속(OSI: Open System Interconnection) 이 발표 되었다. OSI는 먼저 통신의 제 기능을 몇 개의 계층으로 분류해서 표준화 줄거리를 결정하고 다음 각각의 줄거리 내에서 상세 부분을 결정해 가는 방법을 취하고 있다.
2. 프로토콜의 기능
프로토콜은 사용 목적과 종류에 따라 다양한 기능의 종합으로 이루어 지며, 모든 프로토콜에 모든 기능이 다 있는 것은 아니고 경우에 따라서는 몇 가지 같은 기능이 다른 계층의 프로토콜을 나타내기도 한다.
2.1 세분화와 재합성(fragmentation packetization and reassembly)
긴 메시지 블록을 전송에 용이 하도록 세분화 하여 전송하며,수신 측에서는 세분된 데이터 블록을 원래의 메시지로 재합성 시키는 기능이다. 이 때 두개의 실체간에 교환되는 세분화된 데이터 블록을 프로토콜 데이터 단위(PDU : Protocol Data Unit)라고 한다.
2.2 캡슐화 (encapsulation)
각 계층의 프로토콜에 적합한 데이터 블록은 데이터와 제어 정보를 갖고 있지만 때로는 제어 정보 만으로 구성되는 PDU도 있다.이때 사용되는 제어 정보는 다음 3가지가 있다.
a. 주소 :발신자와 수신자의 주소가 명시된다.
b. 오류검출부호 :오류를 검출하기 위해 프레임을 검사하는 절차도 있다
c. 프로토콜제어: 프로토콜 기능을 구현하기 위한 별도의 정보가 필요하다.

<그림 3.1 세분화와 재합성>

<그림 3.2 캡슐화>
2.3 연결 제어 (connection control )
연결 제어란 두 통신 실체간에 관련을 맺는 것으로 연결 확립(connection establishment) ,데이터 전송(data transfer),연결 해제(connection termination) 와 같은 3단계의 과정을 거친다.
2.4 흐름 제어 ( flow control )
흐름 제어는 수신 실체가 송신 실체의 데이터 전송량이나 전송속도 등을 조절하는 기능이다.
이와 같은 가장 간단한 흐름 제어는 정지/대기 방식으로 매PDU을 적용한 후 수신 측의 확인 신호(ACK)를 받기 전에는 전송할 수 없게 한 것이다. 즉 보다 효과적인 프로토콜 방식은 ACK를 수신하기 전에 보낼 수 있는 데이터 양을 정해준다.
2.5 오류 제어 (error control )
오류 제어는 전송 도중에 발생 가능한 오류들을 검출하고 정정하는 기능으로 대부분의 오류 제어는 프레임 순서를 검사하여 오류를 찾고 PDU를 재 전송한다.
2.6 동기화 (synchronization)
동기화란 연결된 통신국 간의 타이밍을 맞추는 기능 즉 2개의 실체가 같은 상태를 유지하는 것이다. 여기서 상태란 초기화 상태, 검사 전 상태, 종료 상태 등을 말하는데, 2개의 프로토콜 실체가 동시에 명확히 정의되어야 한다.
2.7 순서 결정( sequence)
순서 결정이란 전송하는 데이터들의 송수신 순서가 어긋나지 않도록 흐름 제어 및 오류 정정을 용이하게 하는 기능이다. 이 순서 결정의 목적은 순서에 맞는 전달, 흐름 제어, 오류 제어 등이다.
2.8 주소 설정 (addressing)
주소 설정은 송수신국의 주소를 명기 함으로써 정확한 목적지에 데이터가 전달되도록 하는 기능으로서 그 예를 든다면 방송에서 각 스테이션은 자기의 고유 번호를 갖는 패킷을 찾으며,교환 망에서는 데이터의 올바른 전달이나, 연결의 확립을 위해서는 목적지 스테이션을 확인해야 한다.
2.9 다중화 (multiplexing)
다중화란 하나의 통신로를 다수의 가입자들이 동시에 사용 가능하게 하는 기능이다. 프로토콜 연결의 다중화는 1:1 대응과 두 방향으로 일어날 수 있는데, 이는 상향 워드 다중화 ( upward multiplexing ) 와 하향 워드 다중화 (downward multiplexing )가 있다.
상향 워드 다중화는 여러 개의 상위레벨을 다중화 하거나 하나의 하위레벨을 연결하여 공유하는 것이고, 하향 워드 다중화는 분활 이라고 불리기도 하는데 하나의 상위레벨 연결이 복수 개의 하위레벨 서비스를 이용하여 이루어지는 경우이다.이때 상위레벨의 연결 트래픽이 여러 개의 하위레벨 연결로 분할되는데 이는 신뢰성, 효율성, 성능 향상 등을 좋게 한다.
2.10 전송 서비스
프로토콜은 실체가 사용되도록 별도의 부수적인 서비스를 제공할 수 있는데 그 예는 다음과 같다.

우선순위 (priority): 메시지 단위로 우선순위가 높은 메시지 순으로 전송
서비스 등급 : 서비스 등급에 따라 서비스
보안성 (security) : 액세스 제한 등의 보안 체제를 구현
3. 프로토콜의 분류
프로토콜은 특성에 따라 다양한 형태로 구분하여 분류할 수 있으나 일반적으로 다음과 같다
3.1 직접/간접 (direct/indirect)프로토콜
연결 형태에 다른 것으로 이는 두 실체간에 직접적이거나 간접적 일수도 있으며 밑의 그림은 연결 가능한 상태를 나타낸 것이다. 그림(a) 는 가장 간단한 점 대점(point to point)의 정보교환으로 두 지점간의 데이터 교환은 외부의 도움 없이 직접적인 통신이 가능 하다.
그림 (b)는 다중 분기 (multi point) 방식으로 액세스 제어가 필요 하므로 프로토콜이 그림 (a)보다 복잡하다. 그러나 그림 (a)와 그림 (b)의 경우는 외부의 도움 없이 실체간에 통신이 가능 하므로 이를 직접 프로토콜이라 한다.

<그림 3.3 프로토콜의 분류>
그림( c) 와 같이 시스템이 교환 망으로 접속된 경우에는 두 실체간에 직접적으로 프로토콜 사용이 불가능 하므로 다른 실체들의 도움을 받아야 정보교환이 가능하기 때문에 이를 간접 프로토콜이라 부른다. 그림( d ) 와 같이 여러 네트워크를 간접적으로 연결하여 통신하는 형태를 catinet라 한다.
3.2 단일체/구조적(monolithic/structured ) 프로토콜
구분상의 형태에 따라 단일체인지 구조적인지의 여부를 결정 하는데 ,이는 실체들간에 하나의 통신 작업을 하나의 단위로 처리하기는 어렵고 복잡하다. 그 예로서 전자우편 패키지가 동기형HDLC를 사용하여 두 시스템간에 패킷교환방식을 사용하는 경우 패키지도 패킷으로 나눌 수 있는 논리도 필요하다.
이와 같은 모든 기능들이 하나의 프로토콜로 연관되어 있다면 ,이를 단일체 프로토콜이라고 말할 수 있다. 단일체 프로토콜은 프로토콜의 수정 요구가 발생시 패키지의 재작성과 오류 발생시 오류 수정 등에 어려움이 있으므로 이를 구조적으로 설계, 구현하는 기술이 구조적 프로토콜이다.
이 구조적 프로토콜은 전체적인 기능을 몇 개의 작은 단위 기능으로 구분된 기능들이 수행하는 계층들로서 전체를 구성하는 프로토콜이다.이 프로토콜은 낮은 레벨에서보다 원시적으로 만들어 기능을 수행하고 보다 높은 레벨의 실체에 서비스를 제공하도록 한 것으로 OSI모델의 대표적인 예이다.
3.3 대칭/비대칭(symmetric/asymmetric) 프로토콜
프로토콜은 대칭적 이거나 비대칭적일 수 있으나, 대부분 프로토콜은 대칭적으로 동등한 두계 층의 실체간의 통신이 이루어진다. 비대칭인 경우에는 교환 논리가 있거나 하나의 실체나 시스템을 가능한 간단하게 할 때 사용되는 것으로 두 개의 실체가 동등 계층에 속하지 않는다.

<그림 3.4 각 프로토콜의 계층>
 
<자료출저 : 쌍용정보통신 통신사업본부>

null



바보들의 영문법 카페(클릭!!)

오늘의 메모....

시사평론-정론직필 다음 카페
http://cafe.daum.net/sisa-1

바보들의 영문법 다음 카페
http://cafe.daum.net/babo-edu/

티스토리 내 블로그
http://earthly.tistory.com/

내 블로그에 있는 모든 글들과 자료에 대한 펌과 링크는 무제한 허용됩니다.
(단, 내 블로그에 덧글쓰기가 차단된 자들에게는 펌, 트랙백, 핑백 등이 일체 허용되지 않음.)

그리고 내 블로그 최근글 목록을 제목별로 보시려면....
바로 아래에 있는 이전글 목록의 최근달을 클릭하시면 됩니다.
그러면 제목을 보고 편하게 글을 골라 보실 수 있습니다.

그리고 내 블로그내 글을 검색하시려면 아래 검색버튼을 이용하시면 됩니다.


가가챗창

flag_Visitors

free counters