[Network] OSI 7계층 구조 알아보기

GonnabeAlright·2021년 11월 20일
0
post-thumbnail
post-custom-banner

1. 데이터의 기술적 개념

데이터는 0 혹은 1로 이루어진 숫자이고, 컴퓨터는 이진법의 숫자를 전기의 켜짐과 꺼짐으로 표현할 수 있다. 즉, 데이터는 아주 긴 전기 신호이다.

2. 프로토콜이 필요하다.

컴퓨터, ip폰 등 클라이언트에서 발생한 데이터가 상대방 컴퓨터 혹은 서버로 전달되기 위해서는 표준화 된 어떠한 약속 혹은 절차를 따라야한다. 전기 신호가 그냥 케이블을 타고 상대방 컴퓨터로 전달되는 것이 아니다.

보내는 쪽에서는 데이터를 안전하고, 정확하고, 신속하게 규격화 즉 포장하는 방법이 필요하고, 받는 쪽에서는 그 데이터를 안전하고 정확하고 신속하게 해석하는 방법이 필요한 것이다. 그런 기술적 약속을 프로토콜이라고 한다.

3. 계층구조

네트워크 상에서 여러 대의 컴퓨터가 데이터를 주고 받으려면 이들을 서로 연동할 수 있도록 표준화된 인터페이스를 지원해야 한다. OSI 7모델과 TCP/IP모델 모두 계층 구조를 갖고 있기 때문에, 자세히 알아보기 전에 먼저 계층 구조가 어떤 것인지, 적용하면 어떤 점이 좋은지를 알 필요가 있다. 계층 구조(Layered)는 네트워크 뿐만 아니라 운영체제 등 다양한 분야에서 적용되는데, 계층 구조를 사용하는 목적은 분할 정복(Devide and Conquer)때문이다. 어떠한 복잡한 문제를 해결하고자 할 때, 나누어 생각하면 쉽게 해결할 수 있다는 취지인 것이다.

또 다른 특징은 위, 아래 층으로만 이동할 수 있다는 점이다. 건너뛰어 한번에 맨위 또는 아래로 갈 수 없다. 즉, 다음 단계로 넘어가려면 이전 계층이 전제조건이 되어야한다.

OSI(Open Systems Interconnection Reference Model)란?


  • 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다.
  • 이 모델은 프로토콜을 기능별로 나눈 것이다.
  • 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 이 기능을 제공한다.
  • '프로토콜 스택' 혹은 '스택'은 이러한 계층들로 구성되는 프로토콜 시스템이 구현된 시스템을 가리키는데, 프로토콜 스택은 하드웨어나 소프트웨어 혹은 둘의 혼합으로 구현될 수 있다.
  • 일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구현된다.

PDU란 ?
OSI 7계층에서는 PDU 개념을 중요시 하는데, PDU(Process Data Unit)란 각 계층에서 전송되는 단위이다. 1계층에서 PDU가 비트(Bit)라고 생각하기 쉽지만 PDU라고 하지 않고 여기서 비트는 단위라기 보다는 단지 전기 신호의 흐름일 뿐이다.

PDU는 2계층-프레임(Frame), 3계층-패킷(Packet), 4계층-세그먼트(Segment)만 생각하면 된다. 네트워크 통신과정을 깊게 이해하기 위해서는 왜 각각의 계층의 PDU가 다른지 알아야 하고, 역할에 대해 알고 있어야 한다.

1. 물리 계층(Physical layer)

  • 네트워크의 기본 네트워크 하드웨어 전송 기술을 이룬다.
  • 네트워크의 높은 수준의 기능의 논리 데이터 구조를 기초로 하는 필수 계층이다.
  • 전송 단위는 Bit이다.

물리계층은 OSI 모델의 최하위 계층에 속하며, 상위 계층에서 전송된 데이터를 물리 매체(허브, 라우터, 케이블 등)를 통해 다른 시스템에 전기적 신호를 전송하는 역할을 한다.

