컴퓨터 지식 공부/네트워크

<22.03.21> 컴퓨터 지식 공부 일지 #10. OSI 7 Layer에 대해 공부해보자.

mayberry 2022. 3. 21. 19:59

 

서로 다른 두 개의 컴퓨터는 어떻게 통신할까? 서로 멀리 떨어진 컴퓨터들은 어떻게 데이터를 주고받는걸까? 단순히 데이터를 물리적인 전기신호로 바꾸어 전선에 흘려보내면 그만인걸까? 오늘은 네트워크를 공부한다면 꼭 알아야 한다는 OSI 7 Layer에 대해 알아보고자 한다.

 

 

0. OSI 7 Layer란?

 

 

OSI 7 Layer가 등장할 시기에는 세계 곳곳에서 네트워크에 대한 연구가 진행되었으며, 그 연구결과아 상용화되어 세상 밖에 나오기 시작했다. 그러면서 다양한 네트워크 통신망이 등장했다. 이에 따라 네트워크 유형에 관계없이 상호 통신이 가능한 표준이 필요하게 되었다.

 

국제 표준화 기구(ISO)는 위와 같은 문제를 해결하기 위해 새로운 네트워크 모델을 발표하였고, 해당 모델의 등장으로 서로 다른 기기 간의 네트워크 형성이 손쉽게 이루어질 수 있었다. 이 모델이 등장한 이후 네트워크를 구상할 때는 OSI 7 Layer 모델을 표준으로 삼아 구성하게 되었다.ㅡ 하지만 이후에 TCP/IP가 개발되면서 오늘날까지 실질적인 네트워크 통신은 TCP/IP 프로토콜을 사용하게 되었다.ㅡ

 

OSI 7 Layer는 그 이름에 걸맞게 7개의 층을 가지고 있다. 이는 서로 다른 두 개의 기기가 네트워크 통신을 한다고 가정했을 때 어떻게 연결되는지를 7단계로 구분한 것이다. 

 

이렇게 나눈 계층은 각각 담당하고 있는 역할이 있으며, 각 계층은 하위 계층들의 기술들을 이용하고 상위 계층에게 기능을 제공한다. 이렇게 나눈 계층을 나누게 되면 통신에 문제가 발생하였을 때 어느 계층에서 문제가 발생하였는지 정확하게 파악할 수 있다. 

 

 

 

위 사진은 두 개의 장치가 네트워크를 통해 데이터를 주고 받는 것을 OSI 7 Layer를  통해 도식화한 것이다. 지금부터 물리 계층부터 시작하여 각 계층에 대하여 살펴보도록 하자.

 

 

1. 물리 계층(Physical Layer - 1 Layer)

 

 

물리 계층은 이름에서부터 추측할 수 있듯이, 전기적인 신호를 주고받는 계층이다. 그래서 통신 단위는 0과 1로만 이루어져 있는 비트 단위의 신호를 주고받게 된다. 

 

이 단계에서 주고받는 데이터에는 주소 정보가 없다. 따라서 데이터를 주고받아도 어디로 보내야 할지는 아직 모르는 단계이며 네트워크 내에 연결된 모든 노드(컴퓨터)에게 전달된다.ㅡ물론 향후 계층을 거쳐가면서 목적지를 알 수 있는데, 목적지가 아닌 노드(컴퓨터)에서 받은 데이터를 폐기한다.ㅡ

 

해당 계층은 전기 신호를 주고 받는 계층인만큼, 하드웨어 전송 기술로 이루어져 있으며 전기적 신호를 처리하기 위한 다양한 하드웨어 기술이 접목되어 있기 때문에 OSI 7 Layer 중 가장 복잡하다. 따라서 이 계층에서는 주고받는 데이터의 종류를 구분하지 않으며, 오류 또한 제어하지 않는다. 해당 계층을 대표하는 장비로는 통신 케이블, 허브, 리피터, 어댑터 등이 있다.

 

물리 계층의 대표적인 장비 중 하나인 통신 케이블

 

 

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

 

 

해당 계층은 하위 계층인 물리 계층으로부터 받은 데이터를 신뢰할 수 있는 링크로 변환한다. 이 단계부터 데이터가 본격적으로 물리적인 형태를 벗어나는 단계라고 할 수 있다. 이 계층의 목적은 데이터의 신뢰성 있는 전송을 보장하는데 있다. 

 

이전 단계에서 주고받는 데이터의 단위가 '비트'였다면 해당 계층에서는 '프레임'이라고 부른다. 이 계층에서는 데이터들을 오류나 손실없이 전송시키기 위해 흐름제어, 오류제어등의 기능을 수행한다. 이렇게 신뢰성이 검증된 데이터들은 인접한 노드에 전송된다.

 

데이터 링크 계층의 통신은 인접 노드 사이에서 이루어진다. 또한 이 계층에서 목적지 노드에 도달하기 위해 각 노드에 대한 물리적 주소(MAC) 설정을 하게 된다. 이 계층 또한 하위 계층과 마찬가지로 하드웨어 기술이 접목되어 있다. 대표 장비로써는 스위치, 브릿지, 랜카드 등등이 있다.

 

허브
랜카드

 

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

 

 

해당 계층은 데이터 송신 측에서 수신 측까지의 데이터를 안전하게 전달하기 위해 설계된 계층이다. 본 계층에서 전달되는 데이터의 단위는 '패킷'이라고 한다. 

 

