CS/Network

[네트워크] OSI 7계층을 쉽게 이해해보자 (1)

동구름이 2024. 2. 8. 15:19

 OSI 7계층에 대한 여러 글들을 보았지만, 추상적으로는 이해가 되지만 깊게 이해가 되지는 않았습니다. 그래서 여러 가지 포스팅과 강의를 통해 OSI 7계층에 대한 나름의 이해를 정리해보았습니다. 글을 보시는 분들께 도움이 되었으면 좋겠습니다.

 

1. OSI 7계층

 OSI(Open Systems Interconnection) 7계층은 네트워크에서 OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말합니다.

 물리적-데이터링크-네트워크-전송-세션-표현-응용 계층 순입니다. 

 

 여기서 계층이라는 것은 개념적인 것입니다. 계층을 나누는 것은 통신이 일어나는 과정을 단계별로 파악하기 위해서 입니다.

이렇게 개념적으로 계층을 분리함으로써 흐름을 한눈에 알아볼 수 있고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있습니다.

 

 

2. OSI 7계층을 왜 도입하게 되었을까?

 사실 이렇게 듣기엔 개념이나 OSI 7계층의 목적이 와닿지는 않습니다. 이것에 대한 의문은 OSI 참조 모델의 등장 배경을 통해 알아 볼 수 있습니다.

 

 OSI 참조 모델은 초기의 네트워크 장비들의 호환성 문제를 해결하기 위해서 도입된 것입니다.

 

 이전에는 다양한 통신 장비들이 서로 다른 통신 프로토콜을 사용하여 통신하였기 때문에, 서로 다른 장비들 간의 통신이 어려웠습니다. OSI 모델은 이러한 문제를 해결하기 위해 표준화된 프로토콜 스택을 제공하여 서로 다른 장비들 간의 통신을 가능하게 했습니다.

 

각 계층들은 둘 이상의 장치를 서로 연결하기 위해 일어나는 과정들을 구분한 것으로 생각하면 됩니다. 

 

 

 

3. OSI 7 계층 살펴보기

(1) 물리적 계층(Physical Layer)

 두 개의 컴퓨터를 연결하는 과정을 생각해보겠습니다.

 두 개의 컴퓨터가 서로 정보를 주고 받기 위해서는 0과 1의 비트 단위의 통신을 주고 받아야합니다. 두 개의 컴퓨터에 전선을 연결하고 음의 전압은 0으로, 양의 전압은 1로 약속하고 전달한다면 0과 1을 구분하여 데이터 통신이 가능합니다.

 

 모든 파일과 프로그램은 0과 1로 구성이 되기 때문에, 이를 통해 어떤 데이터든 주고받을 수 있습니다.  데이터를 주고 받기 위해서, 물리적 계층은 0과 1로만 이루어진 비트열 데이터를 전기 신호로 변환하고 제어하는 역할을 수행합니다. 

 

 

 여기서 전기 신호는 디지털 신호, 아날로그 신호로 나뉩니다.

디지털 신호는 오른쪽과 같은 수직선, 수평선이 있는 전자기파를 말합니다. 

 

 그런데 중요한 것은, 물리적인 매체(전선)는 특정 주파수 범위 내에서만 신호를 전달할 수 있습니다. 따라서 높은 주파수의 신호는 전선을 통과하지 못하고 손실될 가능성이 있습니다.

 

  그래서 데이터의 손실을 방지하기 위해 송신자는 디지털 신호를 아날로그 신호로 변환해 전송을 해야합니다. 이런 변환 과정을 Encoding이라고 합니다. 

 수신자는 받은 아날로그 신호를 디지털 데이터로 다시 변환하여 읽을 수 있습니다. 이를 Decoding이라고 합니다.

 

 컴퓨터의 랜카드가 이와 같은 동작을 수행하게 됩니다.

 

그래서 물리 계층에 속하는 장비로는 0과 1의 정보를 전기 신호로 변환하는 랜카드, 그리고 전송 매체인 케이블, 전기 신호를 증폭하는 리피터허브 등이 포함됩니다.

 

 

 즉, 물리 계층은 이러한 과정을 통해 데이터의 물리적인 전송을 담당합니다. 데이터가 네트워크에서 실제 물리적으로 이동하는 과정을 관리하는 것입니다.

 

 

 

(2) 데이터 링크 계층 (Data Link)

이제 여러 대의 컴퓨터가 통신하는 상황을 생각해보겠습니다.

 이전의 물리적 계층에서는 두 개의 컴퓨터가 전선으로 연결되어 데이터를 주고 받았습니다. 한 대의 컴퓨터가 추가된다면 마찬가지로 전선을 통해 연결할 수는 있습니다. 

 

 하지만 만약 A에 수 백대의 컴퓨터가 연결된다면 어떤 상황이 발생할까요. A라는 컴퓨터에 전선을 꽂을 수 백대의 구멍과 수 백대의 전선이 필요하게 됩니다. 이는 매우 비용적으로도 비효율적입니다. 

 

 

 