즉, 기계어를 전기적 신호로 바꿔서 와이어에 실어주는 것이다.

  • PDU: 비트(Bit)
  • 프로토콜: Modem, Cable, Fiber, RS-232C
  • 장비: 허브, 리피터
  • 포인트 투 포인트(Point to Point)간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다.
  • 주소 값은 물리적으로 할당 받는데, 이는 네트워크 카드가 만들어질 때부터 맥 주소(MAC address)가 정해져 있다는 뜻이다.
  • 데이터 링크 계층의 가장 잘 알려진 예는 이더넷이다.
  • 데이터 전송 단위는 Frame이다.

링크계층은 네트워크 기기들 사이의 데이터 전송을 하는 역할을 한다. 시스템 간의 오류 없는 데이터 전송을 위해 패킷을 프레임으로 구성하여 물리계층으로 전송한다. 3계층에서 정보를 받아 주소와 제어정보를 헤더와 테일에 추가한다.

  • PDU: 프레임(Frame)
  • 프로토콜: 이더넷, MAC, PPP, ATM, LAN, Wifi
  • 장비: 브릿지, 스위치

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

  • 여러 개의 노드를 거칠때마다 경로를 찾아주는 역할을 하는 계층으로 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단을 제공한다.
  • 네트워크 계층은 라우팅, 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking)등을 수행한다.
  • 논리적인 주소 구조(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적(hierarchical)이다.
  • 데이터 전송 단위는 Datagram(Packet)이다.

네트워크 계층은 기기에서 데이터그램(Datagram)이 가는 경로를 설정해주는 역할을 한다. 라우팅 알고리즘을 사용하여 최적의 경로를 선택하고 송신측으로부터 수신측으로 전송한다. 이때, 전송되는 데이터는 패킷 단위로 분할하여 전송한 후 다시 합쳐진다. 2계층이 노드 대 노드 전달을 감독한다면, 3계층은 각 패킷이 목적지까지 성공적이고 효과적으로 전달되도록 한다.

  • PDU: 패킷(Packet)
  • 프로토콜: IP, ICMP 등
  • 장비: 라우터, L3 스위치

4. 전송 계층(Transport layer)

  • 양 끝단(End to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.
  • 시퀀스 넘버 기반의 오류 제어 방식을 사용한다.
  • 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)이다. (이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다.)
  • 가장 잘 알려진 전송 계층의 예는 TCP이다.
  • 데이터 전송 단위는 Segment이다.

발신지에서 목적지(End-to-End)간 제어와 에러를 관리한다. 패킷의 전송이 유효한지 확인하고 전송에 실패된 패킷을 다시 보내는 것과 같은 신뢰성 있는 통신을 보장하며, 헤드에는 세그먼트가 포함된다. 주소 설정, 오류 및 흐름 제어, 다중화를 수행한다.

  • PDU: 세그먼트(Segment)
  • 프로토콜: TCP, UDP, ARP, RTP
  • 장비: 게이트웨이, L4 스위치

5. 세션 계층(Session layer)

  • 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
  • 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정들을 수행한다.
  • 이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.

통신 세션을 구성하는 계층으로, 포트(Port)번호를 기반으로 연결한다. 통신장치 간의 상호작용을 설정하고 유지하며 동기화한다. 동시송수신(Duplex), 반이중(Half-Duplex), 전이중(Full-Duplex) 방식의 통신과 함께 체크 포인팅과 유휴, 종료, 다시 시작 과정등을 수행한다.

  • 프로토콜: NetBIOS, SSH, TLS

6. 표현 계층(Presentation layer)

  • 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다.
  • MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다.

표현계층은 송신측과 수신측 사이에서 데이터의 형식(png, jpg, jpeg, ...)을 정해준다. 받은 데이터를 코드 변환, 구문 검색, 암호화, 압축의 과정을 통해 올바른 표준방식으로 변환해준다.

  • 프로토콜: JPG, MPEG, SMB, AFP

7. 응용 계층(Application layer)

  • 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
  • 일반적인 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공한다.

응용계층은 사용자와 바로 연결되어 있으며 응용 SW를 도와주는 계층이다. 사용자로부터 정보를 입력받아 하위 계층으로 전달하고 하위 계층에서 전송한 데이터를 사용자에게 전달한다.

파일전송, DB, 메일 전송 등 여러가지 응용 서비스를 네트워크에 연결해주는 역할을 한다.

  • 프로토콜: DHCP, DNS, FTP, HTTP
post-custom-banner

0개의 댓글