계층화의 개념
계층화에 대한 개념을 이해해야 합니다. 네트워크나 통신에 대한 책을 보게 되면 계층구조가 항상 나옵니다.
보통 사람과 사람 간의 대화를 하게 되면 내가 가지고 있는 어떤 생각을 언어로 표현합니다. 그 다음에는 물리적인 전송장치, 즉 다시말해서, 입으로 이야기를 합니다.
그러면 이제 말하는 내용이 공기라는 매체를 통해서 수신 장치, 귀로 듣습니다. 그 다음에는 한국어로 말을 하고 있으니까 한국말 하는 것을 듣습니다. 그래서 아 이게 한국말이구나. 알고 그게 무슨 뜻인지 아는 것입니다.
그래서 사실은 사람과 사람 간의 대화도 가만히 생각해보면 내가 가지고 있는 생각, 즉 아이디어라는 것을 언어로 표현하고, 물리적인 송수신 장치인 입과 귀를 통해서 의사소통한다는 것을 알 수 있습니다.
그러니까 그냥 이야기 하는 것 같지만 사람과 사람 간의 대화에도 3개의 계층으로 나누어져 있습니다. 즉 아이디어와 언어와 물리적인 송수신장치로 나누어져 있습니다.
예를 들어서 어떤 컴퓨터가 있으면 이 컴퓨터에서 전송해서 사용하는 속도가 10Mbps를 사용한다고 가정합니다. 그걸로 쭉 쓰다가 100Mbps에서 사용하는 어떤 인터넷을 쓰겠다고 했을 때, 컴퓨터를 다 바꾸지 않습니다. 10Mbps용 따로 있고, 100Mbps용 따로 있고, 1Gbps용 따로 있지 않습니다.
어떤 인터넷을 사용한다고 하면, 그냥 속도가 빨라지면 사실은 우리가 속도와 관련된 장치만 교체를 하면 됩니다. 컴퓨터의 다른 내용을 바꾸지 않습니다. 크롬을 사용하던 인터넷 익스플로러를 사용하던 그거 10Mbps따로 100Mbps 따로 있지 않습니다. 특정계층이 변경이 일어났을 때, 다른 계층의 영향을 받지 않는것입니다.
언어의 표현이나 이런 것을 좀 더 풍부하게 하고 싶으면 책을 많이 읽고 지식을 많이 쌓으면 생각이라고 하는 그런 계층이 풍부해집니다. 그런 것처럼 사람과 사람간의 통신에서도 즉, 정보를 주고받는데 있어서도 3개 계층으로 나눌 수 있습니다.
장치와 장치간의 서로 데이터를 주고받는데 있어서도 여러 개의 계층으로 나눌 수 있습니다. 그래서 계층을 나누면 특정계층을 개선하거나 특정계층에서 사용하는 프로토콜을 다른 것으로 변경한다 하더라도 다른 계층은 영향을 안받습니다.
그러면 기계와 기계간의 정보를 주고받을 때는 몇 개의 계층으로 나누어야 합니다. 여러가지가 존재합니다.
TCP/IP 모델
OSI 7 계층 모델에 대해 알아보겠습니다. 최근에는 인터넷이 떠오르면서 7계층 모델은 거의 사용하지 않습니다. 그래서 TCP/IP라고 하는 특정 프로토콜을 사용하는 인터넷에서는 5개의 계층으로 나눕니다. 나누고 있습니다.
제일 밑의 계층은 1계층이라고 부르고, 1 계층을 물리계층, Physical Layer이라고 부릅니다. 그 다음은 두 번째 계층을 데이터링크 계층 혹은 링크계층이라고 부릅니다.
세 번째 계층은 네트워크 계층, 또 네트워크를 망이라고 부르니까 망 계층이라고도 부릅니다. 그 다음에는 네 번째 계층을 Transport계층, 수송계층, 전송계층 이라고 부릅니다. Transport란 단어가 우리말로 번역이 되니까 다양한 용어로 번역이 됩니다. 제일 위에 다섯 번째 계층을 응용계층이라고 부릅니다.
물리계층의 기능
물리계층, 제일 밑에 있는 물리계층하고 데이터링크 계층하고 합쳐서 네트워크에 접근하는 계층이라고 합니다. 5개 계층으로 나누는 것을 인터넷 모델이라고 부릅니다. 컴퓨터가 내부적으로 개념적으로 5개의 계층으로 구성되어 있습니다.
사람과 사람간의 대화를 개념적으로 5개보다는 사람은 3계층으로 나누어 있습니다. 3개로 나누어져진 것처럼 생각할 수 있듯이, 기계와 기계간의 정보를 주고받을 때에는 5개 계층으로 나누어져 있습니다.
물리계층에서는 보통 케이블이나 아니면 무선으로 직접 쏘고 속도가 정해지게 됩니다. 속도가 정해지게 되니까, 그 속도를 데이터를 보내야 됩니다. 0과 1의 비트들의 나열로 보고 데이터를 보내는 계층, 그런 계층을 물리계층이라고 합니다.
그리고 케이블을 연결해야 합니다. 유선에서는. 케이블을 연결한다던지, 토폴로지라던지, 이런 부분들을 물리계층이라고 합니다.
데이터링크 계층의 기능
데이터링크 계층부터는 메시지 포맷이 존재하게 됩니다. 거꾸로 이야기하면 물리계층에는 메시지포맷이 없습니다. 그냥 비트의 나열로 보고 그냥 쏘는 겁니다.
쏘는건데, 데이터링크 계층에서는 메시지의 형태를 가지고 있습니다. 여기서부터 이제 헤더가 존재합니다. 헤더의 특정 필드의 존재하고 나타납니다.
이 데이터링크에서 가장 중요한 기능은 에러제어입니다. 에러는 데이터를 1을 보냈는데 수신자가 0을 받거나 0을 보냈는데 1을 받았을 경우를 에라가 나왔다라고 말합니다.
그래서 링크계층에서 데이터가 0과 1의 비트들이 들어옵니다. 그러면 이게 에러가 났는지, 안 났는지를 체크합니다. 왜냐면 매체라고 하는 것을 여러 가지 잡음으로 에러가 발생할 수 있기 때문에 에러를 확인하기 위해 있어야 합니다.
그걸 데이터링크 계층에 합니다. 가장 중요한 개념입니다. 그 외에도 흐름제어가 있는데 흐름제어는 뭐냐면 누군가 말을 빨리하면, 듣는 사람이 말 좀 천천히 해 이렇게 말합니다. 그 천천히해라고 하는 것이 흐름제어입니다.
수신자가 데이터를 너무 빠르게 보내면 에러가 없어도 넘쳐흐를 수 있습니다. 넘쳐흐르지 못하는게 하는 게 흐름제어인데, 노드하고 노드가 있으면 보내는 속도하고 받는 속도가 다를 수 있습니다. 이런걸 조절하는 것이 에러제어에서 하는겁니다.
그 다음엔 접근제어라고 있습니다. 접근제어는 포인투포인트나 멀티포인트의 이런 회선이 있습니다. 그런 회선에서 멀티포인트 같은 경우에는 선 하나에 여러 개의 컴퓨터들이 접근을 합니다. 둘이 동시에 접근하면 어떻게 될까요? 둘이 동시에 접근하여 데이터를 보낼 경우 데이터가 깨집니다. 그런 일이 일어나지 않도록 조절하는 것을 접근제어라고 합니다.
네트워크 계층의 기능
네트워크은 가장 중요한 기능이 라우팅이라고 합니다.
라우팅은, 송신자가 있고 수신자가 있습니다. 거기에 여러개의 컴퓨터를 거쳐갑니다. 그러다보면, 가는 경로가 많이 달라질 수 있습니다. 그런 경로 중에서 어디로 가는 게 가장 좋을까요? 그런걸 선택하는 기능을 우리가 라우팅이라고 부릅니다.
이걸 네트워크 계층에서 합니다. 네트워크 계층에서는 에러가 나왔는지 안나왔는지 검사하지 않습니다. 왜냐하면 밑에서 진행하기 떄문입니다. 밑에 데이터 링크 계층에서 하는 거고, 네트워크 계층에서는 경로 설정이라고 부르는 라우팅이라는 것을 주 업무합니다.
수송 계층의 기능
이제 네트워크 계층에서 최적의 경로를 통해 나한테 메시지가 오게 되면 내 컴퓨터 안에 있는 여러 가지 프로그램들이 동작하게 됩니다. 파일을 다운로드를 받고 이메일을 보내기도 하고 웹 브라우져를 통해 인터넷에 접속합니다.
누구한테 보내야 되느냐라는 것을 결정해야 됩니다. 그런 기능을 담당합니다. 즉, 이것을 앤드 to 앤드라고 부르며 앤드 시스템, 호스트, 컴퓨터하고 최종 목적지인 앤드 시스템, 호스트, 컴퓨터하고 데이터를 주고받을 때 발생되는 문제들 그런 것들을 처리하기 위해 트랜스포트계층이 존재하게 됩니다.
예를 들어 사용자 메시지가 큽니다. 그렇게 큰 메시지를 잘라서 보내면 수신측에서 이걸 순서대로 잘 조립해야 합니다. 8giga짜리 파일을 보내면, 그게 하나의 메시지로 가는 건 너무 부담스럽습니다. 그래서 잘라서 보내게 됩니다.
그런걸 다시 묶는 다는지, 아니면 중간에 데이터가 가다가 깨지는 걸 검사를 한다는지, 이런 것들을 하는 것이 바로 트랜스포트계층, 수송계층에서 하는 것들입니다. 전송하는 형태에 따라서 연결을 설정해서 보낼 수 있고, 연결 설정을 안 하고, 즉 비연결형으로 보낼 수 있습니다.
응용 계층의 기능
마지막에 있는 응용계층은 말 그대로 복잡 다양한 모두 응용프로그램이 다 포함이 됩니다. 화상회의를 하는 거, 원격 교육 하는 것들이 포함됩니다. 대표적으로는 파일을 송수신하는데 사용되는 프로토콜인 FTP, File Transfer Protocol이 라는 것이 파일 송수신하는데 쓰는 프로토콜입니다.
SMTP라고 해서 이메일 송수신이라는 거, Simple Mail Transfer Protocol를 이용해서 이메일을 주고받을 수도 있고, 그 다음에는 HTTP라고 부르는 것이 있습니다. HyperText Transfer 혹은 Transmission Protocol를 HTTP를 이용해서 웹브라우저를 사용하고 있습니다. 그래서 HTTP를 이용해서 외부에 있는 어떤 컴퓨터의 파일을 읽어서 배치하여 보여주는 기능들을 모두 포함하는 계층이 응용계층입니다.
사실 사용자는 이런 응용계층에 해당되는 내용들을 사용합니다.
표준 프로토콜
여러 가지 프로토콜 이야기를 했는데, 프로토콜은 한마디로 이야기하면 룰입니다. 그렇게 하기로 한거, 하나의 하나의 룰이 있는 게 아니라 여러개가 있습니다. 룰의 집합, 규칙의 집합을 프로토콜이라고 합니다.
하나로 정해놓고 쓰자라고 하는 것이 표준 프로토콜이라고 합니다. 프로토콜은 결국 그러면 규칙입니다.
그래서 서로 부르는 용어가 다른 경우가 있습니다. 그것을 하나로 정해놓고 쓰자라는 것이 바로 표준 프로토콜입니다. 이런 표준 프로토콜에는 규정하는 기관들이 있습니다. 이거를 표준화기구라고 부릅니다.
뭐 ISO라든지 ITU-T라든지 ANSI라든지 IEEE라든지 EIA라든지 이런 표준화기구에서 이렇게 하나로 정해서 사용합니다. 그것을 표준 프로토콜이라고 하는데 거기에서 정의한 표준 프로토콜을 De jure standard라고 합니다.
근데 많은 사람들이 이미 사용함으로 인해 그런 표준의 역할이 된 거, 표준 프토토콜 역할이 된 거를 De facto standard라고 합니다. 그래서 이렇게 어떤 기관에서 앞으로 이렇게 씁시다라고 정해놓은 것을 De jure standard라 하고, 많은 사람들이 이미 사용함으로 인해서 그런 목적을 달성한 것을 De facto standard라고 부르고 있습니다.
'SW > 네트워크' 카테고리의 다른 글
네트워크 : 다중접속 프로토콜 개념과 종류 (1) | 2020.09.29 |
---|---|
네트워크 : 스위칭 방법과 종류 : 개념, 정리 (1) | 2020.09.28 |
네트워크 : 구성요소, 조건, 연결 형태, 토폴로지, 분류 (0) | 2020.09.06 |
IoE, IoT 분야 교육과 직업에 대해 알아볼까요? (0) | 2018.12.09 |
IoT, IoE, 시제품에 대해 알아볼까요? (0) | 2018.12.08 |