그래서 전선 하나만으로 여러 대의 컴퓨터와 통신할 수 있는 방법이 있습니다. 여기서 등장하는 것이 허브(더미 허브)입니다.

 

A라는 컴퓨터가 가운데를 관통하는 전선에 전기 신호를 보내면, 다른 컴퓨터들이 신호를 받을 수 있습니다.

가운데 전선을 상자에 넣은 것이 허브입니다.

 더미 허브는 전기 신호가 도착하면, 신호가 들어온 컴퓨터를 제외한 모든 컴퓨터에 신호를 전달합니다. 그러면 각 컴퓨터들이 신호를 받을지 말지 결정하는 구조입니다. 

 

 하지만 이런 방식은 A가 특정한 E에게만 데이터를 보내고 싶어도, 모든 다른 컴퓨터에도 신호가 도착한다는 비효율성이 있습니다. 그리고 여러 명이 동시에 데이터를 전송하게 되면, 데이터 충돌이 일어나고 속도가 느려지는 단점이 있습니다. 

 

이런 단점을 보완하기 위한 장비가 스위치입니다. 스위치는 전기 신호의 목적지를 확인해 해당하는 컴퓨터에게만 전달해줄 수 있습니다. 

 스위치는 일종의 컴퓨터로, 내부에 메모리를 가지고 있습니다. 그리고 그 메모리에 각 포트에 연결된 컴퓨터의 MAC 주소들을 기록합니다. 그래서 A가 E에게 데이터를 보낼때, D의 MAC 주소를 함께 보낼 수 있습니다.

 

 

 만약 여기서 여러 대의 컴퓨터가 동시에 데이터를 전송하는 경우에는 어떻게 할 수 있을까요?

 A,B,C 세대의 컴퓨터가 E로 동시에 데이터를 보냈다고 가정했을때, E에서는 어떻게 데이터를 끊어야할지 구분할 방법이 없습니다.

 

그래서 데이터를 어떻게 끊어서 읽을지에 대한 기준을 정하기 위해, 데이터 앞 뒤에 특정한 비트열을 붙여서 보내게 됩니다.

 

  예를 들어 시작 비트열을 1111로, 끝나는 비트열을 0000으로 설정하면, E가 데이터를 받았을때, 시작 비트열과 끝나는 비트열을 찾아 데이터를 구별하여 받을 수있게 됩니다. 이렇게 시작 비트열과 끝 비트열로 데이터를 감싸는 것을 Framing 라고 합니다.

 

 

이처럼 같은 네트워크 안에 있는 여러 기기 간의 데이터 전송 및 물리 주소를 결정하는 계층을 데이터 링크 계층이라고 합니다.

 

 

 

(3) 네트워크 계층 (Network Layer)

 그럼 만약 위 그림처럼 서로 다른 네트워크에 존재하는 A와 D를 어떻게 연결할 수 있을까요?

 

바로 스위치와 스위치를 연결해주면 됩니다. 이렇게 서로 다른 네트워크를 연결해주는 장치를 라우터라고 부릅니다.

 라우터는 허브나 스위치로 구성한 LAN을 외부와 연결하는 역할을 수행합니다. 라우터도 스위치와 같이 자신과 연결된 장치들의 주소를 가집니다. 그리고 라우터는 라우터로 연결할 수 있습니다. 이렇게 라우터들이 국가를 넘어 매우 큰 범위로 연결된 것이 인터넷입니다.

 

 

 네트워크 계층에서는 여러 개의 노드를 거치며 경로를 찾아주는 역할을 수행합니다.

 

 위 그림에서 만약 A에서 K로 데이터를 전송해야한다면, A에서 데이터를 보낼 때 K의 주소를 함께 보내게 됩니다. 여기서 주소란 컴퓨터의 고유한 값을 나타내는 IP 주소입니다. A는 IP 주소를 DNS서버에서 조회하고, IP주소를 찾기 위해 수많은 라우팅을 거치는데, 이것은 이후 포스팅에서 다루겠습니다.

 

 

즉 네트워크 계층은 네트워크 사이에서 원하는 목적지의 컴퓨터로 IP 주소와 라우팅을 통해 데이터를 전송하는 계층입니다.

 

 

 

 

 

글이 길어진 관계로 전송 계층부터는 다음 포스팅에서 다루도록 하겠습니다.

 

 

 

참고자료

[10분 테코톡] 🔮 히히의 OSI 7 Layer
https://www.youtube.com/watch?v=1pfTxp25MA8

[컴퓨터 네트워크 - 한양대학교 이석복 교수님]
http://www.kocw.net/home/cview.do?cid=6166c077e545b736

https://velog.io/@changhee09/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%AC%BC%EB%A6%AC-%EA%B3%84%EC%B8%B5-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EC%A0%84%EA%B8%B0-%EC%8B%A0%ED%98%B8%EB%A1%9C-%EB%B3%80%ED%99%98