minzzl

5강. [CH-01 Introduction] - OSI 7 레이어 소개와 프로토콜의 이해 본문

전공공부/데이터통신

5강. [CH-01 Introduction] - OSI 7 레이어 소개와 프로토콜의 이해

minzzl 2022. 12. 10. 19:44
728x90
반응형

지난 시간까지는 우리는 데이터를 전송하기 위해서 왜 시그널로 바꾸어야하는지, 그리고 구체적으로 아날로그 시그널과 디지털 시그널이 어떤 방식으로 전송되는지를 다루어보았습니다.

 

어떤 전깃줄을 통해 아날로그 시그널을 전송하려면, 그냥 교류 전압원 여러개를 걸어주면 됩니다.

 

디지털 시그널을 전송하려면,

1. 전용으로 사용 가능한 전깃줄의 대역폭이 큰 경우 그냥 아날로그 시그널처럼 전압우너을 매우 많이 걸어줘서, 디지털 시그널에 최대한 근사한 아날로그 시그널을 보내면됩니다. 이방식은 원본 디지털 시그널과 거의 유사하기 때문에 디지털 시그널을 직접보낸다고 말할 수도 있습니다.

 

2. 전용으로 사용 가능한 전깃줄의 대역폭이 매우 좁은 경우 디지털 시그널을 그냥 보낼 수 없고 아날로그 시그널로 바꾸어보내야합니다. 이 때 대역폭은 속도 뿐만아니라 근사에도 큰 역할을 했습니다. 

 

3. 만약 전용선 자체를 사용할 수 없다면 우리는 DC 컴포넌트를 포함하지 않도록 하기 위해 전송하려는 디지털 시그널을 아예 전혀다른 아날로그 시그널로 바꾸어야합니다. 그러면 신호의 대역은 띠 모양을 가지게 되어 이런 방식의 전송을 띠대역전송이라고도 부릅니다.

 

그렇다면 데이터를 어떻게 시그널로 바꿀 수 있을까요?

 

우리가 지금껏 다룬 것은 전송하는 방법이었습니다. 데이터를 시그널로 바꿀 때  어떤 알고리즘으로 바꿀 것인지, 또 받는 입장에서 시그널을 데이터로 어떻게 변환할 것인지는 다룬적이 없습니다. 

 

하지만 그 이야기를 하기전에 우리는 반드시 OSI 7 레이어라는 것에 대해 알아야합니다.

 

OSI 7 레이어

 

공장을 예로 들어봅시다.

다음과 같이 컨베이어벨트의 왼쪽에서 원료가 오면, 각각의 기계들이 거기에 어떤 작업을 해준다고 가정하겠습니다.

 

휴대폰을 만든다고 했을 때 1번은 통화가 가능하도록 부품을 조립하고, 2번은 카메라를 부착합니다. 3번은 디스플레이를 부착하고 4번은 스피커를, 5번은 배터리를 조립합니다.

 

한창 휴대폰을 만들어서 팔고있는데, 카메라 신기술이 등장합니다. 그래서 기계2를 통째로 교체해야하는 사태가 벌어진 것입니다. 이 때 다른 기계들은 교체될 필요가 있을까요? 

없습니다. 다른 기계들이 하는 일은 달라진 것이 없기 때문입니다.

이 처럼 정보를 전송할 때의 과정들을 7개의 layer로 나누어 놓은 것이 바로 OSI 7 레이어입니다.

 

 

우리가 지금까지 한, 아날로그/디지털 시그널을 어떻게 전송할건지는 물리층에서 하는 일에 해당합니다. 또 앞으로 다루기로 한, 데이터를 어떻게 시그널로 변형할 것인지도 물리층에서 하는 일에 해당합니다.

 

