OSI 7 계층

OSI 7 계층이란?

Open Systems Interconnection Reference Model

네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.
  • OSI 7 계층의 탄생 배경

    • 초기의 여러 통신 업체 장비들은 같은 시스템의 장비들끼리만 연결 및 통신이 되어 호환성이 없었음

    모든 시스템들의 상호 연결에 있어 문제없도록 표준을 정한것이 OSI 7계층

  • 왜 계층으로 나눴는가? ✨

    • 계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문

    • 예를들어, 특정한 계층에 이상이 생기면 다른 계층의 장비나 소프트웨어를 건들이지 않고도 이상이 생긴 계층만 고칠 수 있는 장점이 있음

    • 즉, 트러블 슈팅이 용이 + 다른 장비들, 시스템과의 호환성도 해결

  • 최종 목적은,,

    • 개발자가 만드는 디지털 통신 제품과 소프트웨어 프로그램이 상호 연동 될 수 있도록 하는 것 (ex. 어떤 프로토콜과 기기가 서로 연동 될 수 있는지?)


프로토콜이란?

  • OSI 7 계층 → 통신이 일어나는 과정을 단계로 나눈 것을 알았다.

    그러면 통신이 일어나는 과정은 누가 정해주는데?

  • google.com 을 입력하면 일어나는 일을 생각해보자

    • IP 주소가 아니기 때문에 URL 중 도메인 네임 부분 → google.com 을 DNS 서버에서 검색한다.

    • DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달한다.

    • 브라우저는 HTTP 프로토콜을 사용하여 요청 메시지를 생성하고 HTTP 요청 메시지는 TCP/IP 프로토콜을 사용하여 서버로 전송된다.

    • 서버는 response 메시지를 생성하여 다시 브라우저에게 데이터를 전송한다.

    • 브라우저는 response를 받아 파싱하여 화면에 렌더링한다.

프로토콜이 뭔데 통신하는 과정에서 사용되는걸까?

  • 프로토콜은 서로 다른 시스템에 있는 개체 간에 성공적으로 데이터를 전송하게 해주는 표준화된 통신 규약 이다.

    • 데이터 교환 방법이나 순서에 대해 정의한 약속 및 규칙

  • 통신 → 서로 다른 시스템 or 기기 간에 일어나야 하는 것

  • 동일한 프로토콜을 사용을 사용하면 기종 및 프로그램이 다르더라도 컴퓨터간 상호 통신이 가능하다.

    → 따라서 이기종간 정보통신을 하기 위해 표준 프로토콜을 채택하여 통신망을 구축해야 한다!

  • 인터넷으로 통신하는데 가장 기반이되는 프로토콜로 TCP/IP 프로토콜을 채택하고 있다!

프로토콜 종류 정리


OSI 7 계층 구성요소

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

신호로 변환하여 전송하는 계층

  • ‘물리’ 계층이라는 이름 처럼, 데이터를 전기적인 신호로 변환해서 통신 케이블로 주고 받는 역할

  • 단지 데이터를 전달만 할뿐, 전송하려는(또는 받으려는)데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다!

  • 통신 단위 : bit (1 or 0)

    • 전기적으로 On/Off 상태라고 생각하면 된다.

  • 통신 장비 : 통신 케이블, 리피터, 허브

    • 케이블, 리피터, 허브를 통해 데이터를 전송한다.


물리적 매체에 패킷 데이터를 실어 보내는 계층 - 환경에 맞는 다양한 통신 프로토콜 지원

  • 물리 계층을 통해 송수신되는 데이터의 오류와 흐름을 관리하여 안전하게 전달되도록 도와주는 역할

  • 맥(MAC) 주소를 가지고 통신한다.

    • point to point같은 LAN 안의 연결된 컴퓨터들끼리 맥주소로 통신

    • 주소값은 물리적으로 할당받는다 == 네트워크 카드가 만들어질 때부터 맥 주소가 정해져있다.

  • 통신 단위 : Frame

    • 패킷에 Ethernet 헤더와 Tail(FCS : Frame Check Sequence)가 붙은 것

      • 헤더에는 송신자와 수신자의 MAC 주소가 담겨있음

      • FCS는 데이터 전송 도중 에러가 있는지 판별하는데 사용

    • 프레임에 맥 주소를 부여하여 에러 검출, 재전송, 흐름 제어 등을 관리한다.

  • 통신 장비 : 브릿지, 스위치

    • 브릿지나 스위치를 통해 맥주소를 가지고 물리 계층에서 받은 정보를 전달한다.


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

