▶ 네트워크/개념정리

[네트워크] 4. 데이터 전송의 기초

휴학생감자 2022. 2. 9. 23:28

Chapter 04. 데이터 전송의 기초

 

 

네트워크를 통한 효과 → 자원 공유

                                             병렬 처리에 의한 성능 향상

                                             중복 저장을 통한 신뢰성 향상

 

교환 : 라우터에서 데이터를 어느 방향으로 전달할 지를 선택하는 기능

전송 : 1:1로 연결된 두 시스템 간 신뢰성 있는 데이터 전송을 보장하기 위한 기능(라우팅 개념 없음)

>> 전송 개념에는 교환 개념이 배제되어야 한다!

 

 

전송 방식의 종류

1. 지리적 분포 관점 : LAN, MAN, WAN

2. 데이터 전송/교환 기술 관점 : 점대점 방식, 브로드캐스팅 방식

 

 

# 점대점 방식

   각 호스트를 직접 연결하여 목적지 호스트에만 데이터를 전송, WAN환경

   트래픽이 많이 발생하는 구간은 전송 매체의 수를 늘리는 것이 좋음(반대 경우는 줄이면 됨)

 

① 스타형 : 하나의 중개 호스트 주위로 연결, 중앙 호스트의 신뢰성과 중개 성능이 중요

 → 트리형(스타형의 확장) : 중앙 스타 구조를 중심으로 새로운 스타 구조로 확장한 것으로, 중앙 호스트 기준으로 라우팅된다.

                                                   따라서, 중개 기능이 간단하지만  중앙 호스트에 문제가 발생하는 경우 전체 동작에 영향이 발생한다.

 

링형 : 순환 고리 구조로 호스트 연결하며, 데이터는 브로드캐스팅 된다.

    거리가 멀어질수록 중개 호스트의 개수도 증가하며, 데이터는 한 방향으로만 전달하도록 설계한다. (처리 과정의 단순화)

    토큰을 통해 데이터의 전송 권한을 부여하며, 한 호스트 고장 시 전체 네트워크에 문제가 발생한다.

 

완전형 : 모든 호스트가 서로 일대일 연결 방식이며, 전용 전송 매체로 연결되므로 교환기능이 필요없다.

      전송 매체의 개수 증가 시 비용 측면에서 극단적인 비효율 발생

 

 불규칙형 : 전송 매체에 의한 연결 구조의 패턴을 분류 불가능한 형태

 

 

# 브로드캐스팅 방식

   연결된 모든 호스트에 데이터 전송, 교환 기능 없음, LAN환경

 

버스형 : 여러 호스트가 하나의 전송 매체를 공유하므로 모든 호스트에서 데이터 수신이 가능하다.

     충돌 문제 해결 방식 - 호스트의 전송 권한 제한(시간대/토큰)

                                             or 충돌 허용 및사후 해결(ex.이더넷)

 

링형 : 전송 데이터가 링을 순환하며 전달되며, 토큰을 통해 호스트는 데이터를 전송하거나 회수한다.

 


 

통신 방식                       

1. 유니캐스팅 : 송신 호스트가 1번의 전송으로 수신 호스트 하나에만 데이터 전송(일대일만 지원)

2. 멀티포인트 유니캐스팅 : 송신 호스트가 1번의 전송으로 다수의 수신 호스트에 데이터 전송

                                                    유니캐스팅 방식의 일대다 통신으로 반복적 전송을 수행

3. 브로드캐스팅 : 송신 호스트가 전송한 데이터가 전체 호스트에 전송되는 방식(Ex.공중파 방송)

4. 멀티캐스팅 : 송신 호스트의 전송 요구 1번으로 모든 수신 호스트에 데이터를 전달(Ex.화상회의)

 

 

전송 서비스의 기본 기능

- 수신 호스트의 응답 프레임 : 긍정 응답 프레임, 부정 응답 프레임

- 송신 호스트의 타이머 기능 : 일정 시간동안 회신이 없으면 타임아웃 기능을 통해 재전송 수행

- 순서 번호 기능 : 수신 호스트가 중복 데이터 프레임을 가려내도록 프레임 내부에 적은 번호

 

정상 전송 : 송신 호스트 전송한 데이터에 수신 호스트가 긍정 응답 프레임을 회신하는 경우

 부정 응답 프레임 미지원 시 프로토콜의 경우 타임아웃 기능에 따라 오류 복구

 

프레임 변형 : 송신 호스트가 보낸 프레임에 변형 오류가 발생한 경우

 수신 호스트는 부정 응답 프레임을 회신하여 데이터 재전송으로 오류 복구 과정 진행

 

