CS Network OSI 7 계층

OSI 7 계층

오늘날 OSI Layer 7 Model 은 경쟁에 밀려 TCP/IP모델을 주로 사용하고 있으며 계층은 비슷하다.

TCP/IP Model TCP/IP Model(Updated) OSI Layer 7 Model
Application Layer Application Layer Application Layer
    Presentation Layer
    Session Layer
Tranport Layer Tranport Layer Tranport Layer
Internet Layer Internet Layer Network Layer
Network Interface Data Link Layer Data Link Layer
  Physical Layer Physical Layer

L1. 물리 계층 - Physical Layer

디지털 신호(X)
Sender ➡️ 010101 ➡️ 🪒encoding ➡️ ⍽⍽⍽⍽⍽⍽ ➡️ 전선(X)  
아날로그 신호(O)
Sender ➡️ 010101 ➡️ 🪒encoding ➡️ ~~~~~~ ➡️ 전선(O) ➡️ 🪒decoding ➡️ 010101 ➡️ receiver

두 대의 컴퓨터가 통신하려면?

  • 모든 파일과 프로그램은 0과 1의 나열이다.
  • 결국 0과 1만 주고 받으면 통신 성공

두 대의 컴퓨터가 통신하려면?

  • 1을 보낼 때는 +5V 의 전기를 전선으로 흘려보내고
  • 0을 보낼 때는 -5V 의 전기를 전선으로 흘려보내면
  • 0과 1의 전송이 가능

    0과 1을 주고 받을 수 있으면 두 대의 컴퓨터는 모든 데이터를 주고 받을 수 있다.

주파수와 파동

  • 1초 당 주파수의 파동의 진동을 Hz라고 함
  • 전선은 모든 주파수를 다 통과시키지 못함(전선 뿐만 아니라 모든 매질이 마찬가지)
  • 전선의 대역폭에 따라 전자기파의 손상이 발생하여 데이터가 손상될 수 있음
    • 0과 1을 대역폭(0~무한대Hz 주파수 범위)를 통과시킬 수 있는 전선은 없음
      • 아날로그 신호로 변경해서 전송
      • 수신하는 컴퓨터도 도 아날로그 신호로 수신하면 가능

아날로그 신호

  • Encoding
    • 0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려 보냄
  • Decoding
    • 아날로그 신호가 들어오면 0과 1의 나열로 해석

물리 계층(Phisical Layer)이란?

  • 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고 받을 수 있게 해주는 하드웨어
  • PHY 칩(하드웨어)에 구현되어 있음
Sender ➡️ 010101 ➡️ 🪒encoding ➡️ ~~~~~~ ➡️ 전선(O) ➡️ 스위치 ➡️ 🪒decoding ➡️ 010101 ➡️ Receiver

1계층인 물리계층의 기술만으론 여러대의 컴퓨터가 통신할 수 없다.

여러 대의 컴퓨터가 통신하려면?

  • L1의 방식으로 전선을 물리적으로 연결하려면 물리적 한계와 비용이 많이 발생하게 된다.

전선 하나를 가지고 여러대의 컴퓨터와 통신하려면?

  • 하나의 전선에 여러대의 컴퓨터를 연결한다.
    • 결과적으로 아날로그 신호를 받을 수 있음
    • 연결 된 다른 컴퓨터로 데이터를 전송 받게 되는 문제 발생

스위치

  • 컴퓨터로서 연결된 컴퓨터에게 데이터를 전송할 때 다른 컴퓨터는 데이터를 읽지 못하도록 제어
         [스위치]
       ↗️   ⬆️  ⬆️   ↖️
    [com] [com] [com] [com]
    

대표적으로 Ethernet

라우터

  • 스위치와 스위치를 연결해서 서로 다른 네트워크에 속한 컴퓨터끼리 통신이 가능하게 해주는 장비
                    [라우터]
              ↗️                 ↖️
          [스위치]                [스위치]
      ↗️   ⬆️  ⬆️   ↖️       ↗️   ⬆️  ⬆️   ↖️
    [com] [com] [com] [com] [com] [com] [com] [com]
    
  • 라우터끼리 연결 가능
    • 라우터는 우리가 잘 알고 있는 공유기에 해당

