OSI 7 Layer

OSI 7 layer

네트워크 : 다수의 시스템을 전송 매체로 연결해 구성한 시스템들의 집합체

소규모의 네트워크들은 전송 매체로 연결되어 더 큰 네트워크로 확장할 수 있다. 컴퓨터 네트워크는 수행하는 내부 기능을 기초로 하여 다양한 구조로 세분화 할 수 있는데 host가 제공하는 복잡한 네트워크 기능을 연관된 그룹으로 묶어 계층 모델로 설명할 수 있다.

계층 모델 : 특징이 다른 여러 host들을 서로 연결해서 통신하려면 연결 방식을 표준화해야한다. ISO에서는 OSI 7 layer 를 제안하여 네트워크에 연결된 시스템이 갖춰야할 기능을 정의했다.


OSI(Open System Interconnection) 7 layer

OSI 7 layer : ISO에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나눠서 설명한 것 - wiki

서로 다른 네트워크 통신을 사용하며 생겼던 여러가지 충돌 문제을 완화하기 위해 고안된 표준안이다.

1970년대 말에, 한 프로젝트가 국제 표준화 기구(ISO)에 의해 관리되고 있었고 다른 하나는 국제 전신 자문 위원회(International Telegraph and Telephone Consultative Committee)에 의해 관리되었다. 이 두 개의 국제 표준 기구들은 각각 비슷한 네트워킹 모델을 정의해놓은 문서를 만들었다. 1983년에 이 두 문서들은 개방형 시스템 상호 연결을 위한 기초 참조 모델(The Basic Reference Model for Open Systems Interconnection)이라는 이름의 표준을 만들기 위해 병합되었다. 이 표준은 보통 OSI 참조 모델(Open Systems Interconnection Reference Model)로 불렸다. - 출처

2개의 표준이 만들어졌기에 1개로 합치면서 OSI 모델로 만들어진 것 같다. 왜 굳이 이렇게 나눴을까?

통신이 일어나는 과정이 단계별로 파악될 수 있기 때문이다.

흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다. 예를 들면, 서버와 연결이 끊겼다고 해보자. router와 연결된 PC, 휴대폰 등등에서 모두 끊겼다고 한다면, 라우터의 문제거나 공유기와 연결된 랜선의 문제일 수 있다. 만약 컴퓨터의 브라우저에서만 서버에 대한 연결이 되지 않는다면, 브라우저의 문제를 의심할 수도 있다. 만약 단위 테스트를 한다면, 어디서 문제가 발생했는지 알기 쉽고, 해당 부분만 고치면 된다는 장점이 있다.

OSI layer에는 총 7가지의 계층이 존재하는데

network_osi_1

위와 같은 계층으로 나눠져 있다. OSI 7 layer 모델에 따르면, 네트워크에 연결된 host들은 위와 같이 7개 계층으로 모듈화된 통신 기능을 갖춰야 한다. 일반 사용자는 가장 상위의 Application layer을 통해 데이터의 송/수신을 요청하며 해당 요청은 하위 계층에 순차적으로 전달되어 가장 하위의 Physical layer를 통해 상대 host에게 전달된다.

데이터를 송/수신하는 주체는 Application layer이고, 하위의 layer들은 application layer를 지원하기 위해 데이터 전송에 필요한 기능을 나눠 처리한다. 하위 layer가 상위 layer에게 서비스를 제공하는 형식으로 동작한다.

각 계층에 대한 내용을 아래에서 자세히 보도록 하자.


Application Layer

Application layer는 사용자와 상호작용하는 인터페이스이다. 사용자가 네트워크에 접근할 수 있게 만들어주는 가장 상위의 계층이고, 그걸 가능하게 해주는 브라우저와 같은 application이 다음 layer인 Presentation layer와 상호작용을 한다.


Presentation Layer

데이터를 어떻게 표현할지 정하는 역할을 하는 계층.

