본문 바로가기
CS 공부

OSI 모델과 7계층

by 나노다 2024. 12. 7.

목차

  1. OSI 모델 개요
  2. 7 계층 개요
  3. 계층별 소개
  4. 마무리

OSI 모델 개요

  • 정의 : Open System Interconnection model
    • Open System : 통신하는 두 주체가 서로 다른 언어, 서로 다른 시스템을 사용하더라도 소통할 수 있게 해준다는 의미
  • 특성 : 네트워크에서 데이터가 움직이는 과정을 특정 7 계층으로 분할해 표현하고 있음
  • 한계 : 사실 현재 우리가 사용하는 인터넷은 주로 TCP/IP 모델을 따르는 편. OSI 모델은 실제 환경에 딱 들어맞게 적용 가능한 개념이라기 보단, 추상적인 원리에 가까운 개념
  • 중요성 : 그럼에도 불구하고 OSI 모델에 대한 이해는 중요함.
    • 7 계층을 통해 네트워크 통신 과정을 단계별로 파악할 수 있게 도와줌. 각 단계는 독립적인 특성을 지닌 동시에 서로 긴밀히 관계돼있음
    • 만약 통신 문제 상황을 마주했다고 할 때, OSI 모델을 통한 사고는 체계적으로 연관된 절차를 한눈에 파악해 그 흐름을 이해하는 걸 돕고, 동시에 개성적인 계층들 덕에 특정 문제 지점에 접근하기 수월하게 함.
    • 또한 네트워크 관련한 개발을 진행함에도 있어, 통신 과정에 대한 이해도를 높여주어 보다 효율적인 기능 구현을 할 수 있는 바탕이 됨.

7 계층 개요

  • 계층 종류 : 최하위의 물리 계층부터, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 최상위의 응용 계층으로 구성
  • 데이터 통신 흐름 : 송신 주체의 응용 계층부터 출발해 하위 계층으로 진행하고, 물리 계층에 도달한 데이터는 전송 매체를 통해 수신 주체에게 전해짐. 이후 수신 주체의 물리 계층부터 출발해 응용 계층에 도달하게 됨
  • 캡슐화 : 데이터는 각 계층을 거칠 때마다 그 다음 계층에서 이 데이터를 인식할 수 있게 돕는 명찰(Header)를 달거나 떼게 됨. 송신 시 거치는 계층에선 명찰을 달게 되는데, 이를 캡슐화(Encapsulation)라 하고, 수신 시의 계층에서 명찰을 떼는 것을 역캡슐화(Decapsulation)라 함.

“쉽게 생각하면, 데이터를 너무너무 소중한 선물이라고 생각해보자. 깐깐하게 고르고, 신경써서 전하려다 보니, 매 단계를 거칠 때마다 포장을 한 번씩 해주는 것”

1) 물리 계층

  • 하는 일 : 아날로그 신호인 전파를 받고, 이를 0과 1의 디지털 데이터로 변환, 또는 반대로 디지털 데이터를 아날로그 신호로 변환
  • 데이터 단위 : 비트 bit
  • 특성
    • 데이터의 단순 전달에 그침. 데이터의 내용이 무엇인지, 혹시 오류가 있는 데이터는 아닌지 등을 판단하지 않음
      “아무튼 선물을 줬다 이거임. 선물이 뭔지, 불량은 아닌지 보지도 않았음”
    • 케이블을 이용한 유선 통신 수준의 계층
      “우체국을 통하거나, 하다 못해 편의점 택배로 보낼 수도 있는데, 구태여 직접 찾아가 주는 선물”
  • 관련 장치 : 모뎀 Modem, 리피터 Repeater 등등
    • Modem : 받은 아날로그 신호를 디지털 데이터로 변환해주거나, 보낼 디지털 데이터를 아날로그 신호로 변환해주는 장치
    • Repeater : 통신의 물리적인 거리가 멀어질 경우, 중간에 위치해 신호를 증폭해주는 장치. 전파의 형태가 망가지면 다시 정형해주고, 동력이 줄어들면 힘을 키워줌
      “굳이 직접 만나서 주려하니까 가다가 지칠 수도 있고, 선물이 훼손될 수도 있음. 중간에 서서 선물 상태도 보존해주고, 가는 길 응원도 해주는 느낌”

