OSI 7 Layer Model

개념

  • OSI : Open Systems Interconnection(오픈시스템 상호 연결 모델)

  • 네트워크 통신 기능을 7개의 계층으로 나눈 것.

중요한 이유(WHY)

  • 소프트웨어 및 하드웨어에 걸쳐 구성 요소 전반의 모든 네트워크 통신을 캡슐화하여 전체 흐름을 파악 가능해짐

  • 더 작은 단위로 구분하는 것은 사람들이 시스템을 전체적으로 개념화/이해하기 쉽게 만듦

  • 통신이 일어나는 과정을 단계별로 알 수 있기 때문에 에러 발생시 디버깅에 보다 용이함

    • -> 병목이 발생한 지점을 찾아서 디버깅

// 총게임을 하는데 총이 안맞음
1. L1/L2 문제 -> ex) Wi-Fi 신호가 약함
1. L3 레벨에서 패킷을 손실(or TTL)로 발생할 수도 있음. ping 명령어 등으로 확인
2. L4(TCP/UDP) 레벨에서 세션이 다른 서버 메모리로 갔을 수 있음(LB)
    -> L7 LB(Nginx)로 제어 or Redis 와 같은 session store 분리하여 사용
3. L7 의 게임 로직 자체의 문제일 수도 있음.
  1. 물리계층

    • 데이터를 전송하는 역할을 함

    • 비트를 물리적인 신호(전기/광/무선)으로 변환하여 전송하는 계층

    • 케이블과 같은 물리적 채널을 통해 전송

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

  2. 데이터링크 계층

    • 물리 계층이 이미 존재하는 네트워크를 통해 두 시스템을 연결하는 데 사용되는 기술을 말함

    • ㅇ니접 노드 간 프레임 단위 통신

    • MAC 주소 기반 통신

    • 오류 검출(CRC) 수행

    • ex) 브릿지, 스위치(맥주소 활용)

  3. 네트워크 계층

    • 여러 네트워크의 경로(노드 또는 머신) 선택해서 주소를 정한 뒤에, 경로에 패킷을 전달해주는 역할

      • 라우팅, 전달 및 주소 지정과 같은 개념

    • 흐름 제어 관리 가능

    • ex) 라우터, IPv4, IPv6 기본 사용

  4. 전송 계층(TCP, UDP)

    • 애플리케이션 간 통신(데이터 전달)을 가능하게 해주는 계층.(Multiplexing)

      • 포트 번호를 사용하여 하나의 호스트 내 여러 애플리케이션을 구분함(프로세스간 통신)

      • 포트 번호: 하나의 컴퓨터안에서 “어떤 프로그램과 통신할지” 구분하는 번호.

    • 데이터 패킷이 손실이나 오류 없이 올바른 순서로 도착하는 것이 필요한 경우 데이터 패킷 복구 목적

      • 오류가 발생한 부분을 다시 맞춰줌. → 여기에서 데이터를 맞춘 후에 세션계층으로 전달.

    • TCP는 신뢰성있는 데이터 전송을 위해 흐름제어, 오류복구, 재전송, 순서 보장 기능 제공

    • UDP는 연결 설정 없이 빠른 전송을 지원함.

    • 데이터 단위: TCP(Segment 단위), UDP(Datagram 단위)

  5. 세션 계층

    • 한 세션에서 서로 다른 두 애플리케이션 간의 “대화 상태”를 관리하는 계층

    • 세션의 생성, 유지, 종료를 담당

  6. 표현 계층

    • 데이터의 표현 형식을 변환하는 계층

      • 인코딩 / 디코딩(UTF-8, ASCII 등)

      • 직렬화 / 역직렬화 형식 변환

      • 암호화 / 복호화

      • 압축 / 해제

    • ex) TLS(Transport Layer Security)

  7. 애플리케이션 계층

    • 사용자와 직접 상호작용하는 네트워크 서비스 계층

    • ex) HTTP 세션(애플리케이션 계층의 상태 관리 개념)

참고

https://aws.amazon.com/what-is/osi-modelarrow-up-right

https://frostedpress.wordpress.com/assignment-1arrow-up-right

https://github.com/gyoogle/tech-interview-for-developerarrow-up-right

https://docs.tosspayments.com/resources/glossary/tlsarrow-up-right

Last updated