2장 네트워크 모델💻

jarden·2022년 12월 26일
0

컴퓨터네트워크

목록 보기
2/7

01. 계층 구조의 개념

1. 계층적 모듈 구조

일반적으로 복ㅈ바하고 큰 시스템의 기능은 특정 단위의 모듈로 나누어 설계한다. 모듈은 독립적으로 동작하면서도 상호 유기적으로 통합될 수 있어야 한다. 그러므로 모듈 사이에는 적절한 인터페이스가 필요하다.

1.1 모듈화


(a)처럼 전체 시스템을 기능에 따라 세 부분으로 나누어 설계할 수 있는데, 이때 각 모듈은 유기적으로 연결되어야 한다. B 모듈은 A 모듈과 곡선 모양의 인터페이스로 연결되고, C 모듈과는 톱니 모양의 인터페이스로 연결된다. A와 C 모듈은 직접 연결되는 인터페이스가 없으며, B 모듈을 통해 간접적인 관계를 유지한다.
그러나 시스템을 모듈화하지 않았다면 한 부분만 고장나도 전체 시스템을 교체해야 한다. 반면 모듈화하면 (b)처럼 오류가 발생한 B 모듈만 교체해서 버전 2로 대체할 수 있다. 이때 모듈 내부의 처리 과정은 임의로 개선할 수 있으나, A와 C 모듈과의 인터페이스는 동일하게 유지해야 전체 시스템 동작에 영향을 주지 않는다.

1.2 계층 구조

분할된 모듈들은 협력 관계를 유지하면서 유기적으로 동작한다. 대부분의 모듈 구조에서는 특정 모듈이 다른 모듈에 서비스를 제공하는 형식의 계층 구조를 이룬다. 네트워크에서도 독립적인 고유 기능을 수행하는 모듈들이 상하위의 계층 구조로 연결되어 동작한다.

계층 구조에서는 상위 계층이 하위 계층에 특정 서비스를 요청하는 방식으로 동작한다. 요청을 받은 하위 계층은 해당 서비스를 실행하여 그 결과를 상위 계층에 돌려준다. 하위 계층의 실행 결과는 상위 계층에 결과 값을 직접 전달하는 방식이 될 수 있고, 주변 환경값을 변경하는 부수 효과 방식일 수도 있다.

  • 계층 구조의 장점
    - 전체 시스템을 이해하기 쉽고, 설계 및 구현이 용이
    - 모듈간의 표준 인터페이스가 단순하면 모듈의 독립성을 향상시킬 수 있으며, 이는 시스템 구조를 단순화시키는 장점이 됨
    - 대칭 구조에서는 동일 계층 사이의 인터페이스인 프로토콜을 단순화시킬 수 있음
    - 모듈의 외부 인터페이스가 변하지 않으면 내부 기능의 변화가 전체 시스템의 동작에 영향을 미치지 않음

2. 프로토콜 설계 시 고려 사항

2.1 주소 표현

  • 주소의 역할 : 서로를 구분
  • 주소의 활용도를 높이기 위하여 구조적 정보를 포함
    - 전화번호 : 국가 코드 – 지역 코드 - 번호
    - 주민번호 : yymmdd-abcdefg
  • 1:다 통신을 지원
    - 브로드캐스팅 : 모든 호스트에 데이터 전달
    - 멀티캐스팅 : 특정 호스트에게 데이터 전달

2.2 오류 제어

네트워크에서는 데이터 송수신 과정에서 오류가 발생할 수 있다. 전송 오류에는 데이터가 깨져서 도착하는 데이터 변형 오류와 데이터가 도착하지 못하는 데이터 분실 오류가 있다. 전송 오류 문제를 해결하는 오류 제어 기능은 통신 프로토콜의 가장 기본적인 기능에 속한다. 오류가 발생하는 1차 원인은 물리 계층의 전송 매체에 의한 물리적인 오류이다. 이를 해결하기 위해서 데이터 링크 계층이 물리적인 전송 오류를 해결한다.