“아직 물리적인 수준의 과정. 편지도 안 썼고 포장도 안한 선물을 냅다 직접 줌”

2) 데이터 링크 계층

  • 하는 일 : 동일 네트워크에 속한 장치 간 통신 흐름을 관리하고, 오류를 탐지하고 수정함으로써 데이터의 신뢰성을 체크함. 비트들을 묶어 프레임 형태로 만들거나, 패킷을 분리해 프레임 형태로 남김.
    “동일 네트워크란 유선 형태로 연결된 상태로 이해하면 될 듯. LAN, 이더넷 등이 이와 관련된 개념들. 패킷은 네트워크 계층의 데이터 단위. 추후 설명”
  • 데이터 단위 : 프레임 frame
    • 비트 형태의 데이터 0과 1들을 묶음
      “첫 포장이다 보니 명찰 말고도 들어가는 게 좀 많음”
    • 헤더 Header, 페이로드 Payload, 트레일러 Trailer, 플래그 Flag로 구성
      • Header : 데이터의 송신자와 수신자에 관한 정보가 담김
        “선물 주는 사람이 누군지, 받는 사람은 어디 사는 지 등등”
      • Payload : 데이터의 내용이 담김 “선물이 뭔지”
      • Trailer : 에러를 감지하고 수정하기 위한 정보가 담김. FCS(Frame Check Sequence)라고도 함
      • Flag : 하나의 프레임의 머리와 꼬리에 붙어 각 프레임을 구분해줌
  • 특성 : 물리적 주소인 MAC과 순환 중복 검사 CRC
    • MAC : Media Access Control, 통신 장치마다 할당된 고유 식별 ID. 이후에 등장할 IP와 달리 변경될 수 없는 물리적 주소. 이 계층에선 MAC 주소를 통해 통신 주체들을 구분하고, 흐름을 제어함
      “건물을 한 번 지으면 철거하지 않는 이상 그 건물의 물리적인 위치는 변하지 않음”
    • CRC : Cyclic Redundancy Check, 데이터를 보낼 때, 송신 측에서 데이터에 특정 연산의 결과를 함께 보내면, 수신 측에선 받은 데이터에 같은 연산을 해보고 그 결과의 일치 여부를 통해 온전한 데이터인지 판단. 이 계층에서 오류를 관리할 때 활용하는 방법
  • 관련 프로토콜 : HDLC, LLC 등등
    • HDLC : High-level Data Link Control, 임의의 비트를 패턴화한 프레임 단위로 데이터를 전송하게 하는 프로토콜. 다른 데이터 링크 프로토콜들의 조상격
    • LLC : Logical Link Control, LAN 환경에서 통신 상의 에러나 흐름을 제어하고 데이터 연결 상태를 유지 및 관리하는 프로토콜

“여전히 선물을 직접 전달하는 수준이긴 한데, 선물 상태도 체크하고, 첫 포장도 알차게 했음”

3) 네트워크 계층

  • 하는 일 : 데이터가 향할 주소를 설정하고 최적의 경로를 선택함. 프레임을 패킷으로 조립하거나, 세그먼트를 패킷 단위로 세분화함.
  • 데이터 단위 : 패킷 packet
  • 특성 : 논리적 주소인 IP와 경로 탐색 과정인 Routing
    • IP : Internet Protocol, 인터넷에 연결된 모든 장치나 도메인에 할당되는 논리적 주소. 물리적 주소인 MAC과 달리 변경될 수 있음. 각 패킷에 첨부되어 패킷들의 통신 경로 설정을 도움
      “건물에 배정된 주소는 도로명이 바뀌는 등 행정적인 변화가 있으면 달라질 수 있음!”
    • Routing : 데이터가 목적지까지 가장 안전하고 가장 빠르게 전달될 수 있는 경로를 탐색하는 과정
  • 관련 프로토콜 : ARP, ICMP, IGMP 등등
    • ARP : Address Resolution Protocol, 통신 대상의 IP 주소를 그 대상의 MAC 주소와 매칭시켜주는 프로토콜. 라우팅의 정확성을 높여줌
      “주소만 보고 길 찾기가 어려울 때가 있음. 그럴 때 빨간 벽돌 건물 3층 가게 같은 식으로 알려주면 훨씬 수월함!”
    • ICMP : Internet Control Message Protocol, 통신 간 예상치 못한 오류를 진단하거나, 오류 발생 상황을 알려주는 프로토콜
    • IGMP : Internet Group Message Protocol, 통신 주체가 속한 멀티캐스트 그룹을 알려주는 프로토콜. 어느 통신망에 속한 상태인지!
      “어느 동네 사는 지는 알아야 우편을 부칠 수 있다!”

