4. 데이터 전송 방식

윤주원·2023년 7월 11일
0

컴퓨터 네트워크

목록 보기
4/15
post-thumbnail

데이터 전송 방식

컴퓨터 네트워크를 통하여 자원 공유, 병렬 처리에 의한 성능 향상 및 중복 저장을 통한 신뢰성 향상 등의 효과를 얻을 수 있다.

  • 자원 공유
    : 컴퓨터 하드웨어, 소프트웨어 등의 모든 물리적, 논리적 자원을 공유
  • 자원 활용의 극대화
    : 성능 향상 하나의 공유 시스템 버스에 메인 프로세서를 장착
    : I/O장치의 처리 속도를 향상시키기 위해 I/O 전용 프로세서를 설치
  • 신뢰성 향상
    : 중요한 정보를 여러 시스템에 중복 저장하므로 데이터 복구가 용이
    : 신뢰성의 향상 정도에 따라 시스템 성능이 저하될 수 있음

전송과 교환

  • 교환 : 라우터에서 데이터를 어느 방향으로 전달할지를 선택하는 기능
  • 전송 : 1:1로 직접 연결된 두 시스템 간의 신뢰성 있는 데이터 전송을 보장

전송 방식의 종류

  • 지리적 분포에 따른 분류 방식
    : LAN (근거리 통신망), MAN (도시규모의 통신망), WAN (원거리 통신망) 등
  • 데이터 전송, 교환 기술의 분류 방식
    : 점대점, 브로드캐스팅 방식

데이터 전송 방식 : 점대점 방식

점대점 방식

  • 교환 호스트가 송수신 호스트의 중간에 위치함 (스타형, 링형, 완전형, 불규칙형)
  • 연결의 개수가 많아지면 성능은 유리하지만, 연결의 개수가 적어지면 전송 매체를 많이 공유해야 하므로, 네트워크의 혼잡도가 증가.

스타형

  • 하나의 중개 호스트 주위로 여러 호스트를 일대일로 연결하는 형태
  • 중앙 호스트의 신뢰성과 성능이 네트워크에 영향을 미침

트리형

  • 중앙에 있는 스타 구조 주변에 위치한 호스트들을 중심으로 새로운 스타 구조가 확장되는 형태
  • 중개 과정이 간단하지만, 중앙호스트에 문제가 발생하면 전체 네트워크에 영향을 미친다.

링형

  • 호스트의 연결이 순환고리 구조
  • 모든 호스트가 데이터 전송과 교환 기능을 동시에 수행
  • 토큰 (Token)
    : 호스트 사이의 데이터 송신 시점을 제어하는 기능
    : 데이터의 전송 권한을 의미하는 토큰을 확보,
    : 데이터 전송이 완료되면 토큰을 다시 네트워크에 반환
  • 하나의 호스트가 고장나면 전체 네트워크가 동작하지 않을 수 있음

완전형

– 모든 호스트가 다른 모든 호스트와 1:1로 직접 연결하는 방식
– 호스트의 수가 증가할수록 전송 매체의 수가 급격히 늘어남

불규칙형

– 연결 구조를 특정 패턴으로 분류할 수 없는 방식


데이터 전송 방식: 브로드캐스팅 방식

브로드캐스팅 방식

  • 특정 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전달
  • LAN 환경에서 사용 (중개를 위한 교환 호스트 불필요)

버스형

  • 전송 데이터를 모든 호스트에서 수신할 수 있음

  • 충돌 (Collision)
    : 둘 이상의 호스트에서 데이터를 동시에 전송할 때 충돌 발생

  • 충돌 해결 방법
    : 호스트의 전송 권한을 제한 (시간 할당 / 토큰 부여)
    : 충돌 허용 (충돌 발생시 재전송, 이더넷의 CSMA/CD)

  • CSMA/CD 동작 과정(Carrier Sense Multi Access/Collision Detection)

  • Carrier Sense : 회선의 상태에 따라

  • Multi Access : 동시에 접근이 가능하면서

  • Collision Detection : 충돌을 검사하여 제어

  • 장점
    : 어느 한 기기가 고장 나더라도 다른 기기들의 통신에 영향을 미치지 않는다.

  • 단점
    : 호스트가 많아지면 충돌이 많아지고 효율이 떨어진다. 임의대기시간으로 인한 지연시간 예측 불가

링형

  • 호스트를 순환 구조로 연결
  • 송신 호스트가 전송한 데이터는 링을 한바퀴 순환한 후 송신 호스트에 되돌아옴
  • 중간의 호스트 중에서 수신 호스트로 지정된 호스트만 데이터를 내부에 저장
  • 데이터를 전송하기 위해서는 토큰 확보가 선행되어야 한다.

멀티포인트 통신

  • 하나의 송신 호스트를 기준으로
    : 수신 호스트 하나와 연결 : 유니포인트
    : 다수의 수신 호스트와 연결 : 멀티포인트

  • 송신 호스트가 한 번의 전송으로
    : 수신 호스트 하나에만 데이터 전송 : 유니 캐스팅
    : 다수의 수신 호스트로 전송 : 멀티 캐스팅

  • 멀티 포인트 유니 캐스팅
    : 하나의 송신 호스트를 기준으로, 다수의 수신 호스트와 연결되었고 (멀티 포인트)
    : 송신 호스트가 한 번의 전송으로 하나의 수신 호스트에만 데이터 전송 (유니 캐스팅)

  • 멀티 캐스팅
    : 프로토콜 차원에서 지원하는 일대다 전송 기능
    : 송신 호스트의 전송 요구 한번으로 모든 수신 호스트에 데이터를 전달

