OSI 7계층이란 무엇일까?

Ji_min·2021년 5월 6일
0

CS 공부

목록 보기
4/9

들어가기에 앞서

네트워크란? : 정보를 주고 받아야 하는 모든 IT 인프라 장비 간의 물리적(케이블) 또는 논리적(망) 연결

  • 물리적 연결 → 케이블 등을 통한 연결을 의미
  • 논리적 연결 → 인터넷 망이라는 개념적 연결을 의미

1. OSI 7계층을 살펴보자

✔ OSI 7계층이란? 컴퓨터 네트워크의 통신 방법을 계층적으로 구조화한 모델

✔ 왜 알아야 하는가?

  • 다양한 분야에서 계층 구조 개념의 참조 모델로서 참조하고 있음 (TCP/IP 모델도 마찬가지)
  • 네트워크의 여러 장비들이 각각의 계층에 맞게 동작하기 때문에 각 계층을 이해하는 것이 중요

✔ 각 계층 간 데이터 통신의 핵심

  • 어디로 갈 지를 어떻게 알려주느냐? → 목적지의 구분자의 문제
  • 각 계층 → 데이터 통신을 위한 모듈(함수) → 어떻게 데이터를 포장하느냐? → 어떤 헤더를 붙일 것인가? → 프로토콜→ 각 계층에서의 데이터의 포장 상태 → 헤더에 어떤 정보들이 담겨 있는가?

물리 계층(Physical Layer, L1)

  • 서로 다른 컴퓨터 기기(호스트) 간 전기선을 통한 물리적 연결을 담당하는 계층
  • 컴퓨터가 이해하는 언어는 0과 1의 나열로 이루어진 디지털 신호 → 어떻게 전선에 흘려보낼 것인가? → 아날로그 신호(전기 신호)로 변조
    • Sender : 디지털 신호를 아날로그 신호로 바꿔서 전선으로 흘려 보냄 → 원본 데이터를 변조 → Encoder
    • Receiver : 아날로그 신호가 들어오면 디지털 신호로 해석 → 변조된 데이터를 해석 → Decoder
    • L1 encoder의 output → L1 decoder의 input 이 되는 구조
  • L1 장비
    • NIC(network interface card) : 컴퓨터와 컴퓨터 네트워크를 연결해주는 인터페이스
    • 리피터 : 전기 신호가 약화되어 사라지지 않도록 증폭시켜주는 장치
  • 물리적 연결을 통한 통신 문제 : 여러 대의 컴퓨터가 통신하려면 서로 연결된 전선이 너무 많이 필요

이미지 출처

  • 여러 대의 컴퓨터를 하나의 전선으로 통신하기 위해 필요한 계층
  • 각각의 컴퓨터는 스위치에 연결
    • 스위치 → 컴퓨터가 요청한 목적지를 확인하고 목적지에만 데이터를 전송
  • 네트워크 : 하나의 스위치에 연결된 컴퓨터들의 집합(인트라넷)
  • 라우터 : 스위치와 스위치를 연결해서 서로 다른 네트워크를 연결해주는 장치
  • 이런 식으로 전 세계의 컴퓨터들을 연결한 것을 인터넷(inter-network)이라고 함
    • 각 국가의 최상위 라우터 → 해저 케이블로 연결
    • 일반적으로 가정의 라우터 역할은 공유기가 하고 있음
  • 즉, 데이터 링크 계층이란 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고받기 위해 필요한 모듈
  • 프로토콜 : 이더넷(Ethernet)
  • 한 대의 컴퓨터에 여러 개의 데이터가 동시에 들어왔을 때, 어떻게 끊어 읽어서 서로 다른 데이터를 구분할까? → 데이터의 시작과 끝에 특정한 비트열을 붙여서 구분 : 프레이밍(framing)
  • 이더넷 헤더 + 데이터 + 이더넷 푸터 ⇒ 이더넷 프레임
  • 구분자 : MAC 주소(Media Access Control Address)
    • 네트워크 통신을 하는 하드웨어에 할당된 고유한 주소 (동일 네트워크 내 라우터의 구분자)
    • Physical addressing
    • 이더넷 헤더에 기입
    • MAC 주소는 충돌이 나지 않음 → How? 48비트 (앞의 24비트 : 제조사 구분번호, 뒤의 24비트 : 시퀀스 넘버) → 2^48 = 281조 개
    • MAC 주소가 중복된다고 하더라도 동일 네트워크 상에서 통신하는 구분자이므로 충돌이 나지 않음