송신 호스트에서 보낸 데이터가 수신 호스트에 도착했을 때 발생할 수 있는 현상을 세 가지 유형으로 설명한다. (a)는 데이터가 오류 없이 도착하는 정상적인 경우이고, (b)는 데이터가 수신 호스트에 도착하지 못하는 데이터 분실 오류이며, (c)는 데이터의 내용이 변경되어 도착하는 데이터 변형 오류이다.
(b)의 경우, 전송 경로가 잘못되어 데이터가 엉뚱한 방향으로 전달되거나, 상위 계층의 논리적 처리 과정에서 데이터를 분실할 수도 있다. 데이터가 변형되거나 분실되는 오류가 발생되어 이를 해결하려면 먼저 오류가 발생한 사실을 인지해야 한다. 수신 호스트가 자신에게 데이터가 보내졌다는 사실을 인지하는 것이 쉽지 않다. 그래서 보통은 송신 호스트에서 오류를 감지하는 방법을 사용한다.
(c)의 경우, 수신 호스트가 여러 방식의 오류 검출 기법을 통해 오류를 검출할 수 있다. 네트워크에서 전송 오류를 해결하는 일반적인 방법은 송신 호스트가 원래 데이터를 재전송하는 것이다.

물리적인 오류 외에도 통신 프로토콜에서 사용하는 알고리즘의 성격에 의해 오류가 발생하기도 한다. 예를 들어, 송신 호스트가 순차적으로 전송한 데이터의 순서가 뒤바뀌어 도착하는 경우이다. 수신 호스트에서 도착 순서를 바로잡으려면 데이터의 논리적인 순서를 의미하는 순서 번호 기능이 필요하다.

2.3 흐름 제어

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

2.4 데이터 전달 방식

  • 단방향 : 데이터를 한쪽 방향으로만 전송
  • 전이중 : 데이터를 양쪽에서 동시에 전송
  • 반이중 : 양방향으로 전송할 수 있지만, 특정 시점에서는 한쪽 방향으로만 전송

3. 서비스 프리미티브

계층 구조 프로토콜에서 하위 계층이 상위 계층에 제공하는 서비스의 종류에는 연결형과 비연결형이 있으며 프리미티브 형태로 구현된다.

연결형 서비스

연결형 서비스를 이용하는 3단계

비연결형 서비스

전송할 데이터가 있으면 각 데이터를 독립적으로 목적지 호스트로 전송

  • 데이터는 독립적인 경로 선택 과정에 의해 전달되므로 도착하는 순서가 보낸 순서와 일치하지 않을 수 있다.

프리미티브

통신 프로토콜에서 프리미티브를 올바르게 수행하려면 각 프리미티브를 네 가지 기능을 포함하도록 설계해야한다.

클라이언트에서 서버로 전달되는 오청은 Request와 Indication으로 구현되고, 서버의 응답은 Response와 Confirm으로 구현된다.


클라이언트로부터 Request가 발생하면 서버에 Indication 형태로 전달되어 서버가 인지한다. 서버에서는 해당 프리미티브를 올바르게 수신하였음을 클라이언트에 통보하기 위하여 Response를 응답으로 보내고, 이는 클라이언트에 Confirm 형태로 도착한다. 이와 같은 4단계 절차를 통해 하나의 서비스 프리미티브가 처리된다.

  • Request : 연결 설정 요청CONNECT.Request, 데이터 전송 요청DATA.Request,
    연결 해제 요청DISCONNECT.Request 등
  • Indication : 연결 설정, 데이터 전송, 연결 해제에 대해 CONNECT.Indication,
    DATA.Indication, DISCONNECT.Indication 순으로 사용
  • Response : 연결 설정 요청은 CONNECT.Response, 데이터는 DATA.Response,
    연결 해제는 DISCONNECT.Response로 전달
  • Confirm : 연결 설정은 CONNECT.Confirm, 데이터는 DATA.Confirm,
    연결 해제는 DISCONNECT.Confirm로 전달