라우터는 스위치의 역할도 하고 있음 라우터와 라우터를 트리구조로 연결한다면 전세계가 연결 됨
이것을 인터넷이라고 함

끊어 읽기

  • 여러대의 컴퓨터가 데이터를 동시에 보낸다면 데이터를 올바르게 수신하도록 처리가 필요
  • Framing
    • 송신 컴퓨터를 데이터의 앞 뒤에 특정한 비트열을 붙여서 보낸다.
    • 수신 컴퓨터도 데이터의 앞 뒤의 특정한 비트열을 찾아 구분한다.

데이터 링크 계층(Data-link Layer)이란?

  • 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고받기 위해서 필요한 모듈
  • Framing은 Data-link Layer에 속하는 작업들 중 하나
  • 랜카드에 구현되어 있음

L3. 네트워크 계층 - Network Layer

Sender 192.168.0.44[data] ➡️ Receiver 157.23.22.55[data]

더 많은 컴퓨터들 사이의 통신

  • IP주소
    • 각 컴퓨터들이 갖는 고유한 주소
    • DNS를 통해 도메인은 IP주소로 변환되어 사용
  • 패킷
    • 전송할 데이터 + 목적지(IP)

네트워크 계층(Network Layer)이란?

  • 수 많은 네트워크들의 연결로 이루어지는 inter-network 속에서
  • 어딘가 있는 목적지 컴퓨터로 데이터를 전송하기 위해,
  • IP 주소를 이용해서 길을 찾고(routing)
  • 자신 다음의 라우터에게 데이터를 넘겨주는 것(forwarding)
  • 운영체제의 커널에 소프트웨어적으로 구현되어 있음

L4. 전송 계층 - Transport Layer

Sender 192.168.0.44:443[data] ➡️ Receiver 157.23.22.55:443[data]
  • 컴퓨터는 프로세스에게 전송 된 데이터를 전달해주어야 한다.
    • TCP
      • 주고 받는 사이에서 패킷이나 로스에 대해 보정
    • UDP
      • 단방향 전달
      • 데이터 스트리밍
  • 포트 번호
    • 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져 가야하는 정수 값
  • 데이터를 보낼 때
    • 데이터를 받을 수신자 컴퓨터에 있는 프로세스의 포트 번호를 붙여서 보낸다.

전송 계층(Transport Layer)이란?

  • Port 번호를 사용하여
  • 도착지 컴퓨터의 최종 도착지인 프로세스 까지
  • 데이터를 전송 하는 모듈
  • 운영체제의 커널에 소프트웨어적으로 구현되어 있음

L1. Application Layer

HTTP response status code: 200

TCP/IP 소켓 프로그래밍(네트워크 프로그래밍)

  • 운영체제의 Transport layer에서 제공하는 API를 활용해서 통신 가능한 프로그램을 만드는 것
  • 소켓 프로그래밍만으로도 클라이언트, 서버 프로그램을 따로 만들어서 동작 가능
  • 누구나 Application Layer Encoder, Decoder를 만들 수 있음
    • 누구든 Application Layer Protocol을 만들 수 있음

      대표적인 Application Layer의 Encoder, Decoder는 HTTP

    • header
    • body
    • request
    • response
    • status code

SMTP

  • 메일

SSH

  • 접속 규격

FTP

디자인 패턴 중 Layerd Architecture가 있음
Layerd Architecture의 대표적인 예가 네트워크 시스템
네트워크 시스템은 커다란 소프트웨어라고 할 수 있음
OSI7 Layer 모델은 거대한 소프트웨어 구조를 설명하는 것

참고

[10분 테코톡] 🔮 히히의 OSI 7 Layer

댓글남기기