Home [네트워크] OSI 7 계층 (OSI 7 Layer)
Post
Cancel

[네트워크] OSI 7 계층 (OSI 7 Layer)

OSI(Open Systems Interconnection Reference Model)란

OSI7Layer

  • 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다.
  • 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다.

    왜 나누어야하고 OSI 7계층을 알아야할까?

    • 단계별로 정의한 이유는 통신 과정 속에서 장애가 발생한 경우, 다른 계층의 소트프웨어나 장비를 건들지 않고 통신 장애가 발생한 계층에서만 해결책을 강구할 수 있기 때문이다.

OSI 7 계층

L1 물리계층(Physical layer)

물리계층

  • 네트워크의 기본 네트워크 하드웨어 전송 기술을 이룬다.
  • 데이터 전기적인 신호(0,1)로 변환해서 주고받는 기능만 한다.
  • 즉, 전기 신호만 잘 보내면 된다.
  • 네트워크의 높은 수준의 기능의 논리 데이터 구조를 기초로 하는 필수 계층이다.
  • 다양한 하드웨어 기술이 접목되어 있기에 OSI 아키텍처에서 가장 복잡한 계층으로 간주된다.
  • 전송 단위 : Bit
  • 관련 장비
    리피터 (Repeater)
    1. 가장저렴하다.
    2. 긴 케이블일수록 신호가 약해지기 때문에 신호를 멀기 보내기 위한 증폭 장치이다.
    3. 지금은 다른 네트워크 장비에 기본적으로 리피터 기능이 탑재되어있어 사용하지 않는다.
    허브 (Hub)
    1. 리피터에 몇가지 기능을 추가한 것이다.
    2. 허브는 CSMA/CD 방식을 적용하고 있기 때문에 여러 장비에서 동시에 데이터를 전송하지 못한다.
    3. 예를 들어 A가 데이터를 전송 중일 때 B도 데이터를 보내면 충돌(Collision)이 일어나게 된다.
    4. 컴퓨터 A~H가 허브에 연결되어있을 때 A → B 더라도 허브에 모두 연결되어있어서 나머지에게도 전송된다. 그래서 Collision이 자주 발생한다.
    5. 물론 전송만 되고 원치않은 데이터이므로 폐기한다.

데이터링크 계층

  • 직접 연결된 서로 다른 2개의 네트워크 장치간의 데이터 전송을 담당하는 계층이다.
  • 1계층으로부터 전달된 전기 신호를 데이터 형태로 처리하는 역할을 수행하고 주소 정보를 정의하여 정확한 주소로 통신이 되도록 하는데 초점이 맞춰져 있다.
    • 정의하는 주소를 MAC(Media Access Control address)주소라고 한다.
    • MAC 주소의 주소값은 네트워크에 인터페이스에 할당된 물리적 고유 식별주소이다. (계층이 없는 단일 구조)
  • 2계층에서는 주소에서 주소로, 즉 출발지와 도착지 주소(MAC 주소)를 확인하고
    나한테 보낸 것이 맞는지 또는 내가 처리해야되는 데이터가 맞는지에 대해 검사를 하고 데이터를 처리한다.
  • Point to Point 간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다.
    (에러검출, 재전송, 흐름제어를 하지만 → 주로 사용하는 이더넷 기반 네트워크 2계층에서는 에러를 감지하는 역할만 수행)
    네트워크 인터페이스 카드(랜카드) 동작 방식
    1. 전기 신호를 데이터 형태로 변환
    2. 목적지 MAC 주소와 출발지 MAC 주소를 확인
    3. 랜카드의 MAC 주소를 확인
    4. 목적지 MAC 주소와 랜카드의 MAC 주소가 맞으면 데이터를 처리하고 다르면 데이터를 폐기
  • 데이터 전송 단위 : Frame
  • 관련 장비
    브릿지 (Bridge)
    1. 하나의 네트워크망 안에서 서로 다른 LAN을 연결한다.
    2. MAC 주소 기반 필터링 기능을 통해 더 나은 대역폭을 제공하고, 트래픽을 통제한다.
    3. MAC 주소 기반 리피터 기능을 제공한다.
    4. 소프트웨어적 처리방식이다.
    5. 전송방식 : Store-and-forward
    스위치 (Switch)
    1. 같은 네트워크 내의 특정한 다른 단말기로 패킷을 보낼수 있는 기능을 한다.
    2. 스위치는 허브와 비슷하 역할을 수행하는데 이 때문에 스위칭 허브라고 불리기도 한다.
    3. 허브와는 달리 스위치는 수신장치를 인식하는 기능이 있다.
    4. 하드웨어적 처리방식이다.
    5. MAC주소와 포트번호가 기록된 MAC주소 테이블을 가지고 있다.
    6. 전송방식 : Cut-through, Store-and-forward

L3 네트워크 계층(Network layer)

네트워크 계층

  • 라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달해준다.
    • 주소는 L2의 물리적인 MAC 주소 / L3의 논리적인 IP 주소 가 있다.
  • MAC 주소와 달리 IP 주소는 사용자가 변경해 사용할 수 있고 네트워크 주소 부분호스트 주소 부분으로 나뉩니다.
  • 라우팅, 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking) 등을 수행한다.
  • IP주소는 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적(hierarchical)이다.
  • 데이터 전송 단위 : Packet

    라우터 (Router)
    1. 서로 다른 네트워크를 연결해 주는 장치로써 현재의 네트워크에서 다른 네트워크로 패킷 전송 (단에서 단으로)
    2. 라우팅 테이블을 이용하여 경로정보를 등록하고 관리하며 라우팅 테이블을 기반으로 경로 설정한다.
    3. 패킷의 헤더에서 목적지 IP주소를 확인하고 목적지의 네트워크 망으로만 전송한다. (Brodcasting을 차단한다.)