“드디어 우편을 통해 선물을 보내기로 했음. 잘 포장한 선물을 우체국 박스에 한 번 더 포장하고, 받는 사람 주소도 잘 작성하고, 일반 우편으로 보낼 지 , 등기 우편으로 보낼 지, 특급 우편으로 보낼 지도 고름!”

4) 전송 계층

  • 하는 일 : 서로 다른 네트워크 간 통신 흐름을 관리하고, 오류를 검출 및 복구함으로써 데이터의 신뢰성을 체크함. 이렇게 OSI 모델은 데이터 링크 계층과 전송 계층 총 두 번의 신뢰성 보장 절차를 거침. 패킷을 세그먼트 단위로 조립하거나, 데이터 집합을 세그먼트로 분할함.
  • 데이터 단위: 세그먼트 Segment 또는 데이터그램 Datagram
    • TCP 프로토콜인 경우 Segment, UDP 프로토콜인 경우 Datagram
  • 특성 : PORT 번호
    • PORT : 동일 IP 주소의 서로 다른 서버들에 대한 요청을 구분하기 위해 각 서버에 배정되는 고유 번호. well-known port라고 해서, 특정 번호는 특정 프로토콜 요청에 쓰도록 권고하는 개념이 있음. 예를 들어 53번 포트는 DNS 시스템 관련 번호
      “우편을 보낼 때 상세주소를 적지 못한다면, 우편물은 그 아파트 경비실에서 주인이 오기만을 하염없이 기다리게 될 것임!”
  • 관련 프로토콜 : TCP, UDP
    • TCP : Transmission Control Protocol, 두 통신 주체가 연결 절차를 걸쳐 통신하기로 약속하고, 약속된 경로를 통해서만 데이터를 주고 받도록 하는 프로토콜. 사전 절차가 있고, 통신 도중에도 흐름 제어나 오류 검사 등의 절차가 있어 속도는 느린 편이지만, 신뢰성은 뛰어남. 일반적인 경우의 통신이라면 대개 TCP 방식을 채용
      “컵에서 컵으로 물을 옮기는 데, 주사기로 물을 뽑아서 옮김. 한나절 걸리겠지만 바닥에 흘릴 일은 없겠다!”
    • UDP : User Datagram Protocol, 연결 절차랄 게 없이 통신 주체 사이에 이미 존재하는 무작위 경로를 통해 데이터들이 전달됨. 어느 데이터가 어느 경로로 갈 지 불명확하기 때문에, 데이터 간 관련성도 희미해지고, 통신 순서도 알 수 없게 됨. 다만 통신 간 제동이 없는 수준이기에 속도가 빠른 편인 관계로, 실시간 성능이 중요한 스트리밍 서비스 등에서 UDP 방식을 채용
      “컵에서 컵으로 물을 옮기는 데, 그냥 위에서 부어버림. 후딱 옮기긴 하겠는데 바닥에 물이 다 튀겠다!”

“보낸 우편이 잘 가는 지 배송조회를 열심히 확인 중! 받을 주소는 맞게 기입됐는지, 어떤 과정을 거쳐 어떤 기사 님이 배송 중인지”

