나나나
[네트워크] OSI 7계층 본문
OSI 모델이란?
https://www.cloudflare.com/ko-kr/learning/ddos/glossary/open-systems-interconnection-model-osi/
OSI(개방형 시스템 상호 연결) 모델은 다양한 통신 시스템이 표준 프로토콜을 사용하여 통신할 수 있도록 만든 개념 모델이다.
각 계층은 특정 작업을 처리하고 위아래 계층과 통신한다.
OSI 모델의 중요성
OSI 모델은 네트워크 문제 해결에 도움을 준다. 계층별로 문제를 분해하고 문제의 원인을 분리하는 데 도움이 된다.
OSI 7계층
Top-down 방식으로 설명
애플리케이션 계층
사용자의 데이터와 직접 상호작용하는 유일한 계층
웹 브라우저 및 이메일과 같은 소프트웨어 어플리케이션은 통신을 개시하기 위해 애플리케이션 계층에 의지한다.
소프트웨어가 사용자에게 의미 있는 데이터를 제공하기 위해 의존하는 프로토콜과 데이터를 조작하는 역할을 한다.
예시 : HTTP, SMTP
프레젠테이션 계층
주로 데이터를 준비하는 역할을 하여 애플리케이션 계층이 이를 사용할 수 있게 해준다. 즉, 애플리케이션이 사용할 수 있도록 데이터를 표현한다. 데이터의 변환, 암호화, 압축 등을 담당한다.
변환 : 통신 장치 간 인코딩 방법이 다를 수 있으므로 수신 장치의 애플리케이션 계층이 이해할 수 있는 구문으로 수신 데이터를 변환하는 일을 한다.
암호화 : 암호화된 연결을 통해 통신하는 경우, 최종 송신자에게 암호화를 추가하고 최종 수신자에서 암호화를 디코딩하여 읽기 쉬운 데이터로 애플리케이션 계층에 제시할 수 있게 한다.
압축 : 수신한 데이터를 세션 계층에 전송하기 전에 압축하여 전송 데이터의 양을 최소화한다. 이로 인해 통신과 속도의 효율을 높인다.
예시 : JPEG, MPEG
세션 계층
데이터가 통신하기 위한 논리적 연결을 담당한다.
통신이 시작될 때부터 종료될 때까지의 시간을 세션이라고 하는데, 교환되고 있는 모든 데이터를 전송할 수 있도록 세션을 개방하고, 리소스를 낭비하지 않기 위해 세션을 즉시 닫는 것을 보장한다.
데이터 전송을 체크포인트와 동기화 한다. 100MB의 파일을 전송할 때 체크포인트가 5MB인 경우, 52MB까지 전송하다가 연결이 끊겼다면 나머지 50MB만 전송한다.
예시 : API, 소켓
전송 계층
두 기기의 종단 간 통신을 담당한다.
세션 계층에서 데이터를 가져와 네트워크 계층으로 보내기 전에 세그먼트 단위로 데이터를 분할한다.
수신 기기의 전송 계층은 세그먼트를 세션 계층이 이용할 수 있는 데이터로 재조립한다.
네트워크 계층 '간' 흐름 제어 및 오류 제어를 담당한다.
흐름 제어는 최적의 전송 속도를 결정하여 속도가 빠른 송신자가 속도가 느린 수신자를 압도하지 않도록 보장하고, 오류 제어는 수신된 데이터가 완전한지 확인해 완전하지 않은 경우 재전송을 요청한다.
예시 : TCP, UDP
네트워크 계층
두 개의 상이한 네트워크 간의 데이터 전송을 촉진시킨다. 통신 중인 두 대의 기기가 동일한 네트워크에 있다면 이 계층은 할 일이 없다.
네트워크 계층은 발신자의 기기에서 전송 계층의 세그먼트를 패킷이라는 더 작은 단위로 분리하고 수신 장치에서는 이러한 패킷을 재조립한다.
또한, 라우팅을 통해 데이터가 대상에 도달할 수 있는 최상의 물리적 경로를 찾는다.
예시 : 라우터, IP
데이터 링크 계층
동일한 네트워크에 있는 기기 간의 전송을 촉진한다는 점이 네트워크 계층과의 차이점이다. 네트워크 계층에서 패킷을 가져와 프레임으로 나눈다. 네트워크 '내' 통신의 흐름 제어 및 오류 제어를 담당한다.
예시 : 브릿지, 스위치
물리적 계층
케이블, 스위치 등 데이터 전송과 관련된 물리적 장치를 포함한다. 데이터가 0과 1로 구성된 비트 스트림으로 변환된다.
예시 : 리피터, 케이블, 허브
OSI 모델을 통한 데이터 전송
송신 장치에서는 Top-down으로 수신 장치에서는 Bottom-up으로 데이터가 이동한다.
예시 : 이메일 전송
- 송신자가 이메일 애플리케이션에서 발송을 누르면 애플리케이션은 메시지를 애플리케이션에 넘긴다.
- 애플리케이션 계층 : 적절한 프로토콜(SMTP)를 선택하고 데이터를 표현 계층에 전달한다.
- 표현 계층 : 데이터를 압축하여 세션 계층에 보낸다.
- 세션 계층 : 세션을 시작한다.
- 전송 계층 : 데이터를 세그먼트 단위로 나눈다.
- 네트워크 계층 : 세그먼트를 패킷 단위로 나눈다.
- 데이터 링크 계층 : 패킷을 프레임 단위로 나눈다.
- 물리 계층 : 데이터를 비트스트림으로 변환하고 케이블과 같은 물리적 매체를 통해 전송한다.
- 수신자 : 비트스트림 → 프레임 → 패킷 → 세그먼트 → 데이터
- 세션 계층 : 데이터를 표현 계층으로 넘기면 통신 세션은 종료된다.
- 표현 계층 : 압축을 제거하고 원본 데이터를 애플리케이션 계층에 넘긴다.
- 애플리케이션 계층 : 사람이 읽을 수 있는 데이터를 소프트웨어에게 제공한다.
'CS' 카테고리의 다른 글
[네트워크]HTTP 메소드와 멱등성 (0) | 2021.04.11 |
---|---|
[네트워크]HTTP 헤더 (0) | 2021.04.11 |
[네트워크] TCP (0) | 2021.04.11 |
[네트워크] TCP와 UDP (0) | 2021.04.11 |
[네트워크] 웹의 동작 (0) | 2021.04.11 |