[네트워크] CH.2 네트워크 모델

Updated:

계층 구조의 개념

네트워크에 연결된 시스템이 통신하려면 정해진 규칙에 따라 데이터를 주고받아야 하는데, 이러한 일련의 규칙을 프로토콜이라 한다. 프로토콜의 동작 과정은 전송 오류율, 데이터 전달 경로, 전송 속도 등 다양한 외부 요인의 영향을 받으므로 효율적으로 관리하기 위해서 모듈화를 통하여 이루어진다.

계층적 모듈 구조

  1. 모듈화

모듈화하지 않는다면 한 부분만 고장 나도 전체 시스템을 교체해야 하는 반면 모듈화하면 오류가 발생한 모듈만 교체하면 되고 또는 해당 모듈의 성능이나 기능을 개선해서 교체할 수 있다.

  1. 계층 구조

대부분의 모듈 구조에서는 특정 모듈이 다른 모듈에 서비스를 제공하는 형식의 계층 구조를 이룬다.

111

계층 구조의 장점은 다음과 같다.

  • 복잡하고 큰 시스템을 기능별로 작게 분류해서 간단하고 작은 시스템으로 재구성할 수 있다.
  • 상하 계층에 인접한 모듈 사이의 인터페이스를 포함하여 분할된 모듈이 연동할 수 있는 표준 인터페이스를 제공한다.
  • 전송 매체 양단에 있는 호스트가 수행하는 프로토콜들은 좌우 대칭 구조여서 동일 계층 사이의 프로토콜을 단순화할 수 있다.
  • 각 계층의 기능 오류를 수정하거나 향상시켜야 하는 경우에 전체 시스템을 재작성하지 않고 해당 계층의 모듈만 교체하면 된다.

프로토콜 설계 시 고려 사항

대표적으로 네트워크 호스트의 주소 표현 방법, 데이터 전송 과정에서의 오류 제어, 통신 양단 사이의 전송 속도를 제어하는 흐름 제어 등을 고려해야 한다.

주소 표현은 호스트를 유일하게 구분하는 용도이다. 오류 제어는 전송과정에서 데이터 분실, 데이터 변형 등의 오류가 발생했을 때 데이터를 복구하는 데 사용한다. 흐름 제어는 송신자가 데이터를 너무 빨리 보내어 수신자가 미처 처리하지 못하는 문제를 해결하기 위한 목적이다.

  1. 주소 표현

시스템을 구분하여 지칭하기 위해서 이름을 부여하는 것을 주소체계라 한다. 보통 호스트에도 주소를 하나씩 부여하지만, 다수의 호스트를 묶어 하나의 그룹 주소로 표기하기도 한다. 일대일 통신과 더불어, 화상 회의 등을 지원하기 위한 일대다(1:n) 통신 환경도 필요하기 때문이다. 일대다 통신의 대표적인 유형으로는 네트워크에 연결된 모든 호스트에 데이터를 전송할 수 있는 브로드캐스팅표기 방법과 특정 사용자를 그룹으로 묶어서 지칭하는 멀티태스킹표기 방법이 있다.

  1. 오류 제어
  • 데이터 변형 오류: 데이터가 깨져서 도착
  • 데이터 분실 오류: 데이터가 도착하지 못함

위 두가지 전송 오류 문제를 해결하는 오류 제어 기능은 통신 프로토콜의 가장 기본적인 기능에 속한다.

데이터 분실의 경우 원인은 다양하다. 전송 경로가 잘못되거나 상위 계층의 논리적 처리 과정에서 데이터를 분실할 수도 있다. 분실의 경우 수신 호스트가 자신에게 데이터가 보내졌다는 사실을 인지하는 것이 쉽지 않으므로 보통은 송신 호스트에서 오류를 감지하는 방법을 사용한다. 변형의 경우 수신 호스트에서 오류를 검출할 수 있다. 네트워크에서 전송 오류를 해결하는 일반적인 방법은 송신 호스트가 원래 데이터를 재전송하는 것이다.

  1. 흐름 제어

전송 매체에서 물리적인 오류가 없었는데도 데이터를 분실하는 경우가 있는데, 이는 송수신 호스트 사이의 데이터 전송/처리 속도 차이 때문에 발생하기도 한다. 수신 호스트에 데이터가 도착하면 일단 내부 버퍼에 보관했다가 처리하는데 내부 버퍼에 보관할 공간을 확보하지 못하면 데이터를 논리적으로 분실하는 결과가 초래된다.