5) 세션 계층

  • 하는 일 : 통신 주체 간 연결을 시작하고 유지 및 종료하는 기능을 담당. 모든 데이터가 전송될 수 있도록 충분히 세션을 개방하고, 동시에 리소스 낭비를 막기 위해 세션을 적절할 때에 닫음. 연결이 손상되는 경우엔 복구하고, 장시간 연결에 실패하면 재연결을 시도하는 등
    “보내는 사람이 현관을 열어줘야 기사님이 우편물을 챙기고, 받는 사람도 현관을 열어줘야 문 앞에 배송을 받을 수 있음! 근데 현관이 계속 열려있으면 강도가 들 수도 있겄지”
  • 특성 : 세션 Session, 체크포인트 CheckPoint
    • Session : 통신이 시작될 때부터 종료될 때까지의 시간
    • CheckPoint : 통신이 예기치않게 중단될 경우를 대비한 분기 기록점. 세션 계층에선 데이터가 전송되는 과정에서 특정 시점마다 체크포인트를 설정함. 도중에 연결이 끊어지거나, 충돌이 발생할 경우 최신 체크포인트를 기점으로 세션을 재개하도록 대비
  • 관련 프로토콜 : SSH, TLS 등등
    • SSH : Secure SHell, 통신 경로에 보안 채널을 형성해 그 경로 상의 데이터가 안전하게 교환되도록 하는 프로토콜. 터널링이라고도 하는데, shell이란 이름처럼 경로에 방어막을 씌워 터널 내부처럼 만든다는 개념
    • TLS : Transport Layer Security, 통신 주체 간 인증서를 통해 서로의 신뢰를 확인하고 암호화된 정보를 송수신하게끔 하는 프로토콜. 대표적으로 TLS가 적용된 사례가 HTTPS임

6) 표현 계층

  • 하는 일 : 응용 프로그램이 날 것 형태의 데이터를 알맞게 표현할 수 있도록 번역하고 준비
    “좋은 마음으로 탄생석을 선물하려고 했는데, 받는 사람에게 적절히 설명해주지 않으면 그냥 돌맹이일 뿐!”
  • 특성 : 인코딩 Encoding, 압축 Compression, 암호화 Cryptography
    • Encoding : 데이터를 수신 주체의 응용 계층이 이해할 수 있는 구문으로 변환
    • Compression : 통신할 데이터의 양을 최적화함으로써, 통신의 속도와 효율을 높임
      “택배에 쓸 데 없는 물건들 넣으면 무거워져서 우편 비용만 늘어남”
    • Cryptography : 최종 송신 단계에서 데이터를 암호화하거나, 최종 수신 단계에서 암호화된 데이터를 읽기 쉽게 만드는 등
  • 관련 프로토콜 : MIME TYPE, 파일 확장자 (txt, jpeg, mp4, html 등등)
    • MIME : Multipurpose Internet Mail Extensions, 웹에서 주고받는 데이터들의 타입을 구분해주는 프로토콜. 헤더에 데이터의 미디어 타입을 알려주는 문자열을 첨부하는 방식으로 작동. 예를 들어 JSON 파일의 MIME type은 application/json

7) 응용 계층

  • 하는 일 : 응용프로그램을 통해 서비스가 제공되는 계층. 클라이언트 입장에선 직접 요청을 하는 곳, 서버 입장에선 응답을 직접 보여주는 곳.
    “나는 배송을 준비하고 신청하고, 직원은 신청을 수납하고 실배송을 추진하고 하는 모든 일들이 결국 우체국 창구에서 이뤄짐!”
  • 특성 : 어플리케이션 application
    • application : 특정 기능을 수행하거나, 통신을 가능케 하거나, 데이터를 공유하는 등의 작업을 지원하는 소프트웨어 프로그램 또는 서비스
  • 관련 프로토콜 : HTTP, FTP, DNS
    • HTTP : HyperText Transfer Protocol, html 문서 전송을 지원해주는 프로토콜
    • FTP : File Transfer Protocol, 대규모 데이터 파일 전송에 유용한 프로토콜
    • DNS : Domain Name System, 도메인 이름과 IP 주소 간의 변환을 지원해주는 프로토콜

References