정보를 교환하는 시스템이 표준화된 방법으로 데이터를 인식할 수 있게 해준다. 이러한 데이터의 표현이라는 기능에 더해, 압축과 암호화라는 기능도 중요하게 다룬다.


Session Layer

서로 다른 컴퓨터의 사용자가 서로 간에 통신 session을 설정할 수 있다.

End-user applications 사이에 session을 생성/유지/동기화 하는 역할을 가진다. session이 생성되면, 데이터는 Transport layer로 보내진다. 그리고 인증과 network 오류가 발생하는 경우에는 reconnection을 해주는 역할도 가진다.


Transport Layer

컴퓨터 네트워크에서 데이터를 교환하는 최종 주체는 host 시스템이 아닌, 그 내부레서 실행되는 네트워크 프로세스이다. Transport layer는 sender process, receiver process사이의 connection을 제공하기 때문에 ‘데이터의 전송’을 지원하는 계층이다. 즉,

서로 다른 2개의 네트워크간의 ‘데이터 전송’을 담당. 데이터를 전송하고 전송속도를 조절하며 오류가 발생한 부분은 다시 맞춰준다.


UDP(User Datagram Protocol)

Transport layer에서는 connectionless 한 통신 Protocol이다. TCP와 함께 datagram이라는 메세지를 교환하기 위해 사용된다. TCP처럼 연결을 한 다음에 데이터를 전송하는게 아니라, 그냥 송신 측에서 단방향으로 수신 측에 전달하기에 전송방식이 매우 단순하다. 데이터의 순서, 손실에 대한 보장이 없고 오직 오류만을 확인해준다. 대신 TCP에 비해 적은 overhead를 가진다.

UDP 설명 더 - 예전 포스팅


TCP(Transmission Control Protocol)

Internet suite 의 주요 protocol중 하나. IP를 보완한 초기 network구현에서 나왔다. - wiki

Connection-oriented 한 통신 protocol이다. UDP와는 달리, ‘신뢰성 있는 데이터의 전달’을 보장해준다. flow control, congestion control, retransmission(data가 손실 또는 오류났을 경우를 대비) 등등의 동작이 있다. 더 자세히 정리해놓은 포스팅이 있으니 참고 바란다.

TCP 설명 더 - 예전 포스팅

TCP가 reliable data transfer를 보장할 수 있는 이유1

TCP가 reliable data transfer를 보장할 수 있는 이유2

TCP가 reliable data transfer를 보장할 수 있는 이유3

TCP가 reliable data transfer를 보장할 수 있는 이유4 - TCP flow control

TCP - congestion control


Network Layer

전송 data를 목적지까지 경로를 찾아 보내주는 역할을 하는 계층.

IP를 정하고 Route를 선택하고, packet을 전달하는게 핵심인 계층. network routing 기능도 이 계층에서 이뤄진다. data를 신뢰성 있게 보내주는 기능은 없기에 이러한 점을 Transport layer에 기댄다.


Data Link Layer

물리적인 네트워크 사이에 data전송을 담당하는 계층.

신호를 전달하는 Physical layer를 이용하여 네트워크 주변 기기들 간 데이터를 전송한다. 2가지 기능을 제공한다.

  1. Physical layer로 부터 받은 신호들이 올바른 곳으로 갈 수 있게 해준다.
  2. 신호가 전달되는 동안 오류를 감지한다. 오류가 감지되면 해당 frame은 폐기한다. CSMA/CD와 같은 protocol을 써서 재전송을 한다.


Physical Layer

bit를 전기신호로 변환하여 전송하는 계층이다.

전기신호를 주고 받는데 목적이 있으며 데이터의 종류나 에러가 있는지 등은 확인하지 않는다.



Reference

OSI 7 layers wiki

OSI 7 layers - Tecoble

OSI 탄생배경

Session Layer

Session Layer2

TCP - wiki

쉽게 배우는 데이터 통신과 컴퓨터 네트워크 - 책

OSI layer 나눈 이유

OSI layer 나눈 이유2

UDP

Network Layer

CSMA/CA, CSMA/CD