L4 전송 계층(Transport layer)

전송 계층

  • 앞의 계층들은 신호를 보내거나, 올바른 주소로 데이터와 신호를 보내는 역할에 초점이 맞춰있는데, 전송계층에서는 실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할을 한다.
  • 양 끝단(End to end) 사용자들의 데이터 전송의 에러 복구 및 흐름 제어를 담당합니다. 따라서 신뢰성있는 데이터를 주고 받을 수 있도록 한다. 그렇기 때문에 상위 계층에서 데이터 전달의 유효성이나 효율성을 생각하지 않도록 한다.
  • 시퀀스 넘버 기반의 오류 제어 방식을 사용한다.
  • 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)이다. (이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다.)
  • TCP (Transmission Control Protocol)와 UDP (User Datagram Protocol)가 이 계층에서 동작합니다.
  • 데이터 전송 단위: TCP - Segment / UDP - Datagram

L5 세션 계층(Session layer)

세션 계층

  • 주 지점간의 프로세스 및 통신하는 호스트 간의 데이터가 통신하기 위한 논리적 연결을 담당한다.
  • TCP/IP 세션을 만들고 없애는 역할을 한다. (포트번호를 기반으로 통신 세션을 구성한다.)

L6 표현 계층(Presentation layer)

표현 계층

  • 데이터 표현에 대한 독립성을 제공하고 암호화하는 역할을 담당한다.
  • 표현 방식을 하나의 통일된 형식으로 변환하는 일종의 변환기 역할을 수행하는 계층이다.
  • 전송하는 데이터의 표현방식을 결정(ex. 데이터변환, 압축, 암호화 등)
    → 표현 방식이 다르면 통신을 하는데 어려움이 생길 수 있다.
  • 파일인코딩, 명령어를 포장, 압축, 암호화

L7 응용 계층(Application layer)

응용 계층

  • 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
  • 사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스를 제공한다.
  • 일반적인 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공한다.

OSI 7 계층 Flow

전기신호 → 응용 계층 표현

OSI 7계층으로 각각의 계층이 하는 일을 알아봤는데 전체적인 흐름을 표현해보자면 아래와 같이 정리할 수 있다.
(나름 정리해 본거라서 틀린 경우 댓글로 알려주시면 감사하겠습니다.)

1. 보내는 쪽에서 전송한 전기 신호를 허브, 케이블 등이 재생성해서 2계층으로 전달

2. 2계층은 1계층으로부터 받은 전기 신호를 데이터 형태로 변환

3. 변환된 데이터의 목적지가 내 랜카드의 MAC 주소랑 맞는지 확인해서 3계층으로 데이터를 전달, 아니면 폐기

4. 3계층은 2계층으로부터 받은 MAC주소랑 3계층의 IP주소를 확인해서 알맞은 단말기로 라우터가 경로를 찾아서 패킷을 전달

5. 4계층은 3계층으로 부터 받은 패킷의 SEQ, ACK 번호 및 포트번호를 확인해서 해당 패킷을 통과, 아니면 차단

6. 5계층은 보내는 쪽과 받는 쪽을 연결하고 안정적으로 유지되도록 관리. 패킷 전송이 완료되면 연결을 끊는 역할을 수행

7. 6계층은 받은 패킷을 자신의 시스템 또는 애플리케이션에 맞게 인코딩 또는 암호화 등을 하여 통일된 형식으로 변환

8. 7계층은 6계층으로 부터 받은 통일된 형식의 데이터를 애플리케이션에서 사용


인캡슐레이션, 디캡슐레이션

Encapsulation/Decapsulation-flow

  • 4계층 - Segment  :              TCP 헤더 + 데이터
  • 3계층 - Packet   :         IP 헤더 + TCP 헤더 + 데이터
  • 2계층 - Frame    :  MAC 주소 + IP 헤더 + TCP 헤더 + 데이터
  • 1계층 - Bit

인캡슐레이션(Encapsulation)

  • 상위계층에서 하위계층으로 데이터를 보내는 과정
  • 네트워크 전송을 위해 헤더를 붙여넣는데 각 계층에서 확인할 수 있는 정보를 넣는다.

디캡슐레이션(Decapsulation)

  • 하위계층에서 상위계층으로 데이터를 보내는 과정
  • 보내는 쪽으로 부터 받은 전기 신호를 데이터 형태로 만들어서 상위계층으로 올려보내면 해당 계층의 헤더에 포함된 정보를 확인합니다.
  • 예를들어 2계층으로부터 3계층으로 데이터가 왔을 때, 3계층의 헤더 정보를 확인한 후에
    → 맞다면 4계층의 헤더를 포함해서 상위로 보낸다.
    → 다르다면 폐기한다.


참고
 PDU
 OSI 7계층
 OSI 7계층
 브릿지와 스위치
 OSI 7계층 흐름

이미지 출처
 OSI 7계층 그림
 ’데이터 통신’, 오창환 저, 한국 학술정보(주)

This post is licensed under CC BY 4.0 by the author.

[백준 15650] N과 M(2) 파이썬 풀이 - 백트래킹

[네트워크] TCP, 3-way handshake & 4-way handshake