이미지 출처

네트워크 계층(Network Layer, L3)

  • 데이터가 목적지 컴퓨터로 도착하기까지의 과정을 담당하는 계층
  • 프로토콜 : IP(Internet Protocol)
  • IP 헤더 + 데이터 ⇒ IP 패킷
  • 구분자 : IP 주소
    • 각 컴퓨터들이 가지는 고유한 주소 (컴퓨터의 구분자)
    • Logical addressing
    • 목적지의 IP 주소를 IP 헤더에 붙여서 데이터를 전송
    • IP v4 기준으로 32비트(43억 개 → 주소 고갈), IP v6는 128비트
    • 웹 상에서 DNS 주소를 입력하면 IP 주소로 변환되어 사용됨
  • 라우팅(routing) : 복잡한 네트워크 속에서 목적지 컴퓨터로 데이터를 전송하기 위해 IP 주소를 이용해서 길을 찾는 과정
    • 라우터는 패킷을 까보고 해당 IP 주소를 가진 컴퓨터를 찾음 → 자기 네트워크에 없으면 패킷을 다시 포장해서 상위 라우터 또는 이웃한 라우터로 보냄 (forwading)

전송 계층(Transport Layer, L4)

  • 목적지 컴퓨터에 도착하고 난 후, 컴퓨터 안에서 실행되고 있는 수많은 프로세스 중 어떤 프로세스에 데이터를 넘겨줄 것인지를 담당하는 계층
  • 프로토콜 : TCP(Transmission Control Protocol), UDP
  • TCP 헤더 + 데이터 ⇒ TCP 세그먼트
  • 구분자 : Port 번호
    • 한 대의 컴퓨터에서 동시 실행중인 프로세스들이 서로 겹치지 않게 가지는 정수값 (프로세스의 구분자)
    • 모든 프로세스는 포트 번호를 가짐
    • TCP의 포트 헤더는 16비트 → 2^16 = 약 6만 5천 개의 포트가 존재 : 0~65535
  • 포트 번호를 사용해서 도착지 컴퓨터의 최종 도착지인 프로세스까지 데이터가 도착할 수 있게 함

어플리케이션 계층(Application Layer, L7)

  • OSI 7계층 모델의 세션 계층(L5) + 프레젠테이션 계층(L6) + 어플리케이션 계층(L7) → TCP/IP 모델의 어플리케이션 계층
    • 세션 계층(L5) : 세션의 시작과 종료를 관리하는 계층 → session management, authentication, authorization
    • 프레젠테이션 계층(L6) : 데이터를 0과 1의 나열로 변환하고 압축하는 등의 역할을 담당하는 계층
      • translation : Hi nice to meet you → 0100111011010101011
      • data compression : 0100111011010101011 → 01001101110
      • encryption/decryption : 01001101110 → 0100111011010101011 → Hi nice to meet you
  • L5부터는 실제 전송되는 데이터의 내용을 보고 액션을 취해야 하는 계층 → 데이터의 내용이 안전한지, 방화벽을 쳐야 하는지 등의 문제를 다룸
  • 네트워크 단에서 전송이 끝난 데이터를 가지고 움직이는 애들이기 때문에 엄밀한 네트워크 계층이라기 보다는 응용 계층이라고 할 수 있음
  • 프로토콜 : HTTP , Telnet, FTP
  • HTTP 헤더 + 데이터 ⇒ HTTP 메세지
    • 요청 측 : method, request context(url, 포트번호), header 등
    • 응답 측 : status code, header 등

Checkpoints

  • 하나의 패킷이라도 전송하기 위해서는 7단계의 헤더를 붙이고 포장하는 과정이 필요
  • 전송하려고 레이어를 내려올 때는 헤더를 하나씩 더하면서 내려오고(L7 → L1), 전달 받으려고 레이어를 올라갈 때는 헤더를 하나씩 빼면서 올라간다(L1 → L7).
  • 스위치 → 해당 레이어의 헤더를 읽어내는 일을 담당하고, 각 층은 각자가 필요한 레이어만 까본 다음 다시 포장함

2. 데이터의 여정을 살펴보자


더 알아보고 싶은 내용

  • MAC 주소 vs IP 주소
  • 전송 계층의 데이터 전달 보증 방식

참고

profile
Curious Libertine

0개의 댓글