네트워크를 논리적으로 구분하고 연결하는 계층 - 논리적 주소 사용

  • 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅) 이 제일 중요하다.

  • IP 주소를 이용해 다른 LAN에 속한 컴퓨터로 데이터를 전달함으로써 ‘인터넷’이 가능하게 만드는 계층

      1. 라우터를 통해 이동할 경로를 선택하고 (경로 설정)

      1. 논리적인 주소 구조(IP)를 지정하고 (주소 부여)

      1. 해당 경로에 따라 패킷을 전달해준다.

  • 라우팅, 흐름제어, 세그멘테이션, 오류제어, 인터네트워킹 등을 수행

  • 통신 단위 : Packets

    • 세그먼트에 IP 헤더가 붙은 것

  • 통신 장비 : 라우터


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

서비스를 구분하고 데이터의 전송 방식을 담당하는 계층 (TCP/UDP)

  • TCP와 UDP 프로토콜을 통해 통신을 활성화 하기 위한 역할

    • 포트를 열어서 응용 프로그램들이 전송 할 수 있게 한다.

    • TCP : 신뢰성, 연결지향적

    • UDP : 비신뢰성, 비연결성, 실시간

  • end to end → 양 끝단의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.

  • 패킷 생성, 오류 검출 및 복구, 흐름제어, 중복검사 등을 수행

  • 통신 단위 : Segments

    • 상위 계층의 데이터에 TCP 헤더가 붙은 것

    • 데이터의 크기가 크면 MTU 단위로 데이터를 쪼갠다.

    • 세그먼트를 송신할 때마다 쪼개진 데이터의 순서를 알 수 있도록 Sequence 번호를 TCP 헤더에 기록

    • 네트워킹 상황에 따라 수신지에 도착하는 데이터의 순서가 바뀔 수 있기 때문!

    • 수신지에서 패킷이 누락되었는지 여부를 확인할 수도 있음


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

응용 프로그램 간의 연결을 지원해주는 계층

  • 데이터가 통신하기 위한 논리적인 연결의 역할

    • 양 끝단의 응용 프로세스가 통신을 하기 위한 ‘방법’을 제공

    • TCP/IP 세션을 생성하고 없애는 책임이 있다!

  • 세션 설정, 유지, 종료, 전송 중단시 복구 등을 수행

  • 통신 단위 : Data


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

데이터의 변환 작업을 하는 계층

  • 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고 암호화 하는 역할

    • 코드 간의 번역을 담당

    • 사용자 시스템에서 데이터의 형식 차이를 다루는 부담을 응용 계층으로부터 덜어줌

    • MIME 인코딩이나 암호화 등의 동작이 표현 계층에서 이루어짐

      • 예) 이미지 인코딩 → JPEG, MPEG 등으로 변환

      • 해당 데이터가 TEXT인지-그림인지, 그림이라면 GIF인지-JPG인지 구분등을 여기서 수행

  • 파일 인코딩, 명령어의 포장/압축/암호화 등을 수행

  • 통신 단위 : Data


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

User Interface를 제공하는 계층

  • 최종 목적지로서 응용 프로세스와 직접 관계하여 일반적인 응용 서비스 수행

    • HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있음

    • 우리가 사용하는 브라우저나 프로그램 등은 위와 같은 프로토콜을 보다 쉽게 사용하게 해주는 응용 프로그램

    • → 모든 통신의 양 끝단은 HTTP와 같은 프로토콜이지, 응용 프로그램이 아니다!

  • 네트워크 소프트웨어 UI 부분, 사용자의 입출력(I/O)부분 등이 응용 계층의 예시

  • 사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스 제공

    • 예) 구글 크롬, 파이어폭스, 사파리, 아웃룩, 오피스 등 응용 프로그램

  • 통신 단위 : Data


