OSI Model

4 분 소요




OSI Model

OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7계층이라고 한다.
[위키백과] OSI 모형

OSI 모델은 서로 다른 시스템들이 통신을 하기 위한 표준을 제시합니다.

OSI 모델은 일곱개의 계층으로 나누어져있고, 각 계층은 모두 각기 다른 역할을 수행합니다. 계층들은 가장 낮은 단계부터 가장 높은 단계까지 스택으로 쌓여있고, 각 계층은 자신의 위, 아래에 있는 계층들과 소통합니다.

사실 현대 인터넷은 OSI 모델을 그대로 사용하지 않습니다. 훨씬 간소화된 프로토콜 단계를 따릅니다. 그럼에도, OSI 모델은 네트워크 문제를 해결하는데 아주 유용하게 사용될 수 있습니다. 각 계층들은 서로 다른 기능을 담당하므로 일곱개의 계층을 순차적으로 확인해나가면 어떤 기능에 문제가 있는 것인지 알아낼 수 있습니다.




OSI 7 layers

OSI 모델의 일곱 계층들을 사용자와 가까운 순으로 알아보겠습니다.

7 계층. Application (응용)

Application 계층은 유일하게 사용자의 데이터와 상호작용하는 계층입니다. 웹 브라우저, 이메일 클라이언트와 같은 소프트웨어 애플리케이션들은 통신을 시작하기 위해 application 계층에게 부탁합니다. 한가지 유의해야 할 점은, 우리가 사용할 애플리케이션 소프트웨어들은 application 계층에 속해있지는 않다는 것입니다. Application 계층은, 사용자에게 유용한 데이터를 제공하기 위해 소프트웨어가 의존하는 프로토콜들과 데이터 조작을 담당합니다. Application 계층은 HTTP, SMTP와 같은 프로토콜을 포함합니다.

6 계층. Presentation (표현)

Presentation 계층은 application layer가 사용할 수 있도록 데이터를 가공하는 역할을 담당하고 있습니다. Presentation 계층은 크게 세가지 역할을 담당하고 있습니다.

  1. Translation
    통신하는 두개의 기기들은 다른 인코딩 방식을 사용하고있을 수 있습니다. Presentation 계층은 수신측 기기가 알아볼 수 있는 encoding 타입으로 번역해주어야 합니다.

  2. Encryption
    두개의 기기들이 암호화된 연결 속에서 통신하고 있다면, presentation layer는 송신측에서 암호화를 진행하고, 수신측에서는 복호화를 진행하는 역할을 담당합니다. Presentation 계층의 복호화를 통해 application 계층은 복호화되어 읽을 수 있는 데이터를 제공받을 수 있습니다.

  3. Compression
    Presentation 계층은 application 계층으로부터 받은 데이터를 다음 계층으로 전달하기 전에 압축을 진행합니다. 이는 통신할 데이터의 크기를 줄여 통신 속도와 효율을 증가시킵니다.

5 계층. Session (세션)

Session 계층은 두개의 장비 사이의 통신을 열고 닫는 역할을 맡고 있습니다. 통신이 시작되고 끝나는 사이의 시간을 session 이라고 합니다. Session 계층은 모든 데이터가 교환될 수 있도록 세션이 충분히 오래 열려있을 수 있도록 보장합니다. 데이터 교환이 끝나면 자원 낭비를 방지하기 위해 즉시 세션을 닫습니다.

Session 계층은 checkpoint를 사용하여 데이터 교환을 동기화합니다. 예를 들어, 총 100 메가바이트 크기의 파일이 전송될 때, session 계층은 매 5 메가바이트마다 checkpoint를 설정할 수 있습니다. 52 메가바이트가 전송된 이후 연결 중단 혹은 충돌이 발생한다면, 해당 세션은 마지막 checkpoint부터 시작되어, 50 메가바이트의 전송만 이어서 진행하면 됩니다. Checkpoint가 없었더라면, 해당 파일의 전송은 처음부터 다시 진행되었어야할 것입니다.

수행 작업

  1. Session establishment, maintenance, and termination
  2. Synchronization
  3. Dialog Controller
    • 두개의 시스템이 서로 반이중 혹은 전이중 통신을 시작할 수 있도록 합니다.

4 계층. Transport (전송)

Transport 계층은 두 단말간의 종단 간 통신을 담당합니다. Session 계층에서 받은 데이터를 segment라 불리는 단위로 나누어 다음 계층으로 전달합니다. 수신측의 transport 계층은 segment 단위로 조각난 데이터들을 다시 합쳐 session 계층으로 전달합니다.

Transport 계층은 flow control(흐름 제어)와 error control(오류 제어) 또한 담당합니다. 흐름 제어는 빠른 전송 속도를 가진 송신측이 느린 수신 속도를 가진 수신측을 압도하지 않도록 최적의 전송 속도를 분석합니다. 데이터 수신측의 transport 계층은 수신한 데이터가 완전한지 확인하는 오류 제어를 진행합니다. 만약 데이터가 완전하지 않다면 재 전송을 요청합니다.