오류 제어

전송 오류의 복구

  • 수신 호스트의 응답 프레임
    : 데이터 프레임의 일부가 깨지는 변형 오류에 대해, 수신 호스트는 재전송을 요구할 수 있다.
  • 송신 호스트의 타이머 기능
    : 데이터 프레임을 전송한 후에 일정 시간 이내에 수신 호스트로 부터 회신이 없으면 타임아웃으로 간주하고, 프레임을 재전송한다.
  • 순서 번호 기능
    : 수신 호스트의 중복 데이터 프레임을 판별하기 위해 프레임 내부에 순서 번호를 기록하여 전송한다.

정상적 전송

: 송신 호스트가 전송한 데이터 프레임이 수신 호스트에 정상적으로 도착
:수신 호스트는 송신 호스트에게 긍정 응답 프레임을 회신

프레임 변형 오류

:프레임 변형을 탐지한 수신 호스트는 부정 응답 프레임을 전송
:송신 호스트는 원래의 데이터 프레임을 재전송한다.
:부정 응답이 없는 프로토콜에서는 타임아웃 기능에 따라 재전송을 수행한다.

프레임 분실 오류

: 송신 호스트는 데이터 프레임을 전송한 후에 특정 시간까지 수신 호스트의 긍정/부정 응답 프레임이 도착하지 않으면, 타임 아웃 기능에 따라 원래 프레임을 재전송

중복 수신 문제

: 긍정 응답이 사라지는 오류 발생시 타임아웃 기능에 따라 재전송이 진행
: 이 때, 수신 호스트는 재전송된 프레임인지, 다음 프레임인지 구분할 수 없음

  • 프레임에 순서 번호를 부여하여 중복 여부를 판단할 수 있다.

흐름제어

  • 수신 호스트가 감당할 수 있을 정도의 전송 속도를 유지하면서 데이터
    프레임을 전송

  • 너무 빨리 전송하는 경우
    : 수신 호스트가 내부 버퍼에 보관하지 못할 수 있음
    : 프레임 분실과 동일한 문제를 야기함

  • 기본 원리
    : 수신 호스트가 송신 호스트의 전송 시점을 제어
    ex) 슬라이딩 윈도우 프로토콜


    프레임

    구조

  • 프레임의 시작과 끝에 특수 문자 사용
    : 시작 – DEL / STX
    : 끝 – DLE / ETX
    전송 데이터에 특수 문자가 포함되면 혼란이 발생할 수 있다.

    문자 스터핑 (Character Stuffing)

  • 문자 프레임의 전송 과정에서 제어 문자를 추가하는 기능

  • 전송 데이터가 DLE 문자를 포함하면, 뒤에 DLE문자 하나를 강제 추가

비트 프레임

  • 프레임의 시간과 끝 위치에 플래그라는 특수하게 정의된 비트패턴을 사용하여 프레임 단위를 구분 (01111110)

비트 스터핑 (Bit Stuffing)

  • 전송 데이터에 플래그 패턴이 포함되면 혼란이 발생할 수 있음

  • 송신 측 : 전송 데이터에 1이 연속해서 5번 나오면, 강제로 0을 추가

  • 수신 측 : 송신 과정에서 추가된 0을 제거하여 원래의 데이터를 복원


    다항 코드

  • 오류를 극복하는 방법
    전송 프레임에 오류 검출 코드를 넣어 수신 호스트가 전송 과정의 오류를 검출
    순방향 오류 복구(Forward Error Correction)
    : 오류 복구 코드를 사용해 수신 호스트가 오류 복구 기능을 수행하는 방식

  • 오류 검출
    역방향 오류 복구(Backward Error Correction, ARQ 방식)
    : 재전송 방식을 이용하여 오류 복구
    : 네트워크에서 일반적으로 사용된다.

패리티비트

  • 1비트 오류 검출을 위해 사용
  • 1바이트 (8비트) = 7비트 아스키코드 + 1패리티 비드
  • 짝수 패리티 : 데이터의 끝에 패리티 비트를 추가해, 전체 1의 개수를 짝수
  • 홀수 패리티 : 전체 1의 개수를 홀수로
  • 송신/수신 호스트는 동일한 패리티 방식을 사용해야 함

블록 검사

  • 짝수 개의 비트가 깨지는 오류를 검출
  • 수평, 수직 방향에 모두 패리티 비트를 지정

다항 코드 (Polynomial Code, CRC)

  • 생성 다항식
    : 계수가 0과 1인 다항식 형태에 기반
  • 다항 코드 100101
    : 1x^5 + 0x^4 + 0x^3 + 1x^2 + 0x^1 + 1x^0
    : x^5 + x^2 + 1

송신부

  • 임의의 CRC 코드를 선정
  • CRC 발생코드의 최고차수만큼 원래 데이터의 뒤에 0을 붙임 (=확장데이터)
  • 확장데이터를 modulo-2 연산을 바탕으로 CRC코드로 나눈다.
  • 나머지가 0이면 확장데이터를 그대로 전송
  • 나머지가 0이 아니면, 원래 데이터에 나머지를 붙여서 전송

수신부

  • 수신된 코드를 동일한 CRC로 나눔
  • 나머지가 0이면 오류가 발생하지 않은 것이고, 나머지가 0이 아니면 오류가 발
    생한 것

예시

  • 다항식 : x^5 + x^2 + 1
  • 전송 데이터 : 101101001
  • 나머지 (체크섬) : 00010
  • 송신데이터 : 10110100100010
profile
안녕하세요

0개의 댓글