개요
◦ What is the OSI model
What is the OSI model
OSI 7 layer model은 위의 그림과 같은 형태로 나타난다.
이 모델은 다양한 레이어들이 사용되는 국제 표준 프로토콜의 첫 단계로써 ISO에 의해 제안되었다.
이 모델은 ISO OSI(Open Systems Interconnection)참조 모델이라고 불리는데 그 이유는 오픈 시스템을 다루기 때문인데
오픈 시스템이란 다른 시스템과 오픈된 환경에서 통신하는 시스템을 의미한다.
OSI model은 7개의 레이어에 적용된 다음과 같은 원칙이 있다.
- 계층마다 추상화의 방법, 수준은 다르다.
- 각 계층은 각자의 명확한 역할을 수행한다.
- 각 계층의 기능은 국제 표준 프로토콜을 따른다.
- 각 계층의 경계는 인터페이스를 통하는 정보 흐름을 최소화하도록 한다.
- 계층의 수는 한 계층에 역할이 집중되지 않도록 많아야하고 구조가 복잡해지지 않아야한다.
물리 계층 (Physical Layer)
물리 계층은 통신 채널로서 비트들의 나열을 전송하는 기능을 담당한다. 이 계층은 송신측이 비트 1을 송신하면 수신측이 비트 1 그대로를 수신하도록 해야한다.
그렇기 때문에 Physical Layer의 설계쟁점은 물리적 계층 아래에 위치한 물리 전송매체뿐만 아니라 기계적, 전기적, 그리고 타이밍 인터페이스에 관한 것이다.
이 계층의 대표 장치로 리피터(허브)가 있다. 전송단위는 비트이다.
데이터 링크 계층(Data Link Layer)
데이터 링크 계층의 주요임무는 오류 없는 전송을 위해서 전송설비 즉 원시데이터를 회선으로 변환하는 것이다.
송신측은 이 계층에서 데이터를 데이터 프레임으로 나누어서 각 프레임을 순서대로 전송한다.
신뢰할 수 있는 데이터라면 수신측에서 긍정응답을 나타내는 확인응답 프레임(acknowledgement frame)을 송신측에 보낸다.
확인응답 프레임을 간단하게 ack message라고 부른다.
Data Link Layer의 설계 쟁점은 수신측에 과부하가 오도록 송신측이 데이터를 보내지 않도록 하는 것이다.
이를 위해 이 계층에서는 오류제어 및 흐름제어를 진행한다. 이러한 제어들은 트랜스포트 계층에서도 한다.
이 계층의 대표 장치로 브릿지가 있다. 전송단위는 프레임이다.
네트워크 계층(Network Layer)
네트워크 계층은 서브넷의 동작을 제어한다. 이 계층의 설계쟁점은 송신측에서 수신측으로의 패킷 전송 경로를 결정하는 것이다.
라우터는 네트워크를 물리 케이블로 연결한 망 형상에 대한 정적 테이블에 따라 동작하고 이 테이블은 거의 변경되지 않는다.
전송 경로를 결정하는 것은 매우 동적이어서 현재의 네트워크 부하를 반영하여 각 패킷을 전송하기 위해 라우터들이 새롭게 결정할 수 있다.
만약 동시에 매우 많은 패킷들이 서브넷에 존재할 경우 각각의 패킷들은 다른 패킷들의 경로에 끼어들어 병목현상을 빛게 될 것이다.
이를 방지하기 위해 혼잡 제어를 해줘야한다. 일반적으로 제공되는 QoS(Quality of Service)도 네트워크 계층의 쟁점이다.
패킷이 최종 목적지에 도달하기 위해 네트워크를 통과할 동안 많은 문제들이 발생할 수 있다.
이러한 문제들을 해결하면서 다른 네트워크 간의 상호연결을 제공하는 것이 네트워크 계층의 역할이다.
이 계층의 대표 장치로 라우터가 있다. 전송단위는 패킷이다.
트랜스포트 계층(Transport Layer)
트랜스포트 계층의 기본 기능은 세션 계층으로부터 전달 받은 데이터를 필요한 경우에만 작은 단위로 분할한 후
이들을 네트워크 계층으로 전달하고 각 단편들이 모두 수신측에 정확하게 도착하였음을 보장하는 것이다.
또 트랜스포트 계층은 세션 계층에 제공할 서비스 유형과 궁극적으로 네트워크 사용자들에게 제공할 서비스 유형을 결정해야 한다.
가장 대중적인 트랜스포트 계층연결 유형은 전송된 순서대로 메세지 혹은 바이트들을 전달하는 오류없는 점대점(end to end) 채널이다.
참고로 ‘오류없는’이라는 것은 불가능하다. 오류율이 무시해도 될만큼 낮은 것을 의미한다.
이 계층의 대표 장치로 게이트웨이가 있다. 전송단위는 세그멘트이다.
이 계층까지를 하위계층이라고 부르며 세션 계층부터는 상위 계층이라고 부른다.
세션 계층 (Session Layer)
세션 계층은 다른 통신기기상의 사용자들이 그들 간의 세션을 설정할 수 있도록 허용한다.
세션 계층은 대화제어(누가 전송할 차례인지 제어), 토큰 관리(양측이 동시에 같은 동작을 하지 못하게함), 동기화(오류가 발생할 경우 마지막 체크 포인트로 가도록 하는 방법)등의 여러가지 서비스를 제공한다.
표현 계층(Presentation Layer)
주로 비트를 전송하는 것과 관련된 하위 계층과는 달리, 표현 계층은 전송되는 정보의 구문 및 의미규칙과 관련이 있다.
컴퓨터가 서로 다른 내부의 데이터 표현으로 통신하는 것을 가능하게 하려면 교환되는 데이터 구조가 물리 계층에서 사용되는 표준 부호화에 따라 추상적인 방법으로 정의될 수 있어야한다.
표현 계층은 이러한 추상 데이터 구조를 관리하고 정의 및 교환될 수 있는 고급 데이터 구조를 허용한다.
암호화하는 기능도 이 계층에서 수행된다.
응용 계층(Application Layer)
응용 계층은 주로 사용자들에게 필요한 여러 가지 프로토콜을 포함한다. 예를들어 HTTP가 있다.