일반적으로 수신 호스트의 버퍼 처리 속도보다 송신 호스트가 데이터를 전송하는 속도가 빠르면 논리적인 데이터 분실 오류가 발생할 수 있다. 이 문제를 해결하려면 송신 호스트의 전송 속도를 조절하는 흐름 제어기능이 필요하다.흐름 제어 기능은 수신 호스트가 수신할 수 있을 때 전송 허가를 보내는 방식으로 수신 호스트의 제어에 의해 이루어진다.

  1. 데이터 전달 방식

일대일 통신 환경에서 데이터를 한쪽 방향으로만 전송하는 것을 단방향 방식이라 하고, 양쪽에서 데이터를 동시에 전송하는 것을 전이중 방식이라 한다. 이외에도 데이터가 양방향으로 전송되지만 특정 시점에는 한족 방향으로만 전송할 수 있는 반이중 방식이 있다.

서비스 프리미티브

프로토콜은 계층 구조로 이루어져 있고, 하위 계층이 상위 계층에 서비스를 제공하는 방식으로 동작한다. 서비스의 종류에는 연결형과 비연결형이 있다.

  • 연결형 서비스: 연결 설정(데이터 전달 경로 설정) -> 데이터 전송 -> 연결 해제
종류 용도
CONNECT 연결 설정
DATA 데이터 전송
DISCONNECT 연결 해제
  • 비연결형 서비스: 우편 시스템의 동작 원리와 비슷하다. 전송할 데이터가 있으면 각 데이터를 독립적으로 목적지 호스트로 전송하면 된다.

다음은 서비스 프리미티브가 올바르게 수행되기 위한 기능이다.

기능 설명
Request 클라이언트가 서버에 서비스를 요청함
Indication 서버에 서비스 요청이 도착했음을 통지함
Response 서버가 클라이언트에 서비스 응답을 회신함
Confirm 클라이언트에 응답이 도착했음을 통지함
  • Request: 클라이언트에서 발생하며, 서버가 프리미티브의 기능을 수행하도록 하위 프로토콜에 요청할 때 사용한다. 연결 설정 요청, 데이터 전송 요청, 연결 해제 요청 등이 있다.
  • Indication: 클라이어느로부터 Request 요청을 수신한 서버의 하위 프로토콜은 Indication을 사용해서 프리미티브 요청이 발생했음을 알린다.
  • Response: 클라언트로부터 프리미티브를 받은 서버에서는 Response를 이용해 클라이언트에 응답한다.
  • Confirm 서버에서 보낸 응답은 Confirm 형태로 클라이언트에 회신된다.

OSI 참조 모델

OSI 7계층 모델

연결된 두 호스트가 각각 7개 계층으로 구성된 모듈을 수행함으로써 데이터 송수신이 가능하다. 전송 데이터는 송신 호스트의 응용 계층에서 싲가해 하위 계층으로 순차적으로 전달되어, 최종적으로 물리 계층에서 수신 호스트에 전달된다. 수신 호스트에서는 데이터를 상위 계층으로 순차적으로 이동시켜 응용 계층까지 보내준다.

데이터가 하위 계층으로 내려갈 때 물리 계층을 제외한 모든 계층에서 헤더 정보가 추가되고, 데이터를 수신하는 호스트에서는 반대로 상위 계층으로 올라가며 순차적으로 헤더 정보를 제거하고 해석한다.

  1. 용어 정의

임의의 호스트에서 실행되는 계층 n 모듈은 상대 호스트의 계층 n 모듈과 논리적으로 통신하는데, 이들이 사용하는 규칙을 계층 n 프로토콜이라 한다.

동일 계층에 위치한 통신 양단은 같은 프로토콜을 사용하여 통신하기 때문에 동료 프로세스라고 한다. 한 호스트에서 상하로 이웃하는 계층에 위치한 모듈 사이에는 인터페이스가 정의되어 둘 사이의 접근 방법을 제한한다. 상위 계층에서는 하위 계층의 인터페이스를 통해 하위 계층의 서비스를 이용할 수 있다.

  1. 헤더 정보