수행 작업

  1. Segmentation and Reassembly
    • Session 계층으로부터 받은 데이터를 segment라는 단위로 쪼갭니다. 수신측은 쪼개진 데이터를 합쳐 session 계층으로 전달합니다.
  2. Service Point addressing
    • Service point address 혹은 port address라 불리는 주소를 헤더에 포함하여 메세지가 정확한 목적지에 전달되었는지를 확인할 수 있습니다.

3 계층. Network (네트워크)

Network 계층은 두개의 다른 네트워크간 데이터 교류를 촉진시키는 역할을 합니다. 두 기기가 같은 네트워크상에서 통신하고있다면 network 계층은 불필요합니다. 송신측의 network 계층은 transport 계층에서 데이터를 분리해 만든 segment를 더 작은 유닛인 packet으로 쪼갭니다. 수신측의 network 계층은 이 packet을 다시 조립하여 transport 계층으로 전달합니다. Network 계층은 또한 데이터를 목적지로 전달할 수 있는 최적의 물리 경로를 찾습니다. 이는 routing이라고 불립니다.

수행 작업

  1. Routing
    • 출발지부터 도착지까지 최적의 경로를 찾습니다.
  2. Logical Addressing
    • 정확한 기기의 주소를 알 수 있도록 header에 송/수신측의 IP 주소를 추가합니다.

Data link 계층은 network 계층과 매우 유사합니다. 차이점은, data link 계층은 동일한 네트워크상 두 기기간 데이터 통신을 촉진시킨다는 것입니다. Data link 계층은 network 계층으로부터 받은 packet 단위로 쪼개진 데이터를 더 작은 단위인 frame으로 쪼갭니다.

수행 작업

  1. Framing
    • Frame의 양 끝단에 특수한 bit pattern을 더해 frame의 시작과 끝을 알 수 있게 합니다.
  2. Physical addressing
    • MAC 주소를 header에 추가합니다.
  3. Error control
    • 손상되거나 손실된 frame들을 탐지하고 재요청/재전송합니다.
  4. Flow control
    • 송/수신 속도가 다른 두개의 기기 사이에 전송 속도를 맞춰주는 역할을 수행합니다. Stop and wait, sliding window와 같은 기법들이 사용될 수 있습니다.

1. Physical (물리)

Physical 계층은 케이블, 스위치 등, 데이터 전송에 관련된 물리적 장치들을 포함하고 있습니다. 이 계층은 데이터를 1과 0으로 이루어진 문자열인 bit stream으로 변환합니다. 이 bit stream을 통신 기법(구리선, 광케이블, 와이파이, 라디오 등..)에 맞는 signaling method를 선정하고, signal로 변환합니다. 양측 기기들의 physical 계층은 signal convention에 동의하여 1과 0을 구분할 수 있도록 해야합니다.

수행 작업

  1. Bit synchronization
    • Clock을 통한 bit 단위의 synchronization을 지원합니다.
  2. 전송 속도 제어
    • 초당 몇개의 비트를 전송할지 등을 정합니다.
  3. Transmission mode
    • 연결된 두 단말이 어떤 방식으로 데이터를 교류할지 정의합니다.




Data flow in OSI Model

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
            ** 견우 **                                                             ** 직녀 **

메일 작성 어플리케이션으로 메일 작성 후 전송 클릭                                          수신한 견우의 메일 읽기
                ⬇️                                                                     ⬆️
        [Application Layer]                                                   [Application Layer]
             SMTP 선택                                              직녀의 메일 애플리케이션에 사람이 읽을 수 있는 데이터 전송
                ⬇️                                                                     ⬆️
       [Presentation Layer]                                                  [Presentation Layer]
    데이터 압축, 인코딩 변환, 암호화 실행                                        데이터 압축 해제, 인코딩 변환, 복호화 실행
                ⬇️                                                                     ⬆️
         [Session Layer]                                                        [Session Layer]
             세션 시작                                                                세션 종료
                ⬇️                                                                     ⬆️
         [Transport Layer]                                                     [Transport Layer]
       segment 단위로 데이터 분리                                                     segment 병합
                ⬇️                                                                     ⬆️
          [Network Layer]                                                       [Network Layer]
      packet 단위로 segment 분리                                                segment 단위로 packet 병합
                ⬇️                                                                     ⬆️
         [Data Link Layer]                                                      [Data Link Layer]
       frame 단위로 packet 분리                                                  packet 단위로 frame 병합
                ⬇️                                                                     ⬆️
         [Physical Layer]                                                      [Physical Layer]
       signaling method 선정                                                 signal을 bit stream으로 변환
      bitsteram을 signal로 변환            ➡️  `some signals`  ➡️                signaling method 확인





참고

[CloudFlare] What is the OSI Model?
[GeeksforGeeks] Layers of OSI Model

댓글남기기