해당 계층에서부터 데이터를 어느 목적지로 전송해야하는지에 대해 알게 되는데, 바로 목적지 노드에 대한 논리적 주소인 IP 주소가 부여된다. 이 계층에서 라우팅(Routing)이 진행되는데, 여기서 라우팅이란 라우팅 알고리즘에 의해 목적지까지 데이터를 전송하기 위한 최적의 경로를 설정하고 그 경로에 따라 패킷을 교환하는 것을 의미한다.

 

하위 계층이었던 데이터 링크 계층이 같은 네트워크 상에서의 데이터 전달을 담당했다면 해당 계층은 최종 목적지까지의 데이터를 전달하는 책임이 있다.

 

해당 계층을 대표하는 장비는 라우터, L3 스위치, IP 공유기가 있다.

 

IP 공유기

 

4. 전송 계층(Transport Layer - 4 Layer)

 

 

해당 계층부터는 더 이상 하드웨어 기술에 종속되지 않고 운영체제 단계에서 통신이 이루어진다. 해당 계층에서는 실제 사용자(end-to-end)사이에 신뢰성있는 데이터를 주고 받을 수 있도록 해준다. 

 

이 계층에서는 실제 데이터 통신의 당사자인 사용자들의 실질적인 네트워크 통신이 이루어진다. 데이터를 송신하는 컴퓨터 측의 응용 프로그램(프로세스)에서 수신하는 컴퓨터 측의 응용 프로그램(프로세스)으로의 데이터 전달이 이루어진다.

 

이 계층에 다다르게 되면, 이전 계층까지는 상대방에게 보낸 데이터가 실제 목적지측 컴퓨터까지 물리적으로 전달한 것과는 다르게 목적지 프로세스로의 데이터 전송을 담당하게 된다. 이 때 수신측에서 데이터를 받으면 이 데이터를 어느 프로세스에 전달해야 할 지 반드시 알아야 한다. 이를 위해 프로세스 식별을 위한 논리적 주소인 PortㅡPort에 대해서도 향후 기회가 된다면 포스팅하도록 하겠다.ㅡ가 필요하다.

 

해당 계층을 대표하는 프로토콜로써는 TCP와 UDP가 있는데, TCP는 신뢰성과 정확한 데이터 전달 보장을 위한 프로토콜이다. 데이터를 정확하게 보내긴 하지만 리소스가 많이 소요되어 통신 속도에 제약이 있고, UDP는 데이터의 정확한 전달보다는 데이터를 빠르게 전달하는데에 집중한다. 따라서 비연결형 프로토콜이라고도 부른다. 해당 프로토콜이 사용되는 예시로는 연속적으로 데이터를 송수신해야하는 스트리밍 서비스에서 자주 사용된다.

 

 

5. 세션 계층(Session Layer - 5 Layer)

 

 

해당 계층은 어플리케이션 간의 논리적 연결인 세션의 생성과 관리, 종료를 담당하는 계층이다. 송수신 측의 프로세스가 통신을 관리하기 위한 방법을 제공한다. 

 

송수신 기기 사이에 원활한 대화를 위해 전송하는 정보 일부분에 포인트를 두어 서로 연결이 끊기지 않은 상태로 연속적인 통신이 가능하도록 제어한다. 즉 동기화를 진행하게 된다. 

 

해당 계층에서는 각 프로세스가 맺는 연결에 관한 것들을 관할하기 때문에 연결의 시작, 유지 및 종료까지도 해당 계층에서  책임진다.

 

 

6. 표현 계층(Presentation Layer - 6 Layer)

 

 

해당 계층에서는 송수신자가 데이터를 공통으로 이해할 수 있도록 데이터의 표현방식을 변경하는 기능을 담당한다. 쉽게 말하면 인코딩과 디코딩을 담당한다고 볼 수 있다. 웹에서 자주 사용되는 미디어 표현 방식인 MIME의 인코딩이나 암호화 등의 동작이 이루어진다.

 

일종의 코드 간의 번역을 담당한다고 볼 수 있다. 이러한 역할 때문에 상위 계층인 응용 계층에서 시스템에서 데이터 형식 사이의 차이를 다루는 부담을 덜어주게 된다.

 

코드 변환, 데이터 암/복호화, 압축, 구문검색, 문맥관리, 형식변환 등의 기능을 수행하는 계층이다. 

 

 

7. 응용 계층(Application Layer - 7 Layer)

 

 

OSI 7 Layer의 마지막 계층인 응용 계층에서는 사용자가 네트워크에 접근할 수 있도록 인터페이스를 담당한다. 응용 프로그램과 직접 관계되어 일반적인 응용 서비스를 수행한다.

 

 

 

오늘은 OSI 7 Layer를 구성하는 각 계층에 대해 알아보았다. 복잡해보여 선뜻 공부해보기가 겁이 났는데 막상 공부하고 이렇게 포스팅해보니 그렇게 무겁고 어려운 내용은 아니였다. 다음에도 재미있는 공부거리로 포스팅하도록 하겠다.

 

P. S 조잡한 글 읽어주셔서 감사합니다! 혹시나 틀린 정보가 있다면 과감한 지적(하지만 욕은 삼가해주시면 감사하겠습니다 ㅎㅎ) 부탁드립니다.