응용 계층에서 데이터 링크 계층까지 헤더 정보를 추가해 하위 계층으로 보낸다. 물리 계층에서는 수신 호스트에 데이터를 실제로 전송하고, 이를 수신한 호스트에서는 송신 절차와 반대 방향으로 헤더를 제거하는 과정이 반복된다.

  1. 중개 기능

송신 호스트에서 수신 호스트로 데이터를 전달하려면 중개 역할을 하는 중개 노드를 거쳐야 한다. 중개 시스템에서는 경로 배정 기능을 수행하는 네트워크 계층의 프로토콜이 동작하는데, 이와 같은 배정 기능을 라우팅이라 한다.

라우터 좌우에 위치한 네트워크는 종류가 다를 수도 있으므로 하위 계층의 헤더 정보도 다를 수 있다. 따라서 헤더 정보의 값을 해석하여 변환하는 작업은 라우터의 주요 기능에 해당한다.

계층별 기능

전송 계층이 특히 중요한데, 통신 양단에 있는 최종 사용자(프로세스) 상의 종단 연결을 제공하기 때문이다. 전송 계층의 하위에 있는 물리 계층, 데이터 링크 계층, 네트워크 계층은 전송 계층의 연결을 설정하고 지원하는 역할을 수행한다. 상위에 있는 세션 계층, 표현 계층, 응용 계층은 전송 계층의 연결을 어떻게 활용할지에 대하여 다룬다. 따라서 OSI 7계층 모델은 전송 계층을 기준으로 두 부분으로 나뉜다고 볼 수 있다.

  1. 물리 계층

전송 매체의 물리적 인터페이스에 관한 사항을 기술한다. 즉, 전송 매체에서는 개별 정보의 비트 교환 문제를 다룬다. 물리 계층은 하드웨어 시스템으로 구현되고, 계층 2 이상의 프로토콜들은 소프트웨어적으로 구현된다.

  1. 데이터 링크 계층

물리 계층을 통해 전송되는 데이터의 물리적 전송 오류를 해결한다. 데이터 링크 계층은 갈림길에서 전송 경로를 선택할 수 없으므로 일대일로 직접 연결된 환경에서만 데이터 전송을 지원한다.

데이터 링크 계층을 이용해 전송되는 데이터를 프레임이라 부른다. 프레임 헤더에 표시되는 송수신 호스트 정보에는 LAN 카드에 내장된 송수신 호스트의 MAC 주소가 기록된다.

  1. 네트워크 계층

송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지를 결정하는 라우팅 문제를 처리하는데, 전달 경로 선택은 미리 정해지는 정적인 방식과 네트워크의 부하 상태에 따라 결정되는 동적인 방식으로 구분된다.

전송 데이터를 패킷이라 부르며, 중개 과정에서 경로 선택의 기준이 되는 호스트 주소가 필요하다. 호스트의 IP 주소가 경로 선택에 중요한 기준이 된다. 패킷이 지나치게 많으면 네트워크의 전송 속도가 떨어지고 트래픽이 과도하게 증가할 수 있는데 이를 조절하는 혼잡 제어기능도 담당한다.

  1. 전송 계층

송신 프로세스와 수신 프로세스를 직접 연결하는 단대단통신 기능을 제공한다. 전송 계층 아래에 있는 하위 계층은 호스트와 호스트 사이의 데이터 전송 과정에서 발생하는 문제들만 반영한다. 반면 전송 계층은 컴퓨터 내부에서 논리적으로 구축되는 통신 당사자인 프로세스 사이의 문제를 다룬다.

  1. 세션 계층

전송 계층과 거의 유사한데, 사용자에게 원격 파일 전송이나 원격 로그인 등과 같은 상위적 연결 개념인 세션 기능을 제공한다.

  1. 표현 계층

데이터의 의미와 표현 방법을 처리한다. 즉, 통신 양단에서 서로 이해할 수 있는 표준 방식으로 데이터를 코딩하는 문제를 다룬다.

  1. 응용 계층

다양하게 존재하는 응용 환경에서 공통으로 필요한 기능을 다룬다.

TCP/IP 모델

인터넷은 데이터의 중개 기능을 담당하는 네트워크 계층으로 IP 프로토콜을 사용하기 때문에 호스트는 이를 지원해야 하며, 전송 계층은 TCP나 UDP를 사용한다.

구현 환경

참고자료

쉽게 배우는 데이터 통신과 컴퓨터 네트워크 개정판 (박기현 저)

Leave a comment