[ACSA 교육#2] OSI 7계층

1980년대 중반 컴퓨터가 빠르게 발전하면서 모든 제조사들이 그들 자체 독점적인 통신 프로토콜을 구현하려고 했습니다.

그 결과 다른 제조사 제품간 호환 문제가 발생하면서 통신이 제대로 이뤄지지 않았습니다.

그래서 국제표준화기구(International Organization for Standardization, ISO)는 컴퓨팅 장치의 표준 통신 모델인 OSI(The Open Systems Interconnection)모델을 제시하여 이러한 문제를 해결했습니다.

OSI 모델은 7개의 계층으로 나뉘고, 각 계층은 단계를 정의합니다.

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

Modulation 
Demodulation 
Convert logical data bits into physical signals 
Covert signals into logical data bits 
1 
1 
O 
Bits 
5 Volts 
0 Volts 
Media types 
Air 
Radio Frequency (RF) 
Copper 
Voltage signal 
Time 
Optif 
Light Signal 
Modem

1계층은 두 미디어간에 신호를 전달하고 수신하는 물리적인 장치를 나타냅니다.

예를 들어 집에서 사용하는 공유기를 생각해보면 쉽습니다.
우리가 갖고 있는 태블릿, 스마트폰은 공기를 가로질러 무선 주파수(RF)신호를 사용하여 공유기에 연결됩니다.

이 공유기는 집으로 들어오는 광케이블을 사용하여 KT나 SKB, LGU와 같은 ISP(인터넷 서비스 공급자)네트워크에 연결합니다. 그리고 라우터가 데이터를 광 신호로 변환합니다.

뿐만 아니라, 프린터는 UTP라는 흔히 LAN케이블이라 일컫는 케이블을 통해 공유기에 직접 연결됩니다.

인쇄 작업이 프린터로 전송되기 전에 전기신호로 변환됩니다.

이렇게 논리적 데이터를 다른 미디어로 메시지를 전달하기 위해 빛이나 전기 신호로 변환하고 전송하는 구성 요소가 물리 계층을 나타냅니다.

2계층 : Data Link Layer

From upper layers 
Source 
Data 
Host A 
Host A 
Dest. 
Host B 
Host A is transmitting. 
I must wait my turn. 
Host B 
Ethernet link

데이터 링크는 3가지 주요 기능을 제공합니다.

1. MAC (Media Access Control) – 일반적으로 우리가 대화할 때 한 명이 얘기하면 다른 상대방은 조용히 경청하기 마련입니다. 마찬가지로 대부분의 미디어에서도 한 번에 하나의 장치만 전송할 수 있기 때문에 미디어에 대한 액세스를 제어해야 합니다.

데이터를 전송하기 전에 “Carrier Sense” 메커니즘을 활용하여 누군가 데이터를 송신하지 않는지 신호를 감지하고, 송신 신호(Transimission Signal)가 감지되면 완료될 때까지 전송을 기다려야 합니다.

2. Link Layer Addressing – 학생들이 붐비는 교실에서 멀리 있는 A라는 학생에게 얘기하기 위해서는 직접 다가가지 않는 한 큰 소리로 부르게 될 것입니다. 그때 다른 사람들도 내 목소리를 들을 수 있지만 오직 A만 내 얘기에 반응할 것입니다.
마찬가지로 LAN의 각 스테이션(Station)에는 고유한 이름이 있습니다. MAC주소라고 하는 6바이트 16진수(Hexadecimal)로 식별됩니다. 모든 스테이션은 메시지를 수신하지만 의도한 수신자만 메시지를 처리하고 응답합니다. 나머지는 그 메시지를 그냥 무시하게 됩니다.

3. Error Detection – 2 계층에서는 1 계층 전송 중에 발생할 수 있는 오류를 감지합니다. 이것은 손상되었거나 불완전한 메시지를 불필요하게 처리할 필요 없도록 방지하게 됩니다. 이 작업은 데이터에 “Trailer”를 추가하여 수행됩니다.

3 계층: Network Layer

192.168.10.10 
10.0.10.1

네트워크 계층에서 주요 목표는 최상의 경로를 이용해서 여러 LAN 또는 WAN간에 통신을 설정하는 것입니다.

1. 논리적 주소 지정 – 출발지 및 목적지에 대한 고유한 식별자가 경로 전체에서 사용됩니다.

2. 경로 검색 및 선택 – 알고리즘과 프로토콜을 통해 찾은 모든 경로에서 최상의 경로를 선택합니다.
두 장치 간의 통신에 사용된 경로가 나중에도 사용되지 않을 수 있습니다.
이 계층에서 사용되는 프로토콜과 알고리즘은 여러 요인에 따라 언제든지 경로를 업데이트 할 수 있습니다.
우리가 네비게이션을 갖고 운전을 할 때 같은 목적지를 가더라도 도로 상황이나 교통 흐름에 따라 경로를 다르게 가져가는 것과 같습니다.

4 계층 : Transport Layer

From upper layers 
Segmentation 
Sender divides files 
into smaller pieces. 
Data 
TCP 
or 
UDP 
12345 
Host A 
To upper layers 
Data 
TCP 
or 
UDP 
De-segmentation 
Receiver reassembles 
the pieces. 
6 
Connection oriented 
Connectionless 
7 
Ethernet link 
1 
2 
34567 
Host B

4 계층 전송 계층은 세그멘테이션(Segmentation)과 디세그멘테이션(De-segmentation), 오류제어를 통해서 링크의 신뢰성을 제어합니다.

이 계층에서 TCP(Transmission Control Protocol)과 같은 일부 프로토콜은 연결 지향적(Connection-Oriented)입니다. 이는 전송 계층이 메시지를 추적하고 실패한 메시지를 재전송할 수 있는 것을 의미합니다.

UDP (User Datagram Protocol)과 같은 프로토콜은 Stateless 또는 Connectionless 입니다. 이는 전송 계층이 메시지를 추적하지 않음을 의미하고, 연결을 비교적 빠르고 쉽게 계산할 수 있다는 장점을 갖고 있습니다.

전송계층은 3가지 주요 임무가 있습니다.

  1. Segmentation – 발신인의 TCP 또는 UDP 프로세스는 각 애플리케이션으로부터 파일을 수신하여 작은 조각(일반적으로 1,500바이트)으로 나눕니다. 각 조각은 하위 계층으로 전달되고 마지막 이더넷 링크를 통해 개별적으로 전송됩니다.
  2. De-segmentation  – 수신하는 장치가 각 세그먼트 조각을 수락하고 필요한 경우, 올바른 순서로 다시 배치하고 정보를 재조립하기도 합니다.
  3. Error Detection – 하위 계층 (1-3 계층)에서 발생할 수 있는 오류를 방지하기 위해 수신된 정보를 확인합니다. 

※ 오류 감지는 OSI 모델 중 2, 4, 7계층에서 일어나는 프로세스입니다.

5 계층: Session Layer

Session 
Individual conversation between two computers. 
Session 1: Browser "1" 
PC-I 
Session2: Browser "2" 
htt ://arubanetworks.com 
arubanetworks.com

5계층은 두 컴퓨팅 장치간 세션 설정과 유지 관리, 해제 작업을 담당합니다.

여기서 세션은 두 장치간의 특별한 대화를 의미합니다.

예를 들어, 브라우저를 열고 https://www.arubanetworks.com 과 같은 웹페이지에 연결한다고 가정하면, 이 때 세션이 생성됩니다. 그리고 똑같이 다른 브라우저를 열고 동일한 웹사이트에 연결했을 때, 애플리케이션이 다르기 때문에 다른 세션이 만들어집니다. 즉, 두 개의 개별 세션이 따로 유지되게 됩니다.

그리고 파일 전송을 목적으로 다른 컴퓨터와 연결할 수도 있고 Aruba 스위치 작업을 위해 원격으로 연결할 수도 있습니다. 각각 모두 다른 세션이 생성됩니다.
일반적으로 하나의 컴퓨터는 수천개의 세션을 생성할 수 있습니다.

6계층 : Presentation Layer

Application: 
"Hello" 
Encryption Process 
Decryption Process 
Application:

표현 계층은 데이터를 애플리케이션이 허용하는 형식으로 변환합니다. 일반적인 프로세스는 다음과 같습니다.

  • 압축 / 해제
  • 암호화 / 복호화
  • 코드 변환 (ex. EBCDIC에서 ASCII로)

예를 들어, “Hello”라는 메시지를 전송하기 전 암호화하기 위해서 애플리케이션이 6계층 표현 계층으로 보내게 됩니다. 암호화 되었기 때문에 해커와 같은 인가 받지 않은 사용자가 데이터를 가로채더라도 읽을 수 없게 됩니다. 제대로 된 수신자만 암호를 해독할 수 있는 디지털 키를 갖게 됩니다.

7계층: Application Layer

d ト ト エ 
ノ ′ 
と を コ ) 当 n810B 辷 
工 ) ~ 《 甲 05 0 】

애플리케이션 계층은 사용자와 가장 가깝습니다.
OSI 애플리케이션 계층과 사용자 모두 소프트웨어 프로그램과 직접 상호 작용합니다.네트워크 리소스를 제공하여 파일 전송, 이메일, 화상 회의 등 많은 사용자 애플리케이션에 네트워크 서비스를 제공합니다.

Encapsulation / Decapsulation

이렇게 각 OSI 7개의 계층은 각자의 역할을 가지고 사전에 약속한 규칙에 따라 각 장치간 네트워크상에서 통신하게 됩니다. 각 장치는 헤더를 사용하여 특정 계층 또는 상위 계층에 대한 정보를 제어합니다.
발신자(Sender)의 특정 계층에서 생성되는 헤더는 수신자(Receiver)의 동일한 계층에서만 읽을 수 있습니다.

각 OSI 계층에서 헤더를 추가하는 프로세스를 Encapsulation이라고 합니다. 이 프로세스는 항상 Sender의 장치에 의해 수행됩니다.
그리고 헤더가 추가되어 전송이 되면 Receiver측에서 헤더 정보를 읽고 해석하게 됩니다. 이것을 Decapsulation이라고 합니다.