Network ① OSI 7 Layers

Xxell-8·2021년 9월 6일
0

Network

목록 보기
1/1
  • OSI(Open Systems Interconnection Reference Model)는 다양한 통신 시스템이 표준 프로토콜을 사용하여 통신할 수 있도록 국제표준화기구(ISO)에서 만든 개념적 모델입니다.

  • 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나눠 설명합니다.

OSI Model: The 7 Layers of Network Architecture – BMC Blogs

1. 물리 계층(Physical layer)

  • 물리 계층에서는 주로 전기적·기계적 특성을 이용해 통신 테이블로 데이터를 송·수신합니다.
  • 통신 단위는 Bit이며, 데이터를 주고 받기 위해 전기 신호(아날로그 신호)를 사용합니다.
    • 0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려 보내고, (encoding)
    • 아날로그 신호가 들어오면 0과 1의 나열로 해석하여 (decoding)
    • 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고 받을 수 있게 해줍니다.
  • 단, 물리계층에서는 데이터를 전달할 뿐 데이터의 내용이나 오류 등에는 관여하지 않습니다.

프레임 구성, 물리 주소 지정(MAC 주소), 흐름 제어, 오류 제어

  • 데이터 링크 계층은 동일한 네트워크에 있는 기기 간의 전송을 촉진하며, Point to Point 간 신뢰성 있는 전송을 보장하기 위한 계층입니다.

    • 발생 가능한 오류를 찾아내고 수정하는데 필요한 기능적·절차적 수단을 제공하는 오류 제어 기능과
    • 송·수신 측 간의 속도 차이를 해결해 버퍼에 걸리지 않도록 하는 흐름 제어 기능을 수행합니다.
  • 데이터 링크 계층에서는 MAC 주소(Media Access Control Address)를 통해 통신하는데,

    • 이는 상호 통신을 위해 네트워크 카드마다 물리적으로 할당받는 주소값입니다.
  • 이 계층에서의 데이터 전송 단위는 Frame이며,

    • 여기에 Header와 Trailer를 추가하는데,
      • Header에는 출발지와 목적지의 MAC 주소, 데이터 내용을 정의하며
      • Trailer에서는 비트 에러를 감지합니다.
  • cf. 데이터 링크 계층은 두 개의 하위 계층(논리적 링크 제어(LLC) , 매체 접근 제어(MAC))으로 나뉩니다.

3. 네트워크 계층(Network layer)

