Information Technology

[네트워크] OSI 7Layer / 7계층 개념 및 역할, 구조까지 한번에 알아보기

coinAA 2021. 9. 24.

 

목차

 

FullMoon System

 

fullmoon-system.com

OSI 7 계층이란?

OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말하며, 국제표준화기구(ISO, International Organization for Standardization)에서 네트워크 간의 호환을 위해 OSI 7 계층이라는 표준 네트워크 모델을 만들었다.

 

OSI 7단계로 정의한 이유는 통신이 일어나는 과정을 단계별로 파악하기 위함과 통신 과정 중에 특정한 곳에 이상이 생길 경우에 다른 단계의 장비 및 소프트웨어 등을 건드리지 않고 통신 장애를 일으킨 단계에서 해결할 수 있기 때문이다.

 

OSI 7 계층 구조

아래에 사진에서는 OSI 7 계층에 대한 이해를 돕기 위해 각 계층의 이름과 헤더 부분을 표시하였고 계층별 해당하는 프로토콜을 참조하였다.

OSI 7계층 단계별 구조
프로토콜을 포함한 OSI 7계층

OSI 7 계층 단계별 역할

1 계층  물리  계층(Physical Layer)

실제 장치를 연결하기 위한 전기적 및 물리적 세부 사항을 정의한 계층이다.

인터넷 케이블, 라우터 스위치 등의 전기적 신호가 물리적인 장치에 의해 왔다 갔다(통신) 하는 계층이다.

이 계층에서는 단지 데이터를 전달만 할 뿐 전송하려는(또는 받으려는) 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않고 단지 데이터 전기적인 신호로 변환해서 주고받는 기능만 할 뿐이다. 

 

ex) 케이블 종류, 무선 주파수 링크, 핀 배치, 전압, 물리 요건 등

 

2 계층  데이터  링크  계층(Data link Layer)

해당 계층은 장치 간 신호를 전달하는 물리계층을 이용하여 네트워크 상의 주변 장치들 간의 데이터를 전송하는 역할을 한다.
쉽게 말해 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 하는 것이다.

따라서 통신에서의 오류도 찾아주고 재전송도 하는 기능을 가지고 있고 이 계층에서는 맥 주소(Mac Address)[각주:1]를 가지고 통신하게 된다. 
두 지점(장치) 간의 신뢰성 있는 전송을 보장하기 위한 계층이다.

데이터 링크 계층에서 전송되는 단위를 프레임이라고 하고, 대표적인 장비로는 브리지, 스위치 등이 있다.

  • 주소 할당 : 물리 계층으로부터 받은 신호들이 네트워크 상의 장치에 올바르게 안착할 수 있게 한다.
  • 오류 감지 : 신호가 전달되는 동안 오류가 포함되는지 감지 오류가 있다면 해당 데이터를 폐기한다.

 

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

네트워크 계층(Network layer)은 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층으로 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단을 제공한다. 

경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 것이 이 계층의 주 역할이다. 

대표적으로  라우터가 있으며, 2 계층의 장비 중 스위치라는 장비에 라우팅 기능을 장착한 Layer 3 스위치도 존재한다.
네트워크 계층은 라우팅, 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking)[각주:2] 등을 수행한다. 

라우터[각주:3]라는 장비가 이 계층에서 동작하고 해당 계층에서 동작하는 스위치도 있다. 

데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다. 
가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)이다. 여기에 사용되는 프로토콜의 종류도 다양하고, 라우팅 하는 기술도 다양하다.

논리적인 주소 구조(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적(hierarchical)이다.

PC에서 네트워크 계층까지의 데이터의 통신 흐름

 

4 계층  전송  계층(Transport Layer)

이 계층은 통신을 활성화하기 위한 계층이며 보통 TCP 프로토콜을 이용하며, 포트를 열어서 응용프로그램들이 전송을 할 수 있게 한다. 
만약 데이터가 왔다면 4 계층에서 해당 데이터를 하나로 통합하여 5 계층으로 전달한다.
단대단[각주:4] 오류제어 및 흐름 제어 이 계층까지는 물리적인 계층에 속한다.(TCP/UDP프로토콜을 사용한다.)

양 끝단의 사용자가 신뢰성 있는 데이터를 주고받게 하여 상위 계층이 데이터 전달의 유효성이나 효율성을 신경 쓰지 않게 해주는 계층이며 시퀀스 넘버 기반[각주:5]의 오류 제어 방식을 사용한다. 
전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)이다. 
이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다. 
가장 잘 알려진 전송 계층의 예는 TCP이다.

 