그리고 이렇게 각 레이어에서 해야하는 일들을 약속해둔 것을 프로토콜이라고 합니다. 또 각 층에서 해야하는 일이 여러개이거나, 혹은 여러개중 하나 일 수 있으므로 각 층의 프로토콜은 유일한 것이 아니라 여러개일 수 있습니다. 예를 들어 TCP라는 프로토콜과 UDP라는 프로토콜은 그 특징이 정 반대이지만, 둘다 트랜스포트층의 역할을 수행하기 위한 프로토콜이며 선택적으로 사용됩니다.

 

이러한 프로토콜은 하드웨어로 구현될수도, 소프트웨어로 구현될 수도, 복합적으로 구현될 수도 있습니다. 애초에 HW/SW의 구분은 의미가 없습니다. 따라서 우리가 맨체스터 인코딩을 해주는 소프트웨어 혹은 하드웨어를 만들고 그것을 랜선에 연결한다면 우리는 물리층에서 수행해야하는 작업을 하는 프로토콜을 구현했다고 말할 수 있습니다. 

 

물리층의 프로토콜은 데이터를 시그널로 바꾸고 그 시그널을 송/수신하며 그렇게 전송된 시그널을 다시 데이터로 바꿀 수 있어야합니다. 바꿔 이야기해서 이것만 할 수 있다면 어떤 식으로 장치/소프트웨어를 만들어도 물리층의 프로토콜로 사용할 수 있습니다. 데이터를 시그널로 바꾸는 방법은 Voltage를 기준으로 할지, 주파수 변화를 기준으로 할지, 복합적으로 사용할지 이런 것은 그냥 다 프로토콜 설계자가 적절하게 정해주면 되는 것입니다. 

 

그렇다면 다른 레이어에서 하는 일들도 간략하게  살펴봅시다.

 

가장 위인 어플리케이션 층에서 부터 채팅 프로그램을 예로 들어 모든 레이어의 동작과정을 살펴보겠습니다.

 

1. 채팅 프로그램에서 A가 "hello B"라는 문자열을 입력하고 전송버튼을 누릅니다.

 응용프로그램 층에서 이 문자열을 전송하기 위한 적합한 자료구조를 만듭니다. 이건 어떤 프로그램이냐에 따라 다르겠지만 그냥 문자열을 넣을 수 있도록 하는 배열이면 충분합니다. 그렇다면 이것이 바로 우리가 보내고자하는 데이터가 됩니다. 아직 본격적으로 전송이 이루어지지 않았기때문에 이 배열은 채팅 응용프로그램이 돌아가는 메모리 일부에 생깁니다.

어플리케이션 층 자료구조

2. 이제 한단계를 내려와 다음으로 프레젠테이션 층에서 전송에 필요한 정보를 담은 프레젠페이션 층 헤더를 붙입니다. 

(레이어를 내려온다는 것은 다음 작업을 실행한다의 의미이지 실제 물리적으로 일어나는 어떤 현상이 아닙니다.. 그저 다 컴퓨터 본체 안에서 일어나는 일들일 뿐입니다! 또한 특정 레이어가 특정 장비를 의미하는 것이 아닙니다..! 단지 완전한 송수신을 위해 처리해야되는 작업들을 분류한 것들이 레이어라고 생각하면됩니다.)

프레젠테이션 층 자료구조

그 다음 네트워크 층까지 내려와 그 층에 필요한 정보들을 헤더에 담아 붙이게 됩니다. 그러면 다음과 같은 자료구조가 만들어지며 이를 패킷이라고 지칭합니다.

네트워크 층 자료구조

그리고 데이터 링크 층까지 헤더를 붙이면 다음과 같은 자료구조가 되며 이를 프레임이라고 합니다.

데이터링크 층 자료구조

그렇다면 이제 물리층입니다. 생각해봅시다. 이런 자료구조가 생기면 결국 이것은 디지털 데이터에 불가합니다.

물리층은 디지털 데이터를 아날로그/데이터 시그널로 바꾸고 그 시그널을 전송합니다. 

이에 대해서는 다음시간에 더욱 자세히 살펴보도록 하겠습니다.

 

* 다음의 글을 보고 작성하였습니다.

https://m.blog.naver.com/unionlkh/220749865544

728x90
반응형