패킷 전달, 논리 주소 지정(IP), 라우팅

  • 네트워크 계층은 서로 다른 네트워크 간의 데이터 전송을 촉진하며, 데이터를 목적지까지 가장 안전하고 빠르게 전달하기 위한 계층입니다.
    • 네트워크 특성, 경로, 서비스 우선 순위 등 다양한 요소를 기반으로 최적의 물리 경로를 찾아 라우팅(routing)하며,
      • 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할입니다.
    • 추가로 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking) 등을 수행합니다.
  • 이 계층은 논리적 주소를 담당하고 패킷(Packet)의 전달 경로를 결정하는데,
    • 논리적인 주소 구조(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며,
    • 상위 계층에서 받은 데이터에 목적지 호스트의 논리 주소를 Header에 추가하여 전송합니다.
  • 즉, 수많은 네트워크들의 연결로 이루어지는 Internetwork 속에서 목적지 컴퓨터로 데이터를 전송하기 위해 IP 주소를 이용해 라우팅하고, 다음 라우터로 패킷을 전달하는(forwarding) 계층입니다.

4. 전송 계층(Transport layer)

세그먼트 분할·조립, 서비스 지점 주소 지정(Port), 연결 제어, 흐름 제어, 오류 제어

  • 전송 계층은 양 끝단(End to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 하는 계층으로, 상위 계층에서 데이터 전달의 유효성이나 효율성을 생각하지 않도록 합니다.

    • 오류 제어, 흐름 제어 및 정체 제어와 같은 메커니즘을 제공하여 데이터 패킷을 추적하고, 오류와 중복을 확인하고, 전송에 실패한 정보를 재전송합니다.
    • 데이터 전송 단위는 Segment이며,
      • 송신 시, 데이터 분할을 통해 각 세그먼트에 시퀀스 넘버를 부여하고
      • 수신 시, 시퀀스 넘버에 따라 재조립하여 데이터의 무결성과 정확성을 검사합니다.
  • 이 계층에서는 서비스 지점 주소를 지정하는데,

    • 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들을 구분할 수 있는 주소값, 포트 번호를 사용하여
    • 도착지 컴퓨터의 특정 프로세스에 응답하여 데이터가 전송되도록 보장합니다.
  • 전송 프로토콜의 대표적인 예로는 TCPUDP가 있습니다.

    • TCP(Transmission Control Protocol)는 연결형 프로토콜로, 신뢰성이 요구되는 App에서 사용합니다.
      • 송신측과 수신측의 연결을 확인한 후 데이터를 전송하며,
      • 수신자 응답을 받아 필요한 경우, 데이터를 재전송할 수 있습니다.
    • UDP(User Datagram Protocol)는 비연결형 프로토콜로, 간단한 데이터를 빠른 속도로 전송하는 App에서 사용합니다.
      • 송신측과 수신측의 연결을 거치지 않고 일방적으로 데이터를 전송하며,
      • 수신측으로부터 응답을 따로 받지 않습니다.

5. 세션 계층(Session layer)

대화 제어, 체크포인트 동기화

  • 세션 계층은 서버 간의 세션을 관리하여 데이터 통신을 조정하는 계층입니다.
    • 세션은 프로세서들이 서로를 인식하고 데이터 송수신을 마칠 때까지의 시간을 의미하며,
      • 이 계층은 모든 데이터를 전송할 수 있도록 세션을 개방한 후 리소스를 낭비하지 않기 위해 세션을 즉시 닫을 수 있도록 합니다.
    • 프로세스 간의 상호 작용이나 대화 관리를 위해 전이중 방식(Full Duplex), 반이중 방식(half-duplex) 등을 사용합니다.
      • 전이중 방식은 하나의 연결을 통해 데이터가 동시에 양방향으로 오고 갈 수 있는 방식이며,
      • 반이중 방식은 데이터 토큰을 사용해 데이터 전달 권한을 확인하며, 전달에 대한 응답이 도착한 후 다른 전달을 수행하는 방식입니다.
    • 데이터 전송을 체크 포인트와 동기화하는데,
      • 데이터 전송 시, 체크 포인트를 설정하여 전송 도중 연결이 끊어지거나 충돌이 발생하면 마지막 체크 포인트에서 세션을 재개합니다.

6. 표현 계층(Presentation layer)

데이터 변환·암호화·압축

  • 표현 계층은 서로 다른 데이터 표현 방식을 사용하는 응용 프로세스가 잘 통신할 수 있도록 데이터 형식과 표현을 다루는 계층입니다.

    • 서로 다른 환경의 시스템에서 전송된 데이터를 서로 이해할 수 있도록 돕는데,
      • 송신 측과 수신 측 사이의 서로 다른 부호 체계 간 변환과 표준화된 데이터 형식을 규정을 통해
      • 데이터 구조를 하나의 통일된 형식으로 표현하여 응용계층의 데이터 형식 차이로 인한 부담을 덜어줍니다.
    • 즉, 각 컴퓨터에서 사용하는 데이터 표현 규칙(추상 문법)을 네트워크 전체에서 일관성을 지니는 표현 규칙(전송 문법)으로 변환하여 데이터를 전송함으로써, 양단의 프로세스가 데이터를 이해하고 해석할 수 있도록 하는 것입니다.
    • 데이터 압축을 통해 전송 데이터의 양을 최소화함으로써 통신의 속도와 효율을 높이는 기능과 암호화 등의 동작을 수행합니다.

7. 응용 계층(Application layer)

  • 응용 계층은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 계층입니다.
    • 응용 계층은 소프트웨어가 사용자에게 의미 있는 데이터를 제공하기 위해 의존하는 프로토콜과 데이터를 조작하는 역할을 합니다.
      • 사용자의 데이터와 직접 상호작용하며, 웹 브라우저 및 이메일 클라이언트와 같은 소프트웨어 애플리케이션이 통신을 돕는데,
        • 여기서, 클라이언트 소프트웨어 애플리케이션은 응용 계층의 일부가 아니라는 점을 명확히 해야 합니다.
    • 응용 계층의 프로토콜에는 HTTP, SMTP(이메일 통신을 위한 프로토콜) 등이 있습니다.

💡 About OSI 7 Layers

  • OSI 모델은 통신이 일어나는 과정을 단계별로 파악하기 위해 계층을 나눴으며,

    • 특정한 곳에 이상이 생길 경우, 해당 단계의 하드웨어나 소프트웨어를 고쳐 문제를 해결할 수 있습니다.
  • 그러나 특유의 구현 복잡성으로 인해 발생하는 비효율적인 네트워크 운영으로

    • 현대 인터넷은 OSI 모델이 아닌 TCP/IP 모델을 따르고 있습니다.

🚩 추가 개념

  • Encapsulation & Decapsulation

    Encapsulation (캡슐화)Decapsulation (디캡슐화)
    상위 계층에서 하위 계층으로 데이터가 이동하며, 헤더에 각 계층의 기능이 합쳐지는 방식하위 계층에서 상위 계층으로 데이터가 이동하며, 각 계층에서 요구되는 헤더 정보가 제거되는 방식
    데이터 송신데이터 수신
  • Protocol (프로토콜)

    • 컴퓨터 내부 또는 서로 다른 기기들 간의 데이터 교환을 위해 표준화한 통신 규약입니다.
    • 프로토콜의 기능에는 흐름제어, 오류제어, 순서제어 등이 있습니다.
      • 흐름제어는 수신 측에서 송신 측이 송신하는 데이터의 전송량이나 전송 속도를 조절하는 기능입니다.
      • 오류제어는 전송 중에 발생하는 오류를 검출하고 정정하여 정보의 파손에 대비하는 기능입니다.
      • 순서제어는 데이터 블록에 전송 순서를 부여하는 기능입니다. 송신 데이터들이 순서적으로 전송되도록 함으로써 흐름제어와 오류제어를 용이하게 합니다.

0개의 댓글