프레임 분실 : 송신 호스트가 보낸 프레임이 전송 과정에서 분실되는 경우

 수신 호스트는 어떠한 회신도 없으므로 송신 호스트 주도의 타임아웃 기능에 따라 오류 복구

 

 

순서 번호(Sequence Number)

각 프레임의 고유 번호로 수신된 중복 데이터 프레임을 오류 없이 가려내기 위함

 

순서 번호의 필요성

수신 호스트의 긍정 응답이 분실되거나 or 도착하는 경우 둘 다 송신 호스트는 수신 호스트가 어떤 데이터 프레임을 전송했는지 알 수 있지만 수신 호스트는 이를 구분할 방법이 없기 때문이다.

따라서, 데이터 프레임별로 고유의 순서 번호를 부여하여 수신 호스트가 구분하도록 한다.

 

 

흐름 제어(Flow Control)

데이터 링크 계층에서 제공하는 주요 기능으로 데이터 프레임의 전송 속도를 조절하는 것

(송신 호스트의 전송 속도가 빠르면 수신 호스트는 이를 내부 버퍼에 보관할 여유가 없으므로 데이터 분실 발생 가능성이 있다.)

>> 슬라이딩 윈도우 프로토콜로 수신 호스트가 송신 호스트의 전송 시점을 제어한다.

 

 

전송 프레임 : 데이터 + 체크섬, 송수신 호스트의 주소, 제어코드 등

 

# 내부 정보 표현방식에 따른 프레임

1. 문자 프레임

    내용은 문자로 구성하며 문자 데이터를 전송할 때 사용한다.

- 8비트 or 아스키 문자 코드의 고정 크기로 동작

- 프레임의 시작에 DLE, STX를 추가, 끝에는 DLE, ETX를 추가하여 다른 정보와 구분

전송 데이터에 DLE가 포함된 경우 해결 방법 : 문자 스터핑

     1번 포함 : 전송 데이터의 DLE 문자 다음에 DLE 문자를 강제로 추가

     즉, 어떤 경우에도 DLE 문자는 연속해서 2번 발생하지 않는다!

 

2. 비트 프레임

    임의의 비트 패턴 데이터 전송 시 사용

- 프레임의 시작과 끝에 플래그를 정의하여 프레임 단위를 구분 비트패턴(01111110) : ‘1’ 6개

 전송 데이터에 1이 연속해서 6개이상 나오는 경우 해결 방법 : 비트 스터핑

      전송 데이터에 1이 5번 발생하면 강제로 0을 추가

      즉, 플래그 패턴 외에는 어떤 경우에도 1은 연속 5개를 넘지 않는다!

 

 

# 프레임 전송 과정의 오류 극복 방법

방법1. 전송 프레임에 오류 검출 코드를 포함하여 수신 호스트가 오류를 검출, 재전송 통해 해결

             ≫ 역방향 오류 복구 방식(= ARQ방식)    (Ex. 패리티 비트, 블록 검사, 다항 코드 방식)

방법2. 전송 프레임에 오류 복구 코드를 포함하여 수신 호스트가 오류 검출 및 복구 모두 수행

              순방향 오류 복구 방식

 

◇ 패리티 비트 : 1바이트 중 7비트는 아스키 코드, 나머지 1비트를 말한다.

전송 과정에서 1비트 오류를 검출하는 방법으로 송수신 호스트는 홀/짝수 패리티 중 1가지를 공통적으로 사용한다.

(짝수 패리티 :  데이터 끝에 패리티 비트를 추가하여 전체 1의 개수를 짝수로 만드는 것)

 

블록 검사 : 패리티 방식의 문제점을 개선한 방식으로, 수평, 수직 방향에 패리티 비트를 둔다.

마찬가지로 양 방향에서 짝수 개의 데이터 오류 발생 시 검출되지 않는다.

 

다항 코드 방식(=CRC) : 수신 호스트가 송신 데이터를 다항 코드로 나누어 나머지 값에 따라 전송 오류를 판단하는 방식

- 생성 다항식 G(x) : 계수가 0과 1로 구성됨

- 전송할 데이터 : m비트의 M(x)

- 제수 : 다항코드의 수

체크섬 : [{전송 데이터 M(x) + 0비트 (제수-1)개} % 생성 다항식 G(x)]의 연산에서 얻은 나머지 값

(연산방식 : 모듈로-2)

 

송신 데이터 : 전송 데이터 + 체크섬

이때, 나머지가 0이면 전송 오류가 없고, 0이 아니면 오류가 발생한 것으로 판단한다.

Ex) 생성다항식 G(x) = x^5 + x^2 + 1 다항 코드 : 100101