종단 간(end-to-end) 통신을 다루는 최하위 계층으로 종단 간 신뢰성 있고 효율적인 데이터를 전송하며, 
기능은 오류 검출 및 복구와 흐름 제어, 중복검사 등을 수행한다.

 

3-웨이  핸드셰이킹(3-Way Handshaking)

3-웨이 핸드셰이킹(3-Way Handshaking) 과정

  • 1단계
    • 두 시스템이 통신을 하기 전에 클라이언트는 포트가 닫힌 Closed 상태
    • 서버는 해당 포트로 항상 서비스를 제공할 수 있는 Listen 상태
  • 2단계
    • 클라이언트가 처음 통신을 하려면 임의의 포트 번호가 클라이언트 프로그램에 할당되고, 클라이언트는 서버에 연결하고 싶다는 의사 표시로 SYN Sent 상태가 된다.
  • 3단계
    • 클라이언트의 연결 요청을 받은 서버는 SYN Received 상태가 되고, 클라이언트에 연결을 해도 좋다는 의미로 SYN + ACK 패킷을 보낸다.
  • 4단계
    • 클라이언트는 연결 요청에 대한 서버의 응답을 확인했다는 표시로 ACK 패킷을 서버로 보냄

TCP 연결 해제 과정

  • 1단계
    • 통신 중에는 클라이언트와 서버 모두 Established 상태
  • 2단계
    • 통신을 끊으려는 클라이언트가 서버에 FIN 패킷을 보내고 클라이언트는 Close Wait 상태가 된다.
  • 3단계
    • 서버는 클라이언트의 연결 종료 요청을 확인하고 응답으로 클라이언트에 ACK 패킷을 보내면 서버도 클라이언트의 연결을 종료하겠다는 의미로 FIN 패킷을 보내고 Close Wait 상태가 된다.
  • 4단계
    • 클라이언트는 연결 종료를 요청한 것에 대한 서버의 응답을 확인했다는 표시로 ACK 패킷을 서버에 보낸다.

 

 

5 계층  세션  계층(Session Layer) 

양 끝단의 응용 프로세스가 통신을 관리하는 방법을 제공하는 계층이다.

이 계층의 프로토콜은 통신 연결이 손실되는 경우 연결 복구 시도가 가능하며 연결 시도중 장시간 연결이 되지 않았다면 세션 계층의 프로토콜이 연결을 닫고 다시 연결을 시도한다.
또한 전이중 통신, 반이중 통신, 명령 중 하나를 제공하여 교환 메시지 스트림(stream)[각주:6] 내에서 동기화 지점을 제동 한다.

 

* 세션 계층의 중요한 기능인 동기화가 있다.

  • 전이중 통신(Full Duplex)
    • 두 대의 단말기가 데이터를 송수신하기 위해 동시에 각각 독립된 회선을 사용하는 통신 방식이다.
      대표적으로 전화망, 고속 데이터 통신을 들 수 있다.
  • 반이중 통신(Half Duplex)
    • 한쪽이 송신하는 동안 다른 쪽에서 수신하는 통신 방식으로, 전송 방향을 교체한다.
      마스터 슬레이브 방식의 센서 네트워크가 대표적이다.

 

6 계층  표현  계층(Presentation Layer) 

코드 간 번역을 담당하는 계층이다.

사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 주고 MIME [각주:7] 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다. 

