OSI 7계층

MyeonghoonNam·2021년 9월 19일
1
post-thumbnail

OSI 7계층

OSI 7 계층은 국제표준화기구(ISO)에서 개발한 모델로, 네트워크 프로토콜 디자인과 통신을 계층으로 나눠 설명한 것입니다. 즉, 국제표준화기구에서 만든 네트워크 통신의 7단계 과정을 말합니다.

그렇다면 7계층으로 네트워크 통신 과정을 나눈 이유는 무엇일까요 ?

처음 네트워크 장치는 중구난방이었습니다. 때문에 회사의 장비마다 호환이 되지 않으며 복잡했었는데 네트워크를 7계층으로 나누어 통신이 일어나는 과정이 단계별로 파악할 수 있게 되었습니다.

통신 과정의 흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있게 되었습니다.


동작 원리

  1. OSI 7계층은 응용, 표현, 세션, 전송, 네트워크, 데이터링크, 물리계층으로 나뉨.
  2. 데이터 전송 시 7계층에서 1계층으로 각각의 층마다 인식할 수 있어야 하는 헤더를 데이터에 더하여 하위 계층에 전달(캡슐화)
  3. 데이터 수신 시 1계층에서 7계층으로 각 계층에 해당하는 헤더를 제거하여 상위 계층에 전달(디캡슐화)
  4. 최종 목적지에는 순수 데이터가 전송.


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

이 계층에서는 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하게 된다.

이 계층에서 사용되는 통신 단위는 비트이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 On, Off 상태라고 생각하면 된다.

이 계층에서는 단지 데이터를 전달만 하며 전송하려는(또는 받으려는)데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다.

단지 데이터를 전기적인 신호로 변환해서 주고받는 기능만 할 뿐이다. 이 계층에 속하는 대표적인 장비는 통신 케이블, 리피터, 허브등이 있다.

결론 : 데이터를 전기적 신호로 변형하여 안전하게 전달하는 역할을 한다.


물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 한다.

따라서 통신에서의 오류도 찾아주고 재전송의 역할도 수행한다. 이 계층에서는 MAC 주소(물리주소)를 가지고 통신하게 된다.

이 계층에서 전송되는 단위를 프레임(Frame)이라고 하고, 대표적인 장비로는 브리지, 스위치 등이 있다.(여기서 MAC주소를 사용한다.)

데이터 링크 계층(Data link layer)은 포인트 투 포인트(Point to Point) 간 신뢰성있는 전송을 보장하기 위한 계층으로 앞서 살펴본 물리 계층에서는 전송 또는 수신 데이터에 대해 에러 처리를 신경쓰지 않기에 데이터 링크 계층에서 CRC 기반의 오류 제어와 흐름 제어가 필요하다.

물리 계층에서 발생할 수 있는 오류를 찾아 내고, 수정하는 데 필요한 기능적, 절차적 수단을 제공한다.

결론 : 브릿지나 스위치를 통해 Mac 주소를 가지고 물리계층에서 받은 정보를 안전하게 전달하는 데이터 흐름을 제어한다..


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

이 계층에서 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)이며 목적지까지 가장 안전하고 빠르게 데이터를 보내는 기능을 말합니다. 따라서 최적의 경로를 설정하는 역할을 담당하며 이러한 라우팅 기능을 맡고 있는 계층이 네트워크 계층입니다.

또한 어느 컴퓨터에게 데이터를 전송할지 주소를 갖고 있어야 통신이 가능한데 여기서의 주소는 우리가 자주 듣는 IP 주소로 바로 네트워크 계층 헤더에 속해있습니다.

네트워크 계층에서 부르는 데이터 단위는 패킷(Packet)이라고 합니다.

결론 : 네트워크 간의 효율적인 통신을 담당하는 역할


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

전송 계층은 양 끝단의 사용자들이 신뢰성있는 데이터를 주고 받게 해주는 역할을 합니다.(end to end)

송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위하여 오류검출 및 복구, 흐름제어와 중복검사 등을 수행합니다.

대표적인 프로토콜로는 TCP와 UDP가 있습니다. 이 계층에서 사용하는 데이터 단위는 세그먼트(Segment)라고 합니다.

TCP의 경우 신뢰성있는 통신을 보장한다. 따라서 데이터가 전달되는 과정에서 여러 스위치 라우터 등을 거치면서 데이터가 잘못 전달되는 현상이나 전달이 안되는 경우 오류제어, 흐름제어를 통해 신뢰성있는 데이터가 전달될 수 있도록 한다.

TCP는 연결시 3-way hanshaking 방식으로 목적지와 상호 패킷을 교환하여 연결한다. 연결을 종료할 때는 4-way hanshaking 방식을 사용한다.

신뢰성 연결과 전달을 보장하는 만큼 중간의 확인과정을 거치고 연결을 계속 유지해야되기 때문에 그만큼의 리소스가 더 들어간다.

UDP 프로토콜의 경우 비연결형 프로토콜로서 데이터를 빠르게 전달하는데에 초점을 두고 있다.

따라서 UDP는 목적지에 데이터가 제대로 전달 되었는지 조차 확인하지 않는다. 그냥 전송하면 끝인 것이다. 이렇게만 말하면 이걸 왜쓰냐라고 할 수 있는데 비연결을 지향하고 데이터를 전달할 때 TCP에 비해 오버헤드가 적다. 그래서 신뢰성 있는 데이터 전송이 필요할 때보다 스트리밍같이 연속적인 특성을 가지고 있는 서비스에 사용한다.

결론 : 전송되는 데이터가 유효한지 확인하는 신뢰성을 담당하는 역할


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

세션 계층(Session layer)은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공합니다.

단방향(Simplex) 통신, 반이중 통신(half-duplex), 전이중 통신(Full Duplex) 같은 통신과 함께 세션 연결을 총괄적으로 관리합니다.

통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다루며 대표적으로 OS가 세션 계층에 해당합니다.

결론 : 네트워크 통신의 연결과 통신 방법을 담당하는 역할


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

표현 계층(Presentation layer)은 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다.

응용 계층으로부터 전달받거나 전송하는 데이터의 인코딩 및 디코딩이 이루어지는 계층입니다. MIME 인코딩이나 암호화, 복호화 등의 동작이 이 계층에서 이루어집니다.

예를 들면, EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것, 해당 데이터가 TEXT인지, 그림인지, GIF인지 JPG인지의 구분 등이 표현 계층의 몫이다.

결론 : 데이터를 어떻게 표현할 지에 대한 표준화 역할을 담당


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

OSI의 최상위 계층으로 사용자 또는 어플리케이션이 네트워크에 접근할 수 있도록 해줍니다.

응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하며 한마디로 우리가 사용하는 사용자 인터페이스를 제공하는 프로그램 등을 말하며 사용자에게 보이는 유일한 계층입니다.

대표적으로 우리가 잘 알고있는 HTTP, FTP 등의 프로토콜이 응용 계층에 속합니다.

결론 : 프로그램의 목적에 맞는 통신 규약을 결정하는 역할을 담당



참고자료

profile
꾸준히 성장하는 개발자를 목표로 합니다.

0개의 댓글