본문 바로가기
Network

[Network] OSI 7계층이란

by BTC_PIKA 2022. 4. 15.

1. OSI 7계층이란?

네트워크에서 통신이 이루어지는 과정을 7개의 계층으로 나눈 것을 말한다. 초기에 여러 정보 통신 업체의 장비들은 자신의 업체 장비끼리만 연결이 되어 호환성이 매우 좋지 않았는데, 이러한 모든 장비, 시스템들의 상호 연결에 문제가 없도록 표준화 한 것이 OSI 7계층의 시작이다.

각각의 계층으로 이루어져 전체적인 흐름을 파악하기 쉽고, 각 계층은 독립적으로 역할을 수행하며 문제가 발생했을 시 각 계층별로 맡은 역할이 다르기 때문에 해당 문제가 어떤 계층에서 발생한 문제인지 파악하기에도 용이하다. 각 계층은 하위 계층을 사용하고, 현계층의 기능을 포함하여 상위 계층에게 제공한다. 따라서 최상위 계층만 보면 그 아래계층을 모두 포함하고 있음을 알 수 있다.

2. 작동 원리

데이터 전송시에 7계층에서 부터 각각의 층에서 인식할 수 있는 헤더를 붙이며 계층을 지나가게 됨, 이를 캡슐화라고 함, 특이하게 2 계층에서는 오류 제어를 위해 꼬리 부분에 추가하게 되고 캡슐화 된 데이터를 1계층인 물리계층에서 0과 1의 전기적인 신호가 되어 물리 전송 매체(광섬유, 동축케이블 등)를 통해 전송되고 수신하는 측에서는 전송하는 측과 반대의 절차로 각 계층에서 인식가능한 헤더를 하나씩 떼어내며 1계층에서부터 7계층으로 전달, 이를 디캡슐화라고 부름 

3. OSI 7계층 모델

▲ 가장 잘 알려진 OSI 7계층 모델 그림

가장 밑의 계층부터 물리 계층(Physical Layer), 데이터링크 계층(DataLink Layer), 네트워크 계층(Network Layer), 전송 계층(Transpory Layer), 세션 계층(Session Layer), 표현 계층(Presentation Layer), 응용 계층(Application Layer)으로 이루어져있다. 앞서 말했듯 독립적인 계층 구조로 각기다른 역할을 수행하게 된다. 

 

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

더보기

물리 계층은 말 그대로 하드웨어 전송 기술로 이루어져 있다. 전기적인 혹은 기계적인 신호를 주고받는 역할을 하는 계층으로서 전기적으로 On,Off하는 것처럼 0과 1을 사용하는 비트를 통신 단위로 통신한다. 우리가 사용하는 데스크탑 등이 랜선을 통해 인터넷과 통신하는 것이 그 예시 중 하나로 이 계층에 속하는 대표적인 장비가 바로 통신 케이블과 허브, 리피터 등이 있다. 단순히 0과 1로 이루어진 전기신호를 주고 받는 계층이다 보니 데이터의 종류나 오류 등을 제어하지 않고 그저 신호를 송수신하는 역할만 담당한다.

3-2. 데이터링크 계층(DataLink Layer)

더보기

데이터링크 계층은 물리 계층에서 전송되는 정보의 오류와 흐름을 관리하여 안전하게 전달하는 역할을 담당한다. 한마디로 Point to Point 간의 신뢰성 있는 전송을 보장하기 위한 계층이다. 때문에 전송 데이터에 대한 CRC 오류제어가 필요하며, 이를 통해 물리계층에서 발생할 수 있는 오류를 찾고 이를 수정하는데 필요한 기능적, 절차적 수단을 제공한다. 이 계층의 대표적인 장비는 스위치와 브릿지가 있다. 물리주소인 MAC주소가 이 계층에 해당하며 MAC주소를 통해 목적지를 구분한다. 전송 단위는 Frame이라고 한다.

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

더보기