이 계층은 데이터 표현에서 독립적인 부분을 나타내고 일반적으로 응용프로그램 형식을 준비 또는 네트워크 형식으로 변환하거나 네트워크 형식을 응용프로그램 형식으로 변환하는 것을 나타낸다.
다시 말해 이 계층은 응용프로그램이나 네트워크를 위해 데이터를 “표현” 하는 것이다.
쉬운 예시로 EBCDIC(확장 이진화 십진법 교환 부호)로 인코딩된 문서 파일을 ASCII로 인코딩 된 파일로 바꿔 주는 것,  해당 데이터가 TEXT인지, 그림인지, GIF인지 JPG인지의 구분하는 것이 표현 계층의 몫이다.

 

7 계층  응용  프로그램  계층(Application Layer) 

응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 계층이다.

응용 계층은 최상위 계층으로 사용자에게 직접적으로 보이는 부분이며, OSI 모형에서는 “최종 사용자에게 가장 가까운” 계층이다.

웹 상에서 웹 서버 및 웹브라우저 상호 간의 데이터 전송을 위한 응용계층 프로토콜 처음에는, WWW 상의 하이퍼텍스트 형태의 문서를 전달하는데 주로 이용하였고 현재에는, 이미지, 비디오, 음성 등 대부분의 모든 형식의 데이터를 전송할 수 있다.
7층에서 작동하는 응용프로그램은 사용자와 직접적으로 상호작용한다.
ex) 웹 브라우저 : Chrome, Firefox 등 / 응용 프로그램 : Skype, Outlook, Office 등

 

주요 포트와 서비스

포트 서비스 설명
20 FTP Data File Transfer Protocol-Datagram
FTP 연결 시 실제로 데이터를 전송한다.
21 FTP File Transfer Protocol-Control
FTP 연결 시 인증과 제어를 한다.
23 Telnet 텔넷 서비스로, 원격지 서버의 실행 창을 얻어낸다.
25 SMTP Simple Messge Transfer Protocol
메일을 보낼 때 사용한다.
53 DNS Domain Name Service
이름을 해석하는데 사용한다.
69 TFTP Trivial File Transfer Protocol
인증이 존재하지 않는 단순한 파일 전송에 사용한다.
80 HTTP Hyper Text Transfer Protocol
웹 서비스를 제공한다.
110 POP3  Post Office Protocol
메일 서버로 전송된 메일을 읽을 떄 사용한다.
111 RPC Sun의 Remote Protocol Call
원격에서 서버의 프로세스를 실행할 수 있게 한다.
138 NetBIOS Network Basic Input Output Servie
윈도우에서 파일을 공유할 수 있게 한다.
143 IMAP Internet Message access Protocol
POP3와 기본적으로 같지만 메일이 확인된 후에도 서버에 남는다는 것이 차이점이다.
161 SNMP Simple Network Management Protocol
네트워크 관리와 모니터링을 위해 사용한다.

 

OSI 7Layer / 7계층 쉽게 외우는 방법

계층 이름 첫 알파벳 /
응용 계층(Application Layer) A
표현 계층(Presentation Layer) P
세션 계층(Session Layer) S
전송 계층(Transport Layer) T 터지
네트워크 계층(Network Layer) N
데이터링크 계층(Data-Link Layer) D 뒤에서
물리계층(Physical Layer) P 피가나더라

위 표를 살펴보면 앞에서 터지니 뒤에서 피가나더라를 사용하여 각 계층별 앞 알파벳을 따서 외우기 쉽게 만들었습니다.

  1. 네트워크 세그먼트의 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자이다. [본문으로]
  2. 두 개 이상의 네트워크를 연결하여 네트워크 간 하드웨어나 소프트웨어 모두를 연결시키는 방법론을 뜻한다. [본문으로]
  3. 패킷의 위치를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전향시키는 장치이다. [본문으로]
  4. 네트워크의 지능 및 망(網)을 제어할 수 있는 기능을 망의 끝단인 단말에 두고 네트워크 패킷은 단순히 전달하는 역할을 수행한다는 뜻이다. [본문으로]
  5. 통신과 제어에서 데이터를 관리하기 위해 번호를 부여한다. [본문으로]
  6. 컴퓨터 처리 환경에서 스트림은 시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 수많은 방식에서 쓰인다. [본문으로]
  7. MIME는 전자 우편을 위한 인터넷 표준 포맷이다. [본문으로]

댓글