[CS] OSI 7계층

giggle·2023년 8월 3일
0

📌 OSI 7계층

OSI(Open Systems Interconnection)7계층은 통신이 일어나는 과정을 7단계로 정의한 국제 통신 표준 규약입니다.

네트워크 프로토콜 스택을 구성하는 일곱 개의 계층으로 이루어져 있으며, 각 계층은 특정 기능을 수행하고, 상위 계층으로부터 받은 데이터를 하위 계층으로 전달하거나 그 반대로 하위 계층에서 상위 계층으로 전달합니다.

이러한 OSI 7계층은 통신이 일어나는 과정을 단계별로 알 수 있고, 특정한 곳에 이상이 생기면 그 단계만 수정할 수 있습니다.

배경
ISO(국제 표준화 기구)에서 네트워크 프로토콜을 통일하여 상호 연결이 원활한 개방형 시스템을 구축하고자 제안되었습니다. 이전에는 다양한 회사와 기관들이 각자의 네트워크 시스템과 프로토콜을 사용하여 서로 통신이 어려운 상태였습니다. 이에 따라 1970년대부터 1980년대 초반에 이르는 기간 동안 ISO는 네트워크 프로토콜을 표준화하기 위한 작업을 수행하였고, 이러한 작업의 결과로 OSI 7계층 모델이 발행되었습니다.

1. 물리 계층(Physical Layer)

  • 데이터를 전기적인 신호로 변환해서 주고 받는 기능을 진행하는 공간, 즉 데이터를 전송하는 역할만 진행
  • 전기 신호나 광 신호와 같은 물리적인 매체를 통해 데이터를 전송
  • 신호를 주고받기 위한 전기적, 기계적, 기능적인 특성을 이용해 데이터를 전송 -> 대역폭과 전송효율이 중요
  • 장비 : 통신케이블, 허브, 리피터 등등 / 데이터 단위 : 0과 1의 비트열(On, Off 전기적 신호 상태)
  • 물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 역할
  • 송/수신되는 정보를 확인하고 오류없는 통신을 위해 여러 역할 수행
  • Mac 주소를 통해 통신 및 프레임에 Mac 주소를 부여하고 에러검출, 재전송, 흐름제어를 진행
  • 장비 : 브릿지, 스위치 등등 / 데이터 단위: 프레임
  • 하드웨어와 소프트웨어 특성 모두 보유(물리 계층은 하드웨어적 특성을 가지고, 네트워크 계층부터는 소프트웨어적인 특성을 가진다. 연결다리 역할)

-> Mac 주소란 컴퓨터 간 데이터를 전송하기 위해 잇는 컴퓨터의 물리적 주소, 하드웨어 주소입니다. 그 기계의 고유번호이자 하드웨어만 가지고 있는 식별번호입니다. IP는 변할 수 있지만 Mac은 변하지 않습니다.

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

  • 데이터(패킷)를 목적지까지 가장 안전하고 빠르게 전달하는 기능
  • 라우터를 사용하여 다른 네트워크와 통신하고, 패킷을 전달을 관리 -> 이동할 경로와 IP 주소를 선택하고, 해당 경로에 따라 패킷을 전달
  • 라우팅, 흐름제어, 오류제어, 세그먼테이션 등을 수행
  • 장비 : 라우터 / 데이터 단위 : 패킷

4. 전송 계층(Transport Layer)

  • TCP와 UDP 프로토콜을 통해 통신을 활성화한다. 포트를 열어두고, 프로그램들이 전송을 할 수 있도록 제공
  • 두 컴퓨터 사이의 데이터 전송을 보장하고 오류 검출 및 복구, 흐름 제어 등을 담당
  • 데이터 단위 : 세그먼트

5. 세션 계층(Session Layer)

  • 데이터가 통신하기 위한 논리적 연결을 담당
  • TCP/IP 세션을 설정, 유지, 종료하는 계층
  • 데이터 통신에서의 동기화와 오류 복구를 처리
  • API, Socket

6. 표현 계층(Presentation Layer)

  • 데이터의 형식을 변환하여 상위 계층에 맞게 표현하고 파일 인코딩, 명령어를 포장, 압축, 암호화 등의 작업 수행
  • 세션 계층 간의 주고받는 인터페이스를 일관성 있게 제공
  • 데이터 표현에 대한 독립성을 제공하고, 암호화하는 역할 담당
  • JPEG, MPEG 등등

7. 응용 계층(Application Layer)

  • 최종 사용자에게 네트워크에 접근할 수 있도록 서비스를 제공
  • 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행
  • 사용자 인터페이스, 이메일, 데이터베이스 관리, 웹 브라우저
  • HTTP, SMTP, FTP, DNS 등등

참고


피드백 및 개선점은 댓글을 통해 알려주세요😊

profile
배움을 글로 기록하는 개발자가 되겠습니다.

0개의 댓글