TCP/IP Protocol (4계층)

1계층 - 네트워크 접근 계층 (Network Access Layer)

OS의 네트워크 카드와 디바이스 드라이버 같은 하드웨어적인 요소와 관련되는 모든 것들을 지원하는 계층

  • OSI 7 계층에서 물리계층데이터링크 계층에 해당

  • 송신측 컴퓨터 : 상위 계층으로부터 전달받은 패킷에, 물리적인 주소인 MAC 주소 정보를 가지고 있는 헤더를 추가하여 프레임을 만들고 → 프레임을 하위 계층인 물리 계층으로 전달한다.

  • 수신측 컴퓨터 : 데이터 링크 계층에서 추가된 헤더를 제거하여 상위 계층인 네트워크 계층으로 전달한다.

  • CSMA/CD, MAC, LAN, X25, 패킷망, 위성 통신, 다이얼 모뎀 등 전송에 사용

  • 프로토콜 : Ehternet(이더넷), Token Ring, PPP


2계층 - 인터넷 계층 (Internet Layer)

통신 노드 간의 IP 패킷을 전송하는 기능 및 라우팅 기능을 담당

  • OSI 7 계층에서 네트워크 링크 계층에 해당

  • 상위 전송 계층으로부터 받은 데이터에 IP 패킷 헤더를 붙여 IP 패킷을 만들고 이를 전송하는 계층

  • 프로토콜 : IP, ARP, RARP, ICMP, OSPF


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

통신 노드 간의 연결을 제어하고, 자료의 송수신을 담당하는 계층

  • OSI 7 계층에서 전송 계층에 해당

  • 네트워크 양단의 송수신 호스트 사이에서 신뢰성 있는 전송 기능 제공

  • 시스템의 논리 주소와 포트를 가지고 있어서 각 상위 계층의 프로세스를 연결해서 통신

  • 정확한 패킷의 전송을 보장하는 TCP or 정확한 전송을 보장하지 않는 UDP 프로토콜 이용

    • 데이터의 정확한 전송보다 빠른 속도의 전송이 필요한 멀티미디어 통신에서 UDP를 사용하면 TCP보다 유용

  • 프로토콜 : TCP, UDP


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

TCP/IP 기반의 응용 프로그램을 구분할 때 사용

  • OSI 7 계층에서 세션, 표현, 애플리케이션 계층에 해당

  • 응용 프로그램들이 네트워크 서비스, 메일 서비스, 웹 서비스 등을 할 수 있도록 표준적인 인터페이스를 제공

  • 프로토콜 : HTTP, FTP, Telnet, DNS, SMTP

  • 송신 : 상위 (응용) 계층 → 하위 (네트워크) 계층으로 거쳐서 각 계층의 프로토콜과 관련 된 헤더가 데이터에 씌워져 내려온다.

  • 수신 : 하위 (네트워크) → 상위 (응용) 계층으로 올라가며 헤더를 없애가며 데이터를 보낸다.


OSI 7 계층 vs TCP/IP 4 계층

  • TCP/IP 계층이 OSI 7 계층보다 먼저 개발되었다.

  • 세션과 표현 → 2개 계층이 TCP/IP 모델에 존재하지 않는다. (응용 계층에 속해 있음)

  • TCP/IP 모델은 인터넷 개발 이후 계속 표준화 되어 신뢰성이 우수

  • OSI 모델은 표준이 되긴 하지만 실질적으로 구현되는 예가 거의 없어 신뢰성이 저하

OSI 모델장비 개발과 통신을 어떻게 표준으로 잡을지 사용되는 반면, 실질적인 통신 자체TCP/IP 모델을 기준으로 사용한다!


  • 참고 문서

OSI 7 계층이란?, OSI 7 계층을 나눈 이유

Last updated