요약 |
통신을 하려는 주체들 사이에 언제, 어떻게, 어떤 내용을 통신할지 규정하는 규칙 |
정의상 가정 |
|
내용상 가정 |
|
공식 |
통신을 하려는 주체들 사이에 언제, 어떻게, 어떤 내용을 통신할지 규정하는 규칙 |
단위 |
|
응용 |
Physical layer, Data link layer, network layer, transport layer, session layer |
↑파란 박스의 글자를 클릭하시면 가정과 응용으로 넘어 가실 수 있습니다!!
우리는 인터넷 시대에 살고있습니다.
무작정 도선으로 연결하여 신호를 주고 받으면 될것같지만,
인터넷 사용자가 무척 많아 여러가지 혼선이 생기고 충돌이 생겨
일종의 규약을 만들어 놓았습니다.
그 규약을 프로토콜이라하며
정확하게 정의하자면, 통신을 하려는 주체들 사이에 언제, 어떻게, 어떤 내용을 통신할지 규정하는 규칙입니다.
이게 구현되려면, 통신 주체들이 모두 동일한 프로토콜을 사용해야합니다.
이 프로토콜은 layer라는 단계로 구성됩니다.
layer란 위 그림에서 보듯 기능별로 계층을 만들어 논 것입니다.
다시말해 Physical layer가 어떤 기능을 구현한다면 그것을 이용해 Data link layer가 기능을하고, Network layer, Transport layer, Session layer로 쭉 올라가서 통신을 완성하는 것입니다.
한 서비스를 제공하는 한개의 층으로 전자소자의 module개념과 비슷하나
layer는 하위 layer에 서비스에 의존한다는 점에서 차이가 있습니다.
이해가 절대 안될것 같아 layer를 이용해 두 컴퓨터가 통신하는 전체 시스템을 보겠습니다.
간략하게 설명하자면 어떤 컴퓨터에서 Application layer에 해당하는 어떤 코드를 발송하면, Presentation layer에서 알집을 압축하는 것처럼 기능을 붙이고, 그후 Session layer, Transport layer를 거쳐 Network layer로 갑니다.
그 신호가 Data link layer, Physical layer로 결국 도달합니다.(각각의 layer의 간략한 기능은 아래에서 설명하겠습니다.)
그럼 Physical layer에서 옆의 Physical layer로 신호가 전송되고 옆 통신체계에서는 다시 Data link layer, Network layer로 해석하며 다시 올라가서 원하는 주소로 매칭하여 전달하고자 하는 PC의 Physical layer로 간뒤 Data link부터 쭉 올라가서 원래 전하고자했던 Application layer를 전달하게 됩니다.
그렇다면 왜 layer를 쓰는 걸까요?
먼저 기능별로 나누어 두었기 때문에 이해/구현이 편하며, 문제가 있을시 한개의 layer만 해결하면 되므로 발전시키기 좋고 관리가 편합니다.
인터넷 연결이 엄청나게 복잡한 system이기 때문에,
구분되어있는 구조는 다른 layer의 동작에 영향을 주지 않아 좋습니다.
이때 가장 큰 대전제로 통신은 어떤 특정한 사람대 사람으로 이루어 져야 합니다.
즉 peer-peer로 구성되어야 하는데 이것이 보내고 받는 것의 가장 기본입니다.
이러한 시스템을 공식적으로 규정한 것이 ISO OSI입니다.
여기에는 protocol의 상세 규정이 공개되어 있으며, 가입/탈퇴가 자유로운 기구에 의해서 관리가 되는 protocol standard입니다.
다시말해
ISO(International Organization for Standards)에서 제정한것으로 이 open protocol standards로 구현한것이 Open system이라 합니다. 사실 현재 실제로 널리 사용되지는 않지만 layer 구조의 근본을 확인할때 기준이 됩니다.
이 표준은 Reference model, Service architecture, Protocol architecture로 나뉘는데,
1. Reference model은 통신을 위한 7 layer model을 정의하는데 필요한 layer, service, service access point, name과 같은 개념을 정의합니다.
각 layer에서는 하위 layer의 service를 사용하며, 상위 layer에게 service access point를 통해 service를 제공합니다.
2. Service architecture에서는 layer에서 제공하는 service와 그와 같은 service를 제공하는 service access point interface를 규정합니다. 단 실제 service를 제공하는 protocol을 규정하지는 않습니다.
3. Protocol architecture는 service architecture를 구현하는데 사용된 protocol의 집합을 규정하고 동일한 service architecture를 구현하더라도 서로다른 protocol architecture를 사용할 수 있습니다.
참고로 표준안(standards)는 de facto standard와 de jure standard로 구서되는데 de facto standard는 널리 사용되기 있기에 자연스럽게 표준안이 된것이고, de jure standard는 국제기구에 의해서 공식적인 절차로 규정된 표준안입니다.
위의 ISO OSI 7 layer는 de jure standard이고 TCP/IP는 de facto standard입니다,
이 standard는 계속 발전이 되는데, 이 새로운 내용은 누구나 작성가능하고 다른사람의 의견을 통과하면 적용이됩니다.
이 문서를 RFC(Request for Comments)라 하며 http://www.rfc-editor.org 에서 볼 수 있습니다.
프로토콜은 syntax, sematics, timing으로 구성되는데, 특히 syntax 즉 전송되는 데이터 형식 혹은 구조를 규정한 것이 송신측, 수신측 모두 같은 syntax로 구성되어야 합니다. 또한 sematics는 전송되는 데이터를 구성하는 각 필드들의 의미를 나타냅니다. 즉 데이터의 각 필드의 값을 어떤의미로 해석을 해야하며 그에 따라서 어떤 동작을 수행하여야 하는지 등을 규정한 것입니다.
또한 timing은 데이터를 전송하는 시점과 데이터 전송속도를 규정한 것입니다. 즉 송신속도가 10Mbps라면 수신속도도 10Mbps이어야 합니다.
이들은 각 layer를 통해 구현되는데 다음그림을 보겠습니다.
layer 7(Application layer)에서 layer 1(Physical layer)까지 내려오는것을 Encapsulation이라하고 올라가는 것을 Decapsulation이라 합니다.
최종적으로 하고자하는 목표는 원하는 상대 컴퓨터에 layer 7의 data를 전달해주는 것입니다.
전달할때 필요한 게 무엇이 있을까요?
주소 정보나 형식정보가 있어야 하지 않을까요?
그 정보들을 layer가 encapsulation될때마다 header라는 data를 추가합니다.
즉 편지봉투처럼, 포멧을 설정하는 것입니다.
원하는 주소에 도달하는데 라우터도 많고 거쳐야 할 관문이 많아서 그럽니다.
그렇게 7 layer까지 header가 붙고 가면 물리적인 전송선로로 전송이 되어 각각의 header에 맞는 주소로 전달이 됩니다. 그렇게 전달이 될때 하나씩 decapsulation되어 상대편 컴퓨터에 최종적으로 layer 7의 data를 전달합니다.
좀더 자세히 본다면, 위와 같이 header를 이용하여 원하는 주소에 전달해 줍니다.
'전자공학' 카테고리의 다른 글
Data link layer (0) | 2017.03.25 |
---|---|
Physical layer (0) | 2017.03.25 |
옴의 법칙(ohm's law) (0) | 2017.03.01 |
구조제어구문(if문, while문, for문, if-else문, goto문) (2) | 2017.02.25 |
고급 언어 (high-level language) (0) | 2017.02.23 |