alt
Home OSI(Open System Interconnection) 7계층
Post
Cancel

OSI(Open System Interconnection) 7계층

: 각 계층별 기능과 통신의 과정을 표준화해 네트워크를 편리하게 이해하기 위한 목적으로, 실무적으로, 교육의 목적으로 이용될 수 있도록 만든 모델


osi_layer


캡슐화

  • 아랫층으로 데이터를 넘길 때 각각의 레이어에서 붙일 수 있는 헤더를 붙이는 과정
    • 윗 층(어플리케이션) HTTP 개발자는 아랫층 소프트웨어에 헤더가 붙는 과정을 보지 못한다.
  • 2층에서는 오류제어를 위해 헤더가 아닌 데이터의 뒷부분에도 일부 데이터가 추가됨
  • PDU(프로토콜 데이터 유닛)
    • 전송하려는 데이터 SDU(Service Data Unit) 와 제어 정보 PCI(Protocol Control Information)로 구성되어 있다.
    • PCI에는 송신자와 수신자 주소, 오류 검출 코드, 프로토콜 제어 정보 등이 있다.

비캡슐화

  • 전달받은 데이터가 윗쪽 계층으로 전해지면서 헤더가 벗겨지는 과정


계층 별 역할

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

: 프레임을 전기신호(비트)로 변환해 케이블로 전송하는 계층

  • 통신 단위 : 비트 (0 or 1)
  • 단순히 데이터 전달만의 역할
  • 1계층 장비 : 케이블, 리피터, 허브


: 물리 계층을 통해 송수신되는 정보의 오류흐름을 관리해 안전한 정보의 수행을 도움.

  • 통신 단위 : 프레임
  • 물리적인 연결을 통하여 인접한 두 장치의 신뢰성 있는 정보 전송
    • 물리 계층의 오류 수정
  • Mac(부 계층) 주소를 가지고 통신
    • Mac주소(Media Access Control) : 기기(컴퓨터)간 데이터를 전송하기 위해 사용되는 컴퓨터의 주소 (흔히들 IP주소라고 생각하지만, 정확하게는 IP주소를 Mac주소로 바꿔 물리적 위치를 찾아내는 것)
    • MAC 테이블(ARP table)을 확인해서 있으면 그 주소로 보내고, 없으면 Network 상의 모든 곳으로 Broadcast 후 MAC 주소를 받아와서 저장한다.
  • 2계층 장비 : 브릿지, 스위치.


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

: 데이터를 목적지까지 안전하고 빠르게 전달하는 기능

  • 통신 단위 : 패킷 (패킷을 통해 목적지 설정)
    • L4의 TCP 세그먼트에 IP 패킷을 담아 보냄
  • 라우터 기능 대부분이 여기 존재
    • A에서 B까지 어떻게 보낼지 방법은 무수히 많은데, 이 계층의 라우터가 이걸 효율적으로 처리
  • IP(직접 주소) 주소 사용, 라우팅(어떤 목적지로 전달할지 - 다익스트라), 흐름 제어, 오류 검사
  • 데이터를 연결하는 다른 네트워크를 통해 전달 - > 인터넷이 가능하게 만드는 계층
  • 3계층 장비 : 라우터, L3 스위치
    • netstat -r : r 옵션을 통해 routing table 확인 가능


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

: 통신을 활성화하기 위한 계층

  • 통신 단위 : 세그먼트
  • 종단 간(End-to-End)에 신뢰성있는 데이터를 전송
    • 상위 계층이 유효성이나 효율성 생각하지 않아도 됨.
  • 송 수신자 연결 지원, 신뢰성, 흐름제어, 다중화
  • Port를 열어 응용 프로그램을 전송 (목적지의 어떤 포트로 전달할지)
  • TCP 프로토콜, UDP 프로토콜
  • 4계층 장비 : L4 스위치(3계층 트래픽 분석, 서비스 종류 구분)


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

: 응용 프로그램 간 논리적 연결 지원, 응용 프로세스가 통신을 관리하기 위한 방법 정의

  • 통신 단위 : Data(Message)
    • 토큰이라는 특수 메시지
  • TCP/IP 연결(세션)을 관리. 연결이 손실되면 복구를 시도하거나, 오랫동안 연결되지 않으면 연결을 종료하고 재개한다.
  • NetBIOS(세션 내 연결관리, 에러감지, 복구), SSH, Appletalk 등등


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

: 데이터의 변환 작업. 응용 계층의 데이터 형식을 맞춰줌.

  • 통신 단위 : Data(Message)
  • 응용프로그램 형식과 네트워크 형식을 변환시켜준다. MIME 타입을 인코딩하거나 ASCII, JPEG, MPEG 등등 번역
  • 전송하는 데이터의 인코딩, 디코딩, 암호화, 복호화


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

: UI를 제공

  • 통신 단위 : Data(Message)
  • 인터페이스 역할: 사용자에게 보이며, 사용자와 가장 밀접.
  • 개발자들이 실제로 비즈니스 로직을 작성하는 등 신경써야할 많은 부분이 이 계층에 속하게 된다.
  • 크롬, 파이어폭스, 사파리, 이메일 등 Application
  • HTTP, FTP, SMTP, Telnet등 프로토콜



Reference)

HTTP 완벽가이드

https://ko.wikipedia.org/wiki/OSI_%EB%AA%A8%ED%98%95

https://en.wikipedia.org/wiki/OSI_model

https://devowen.com/344

https://ryusae.tistory.com/4

https://velog.io/@inyong_pang/OSI-7-%EA%B3%84%EC%B8%B5%EA%B3%BC-TCPIP-%EA%B3%84%EC%B8%B5

https://github.com/WeareSoft/tech-interview/blob/master/contents/images/data-encapsulation.png

This post is licensed under CC BY 4.0 by the author.