네트워크 계층은 우리가 흔히 말하는 IP주소를 제공하는 계층이다. IP주소 역시 계층적으로 A,B,C,D 클래스로 나뉘어 있다. IP 주소에 대한 내용은 추후 다룰 예정이다. 이 계층의 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅) 기능이다. 경로를 선택하고 목적지의 주소를 정하고 경로에 따라 패킷을 전달해주는 것이 그 기능이다. 다양한 길이의 데이터를 네트워크를 통해 전달하고 그 과정에서 다음 계층인 전송 계층이 요구하는 서비스 품질(QoS)를 제공하기 위한 기능적, 절차적 수단을 제공한다. 이러한 라우팅 기능 이외에도 흐름 제어, 세그멘테이션, 오류 제어, 인터네트워킹 등의 기능 역시 담당한다. 데이터를 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만들어주는 계층이라 볼 수 있다. 우리가 흔히 쓰는 공유기 역시 라우팅 장비 중에 하나라고 볼 수 있는데 라우터의 NAT 기능을 활성화 시켜주는 것이다. 공유기를 포함하여 이 계층의 대표적인 장비로는 라우터, L3 스위치 등이 있다. 전송 단위는 Packet이라고 한다.

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

더보기

전송계층의 경우 양 끝단(End to End)의 사용자들이 데이터를 주고 받을 수 있게 하는, 통신을 활성화하기 위한 계층이다. 대표적으로 우리가 자주 사용하는 TCP, UDP 프로토콜이 있는 계층이다. 각 프로토콜 역시 추후에 다룰 예정이다. 이러한 프로토콜들이 사용하는 포트를 통해 응용 프로그램들을 전송한다. 데이터가 전송되면 해당 데이터들을 하나로 합쳐 5계층으로 전송해준다. 신뢰성 있는 데이터 전송을 주고 받게 하기 때문에 상위 계층이 데이터 전달의 유효성이나 효율성을 생각하지 않게 해준다. 종단(End to End) 통신을 다루는 최하위 계층으로 종단간 신뢰성있고 효율적으로 데이터를 전송하며, 오류검출 및 복구와 흐름제어, 중복 검사등을 수행하는 계층이다. 전송 단위는 Segment이다.

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

더보기

세션 계층부터 데이터를 만들어내는 계층이라고 볼 수있다. 데이터가 통신하기 위한 논리적 연결을 담당하는 계층으로, 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다. 쉽게 말해 통신을 하기 위한 문이라고 생각할 수 있다. 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능을 가지고, 동시 송수신 방식(Duplex)나 반이중 방식(Half-Duplex), 전이중방식(Full Duplex)의 통신과 함께 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행하는 계층이다. 이 계층이 TCP/IP 세션을 만들고 없애는 역할을 한다. 또한 통신하는 사용자들을 동기화하고, 오류 복구 명령들을 일괄적으로 이 계층에서 다룬다. 대표적으로 RPC, Socket 등이 있다.

3-6 표현 계층(Presentation Layer)

더보기

데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화 한다. 이러한 특징 덕에 표현 계층은 코드 간의 번역을 담당하는 계층이라 볼 수 있다. 코드 간의 번역을 함으로서 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어주며 MIME 인코딩이나 암호화, 복호화 등의 동작이 바로 이 계층에서 이루어진다. 예를 들자면 EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩 된 파일로 바꿔 주는 것 등을 들 수 있다. 또한 표현 계층이라는 이름에 맞게 해당 데이터가 TEXT 파일인지, 그림인지, 그림이라면 GIF인지 JPG인지 등을 구분하는 것도표현 계층의 역할이다. 데이터의 압축이나 인코딩 등을 여기에서 다룬다고 볼 수 있다.

3-7 응용 계층(Application Layer)

더보기

응용 계층은 네트워크 통신의 마지막 계층, 최종 목적지로 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다. 우리가 사용하는 사용자 인터페이스를 제공하는 프로그램 등이 여기에 해당한다. 우리가 잘 알고 있는 HTTP, FTP, SMTP, POP3, Telnet 등의 프로토콜이 바로 이 응용 계층에 해당된다. 이러한 프로토콜들을 통해 통신 패킷들을 처리하게 되며 우리가 사용하는 브라우저나, 메일 프로그램 등은 이러한 프로토콜을 우리가 쉽게 사용할 수 있게 해주는 응용 프로그램이다. 앞서 말한 종단, 통신의 끝단은 이러한 응용프로그램이 아니라 해당 프로토콜에 해당한다.

 

댓글