02. OSI 참조 모델

1. OSI 7계층 모델

연결된 두 호스트가 각각 7개의 계층으로 구성된 모듈을 수행함으로써 데이터 송수신이 가능하다. 전송 데이터는 송신 호스트의 응용 계층에서 시작해 하위 계층으로 순차적으로 전달되어, 최종적으로 물리 계층에서 수신 호스트에 전달된다. 수신 호스트에서는 데이터를 상위 계층으로 순차적으로 이동시켜 응용 계층까지 보내준다.
데이터가 하위 계층으로 내려갈 때는 각 계층의 프로토콜에서 정의한 헤더 정보가 추가된다. 물리 계층을 제외한 모든 계층에서 헤더 정보가 추가되고, 데이터를 수신하는 호스트에서는 반대로 상위 계층으로 올라가며 순차적으로 헤더 정보를 제거하고 해석한다.

1.1 용어 정의

  • 계층n 프로토콜 : 계층 n 모듈끼리 사용하는 통신 규칙

  • 동료 프로세스 : 동일 계층에 위치한 통신 양단 프로세스

  • 인터페이스 : 상하위 계층 사이의 접속 방법

  • 서비스 : 상위 계층이 하위 계층을 사용하는 방법

1.2 헤더 정보

  • 송신 호스트 : 데이터가 상위 계층에서 하위 계층으로 갈수록 헤더 추가
  • 수신 호스트 : 데이터가 하위 계층에서 상위 계층으로 갈수록 헤더 제거

1.3 중개 기능

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

중개 노드인 라우터는 자신에게 도착한 데이터의 헤더 정보를 해석해서 적절한 경로로 전달하며, 다음 라우터로 보내기 전에 헤더 정보를 수정하는 작업도 진행한다. 라우터 좌우에 위치한 네트워크는 종류가 다를 수도 있다. 네트워크가 다르면 물리적인 특성뿐 아니라, 하위 계층의 헤더 정보도 다를 수 있다. 따라서 헤더 정보의 값을 해석하여 변환하는 작업은 라우터의 주요 기능에 해당한다.


2. 계층별 기능

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

2.1 물리 계층

  • 전송 매체의 물리적 인터페이스에 관한 사항을 기술
  • 데이터 전송 속도, 송수신 호스트 사이의 클록동기화 방법, 물리적 연결 형태 등

2.2 데이터 링크 계층

  • 데이터의 물리적 전송 오류를 해결 (bit error - error control, flow control)
  • 프레임 : 전송 데이터의 명칭

2.3 네트워크 계층

  • 송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지를
    결정하는 라우팅 문제를 처리
  • 호스트 구분을 위한 주소 개념 필요 (예: IP 주소) -> header에 저장되어 있다.
  • 패킷 : 전송 데이터의 명칭
  • 혼잡 제어 : 데이터 전송 경로의 선택에 따라 네트워크 혼잡에 영향을 미침

2.4 전송 계층

  • 송신 프로세스와 수신 프로세스를 직접 연결하는 단대단 통신 기능 제공
  • bit error X 물리적 error X
  • 사용자가 원하는 서비스를 network가 충족하지 못할 때 transport 층에서 제공 network service와 applcation service를 중개

2.5 세션 계층

  • 송수신 호스트 사이의 대화 제어를 비롯 상호 배타적인 동작을 제어하기 위한
    토큰 제어, 일시적인 전송 장애를 해결하기 위한 동기Synchronization 기능 등 제공

2.6 표현 계층

  • 데이터의 의미와 표현 방법을 처리, 데이터를 코딩Coding하는 문제를 다룸

2.7 응용 계층

  • 최상위, 다양하게 존재하는 응용 환경에서 공통으로 필요한 기능을 다룸
  • 대표적인 인터넷 서비스: FTP, Telnet, 전자 메일
profile
늦더라도 한 발짝씩 나아가는 컴공생

0개의 댓글