데이터링크

2021. 5. 21. 00:18Computer Sciences/Network

정의

  • Source와 Destination 간의 논리적 연결(logical association)
    • Connection(접속) - 기기가 직접 연결되는 것
    • Association(연결) - 논리적으로 연결되는 것

기능

  • 회선제어(Line Discipline)

    ENQ/ACK 기법

    • 전용 전송 링크로 구성된 스테이션 사이에서 주로 사용되는 기법
    • 연결 준비(Call Establish), 데이터 전송, 연결 종료(Call Termination)의 세 단계(CE → DT → CT)를 거치는 방법
    1. Source가 ENQ 프레임을 전송하여 연결 초기화 진행
    1. Destination은 ACK 프레임을 전송하여 데이터 수신 준비가 완료되었음을 알림
    1. 이후에 데이터를 전송함
    1. 전송이 완료되면 EOT 프레임을 전송하여 종료

    폴링 기법

    • 하나의 스테이션을 주 스테이션으로 지정하고 나머지는 종속 스테이션으로 구성하는 기법
    • 모드
      • 선택 모드
        • 주 스테이션이 하나의 종속 스테이션에 데이터를 전송할 때 사용하는 모드
        1. 데이터를 보내려는 종속 스테이션의 주소가 담긴 SEL 프레임을 전송함
        1. 이에 해당하는 종속 스테이션은 ACK 프레임을 전송함
        1. 이를 확인한 주 스테이션은 해당 스테이션에 데이터를 전송함
        • 데이터를 전송하는 중에 다른 종속 스테이션들은 대기 상태에 들어감→ 효율성이 떨어져 별로 사용되지 않음
      • 폴 모드 - 1:N 관계의 소규모(50대 이하) 네트워크에서 사용함
        • 주 스테이션이 여러 종속 스테이션에 데이터를 전송할 때 사용하는 모드
        • 다중점 폴링 절차
        1. 데이터를 전송받아야 하는지에 대한 여부를 담은 폴 프레임을 종속 스테이션에 전송함
        1. 전송받지 않아도 되는 스테이션은 NAK, 전송받아야 하는 스테이션은 ACK 프레임으로 응답함
        1. ACK 프레임을 전송한 스테이션에 대해 데이터를 전송함
        • 폴링 기법은 두 가지로 나뉨
          • Roll Call Polling
            • 주 스테이션과 종속 스테이션이 모두 1:1로 통신하는 폴링 방식
          • Hub Polling
            • 주 스테이션이 하나의 종속 스테이션에 요청을 보내면 마지막 종속 스테이션이 응답하는 방식
  • 흐름제어(Flow Control)

    정지-대기 기법(Stop and Wait)

    • 전송한 각각의 데이터에 대한 응답을 받은 뒤에 새로운 데이터를 전송하는 방식
    • EOT 프레임이 전송되면 데이터 전송이 종료됨
    • 구조가 간단하나 효율성이 매우 떨어져 활용도가 낮음
    • k = 1

    슬라이딩 윈도우 기법(Sliding window)

    • 전송 측이 전송한 프레임에 대한 ACK 프레임을 수신하지 않아도 여러 개의 프레임을 연속적으로 전송하도록 허용하는 방법
    • 윈도우(window): 전송 및 수신 스테이션 양쪽에서 만들어진 버퍼의 크기로 k 또는 w로 표기
      • 윈도우 크기가 k라고 하면 각 프레임은 모듈러 k한 번호를 부여받음(0~k-1)
      • 송신 측 윈도우
        • 전송한 프레임 수만큼 윈도우 크기가 감소
          • k=7, 3개를 전송했다고 하면 현재 윈도우 크기는 4
        • 수신 측에서 ACK(n)이라는 응답을 받으면 오른쪽으로 n만큼 확장됨
          • ACK(3) 응답을 받으면 오른쪽으로 3만큼 다시 확장되어 7이 됨
        • 그림
      • 수신 측 윈도우
        • ACK 프레임을 전송하기 전 수신될 수 있는 프레임 수를 나타냄
          • k=7일 때, 수신된 프레임이 3개(0,1,2)임
          • 이전에 수신된 프레임이 없으므로 3-0 = 3 이므로 오른쪽으로 3만큼 확장
    • k > 1
    • 윈도우 값이 고정인 경우 - Sliding window
    • 윈도우 값이 가변인 경우 - Pacing window, Credit window
      • Pacing window
        • 송신 측이 Pacing REQ(버퍼 크기) 프레임을 전송함
        • 수신 측은 크기에 해당하는 버퍼를 만들고 Pacing RES(버퍼 크기) 프레임을 전송함
        • 이동통신, 위성 통신과 같은 대용량 통신에서 주로 사용함
      • Credit window
        • I을 보낼 때 Credit bit를 함 께 보냄
        • Credit bit에 따라 수신 측은 윈도우 용량을 늘림
        • 송신 측은 수신 측이 윈도우 용량을 늘렸는지 안 늘렸는지는 알지 못함
  • 오류제어(Error Control)

    오류 검출(Error Detection)

    • ARQ(Automatic Repeat reQuest)

    오류 정정(Error Correction)

    • FEC(Forward Error Correction)

    오류제어의 종류

    1. 에러를 무시하는 경우
      • 말 그대로 발생한 에러를 무시함
    1. loop 또는 echo에 의한 점검
    1. Error 검출 후 재전송(ARQ)
      1. Stop and Wait ARQ(SAW)
        1. 전송 스테이션(Source)은 전송한 프레임의 ACK를 받을 때까지 프레임의 복사본을 유지
        1. 식별을 위해 데이터 프레임과 ACK 프레임은 각각 0, 1의 값으로 번호를 부여함. 데이터 프레임 1에 대해서 ACK 프레임 1을 수신받는데, 이는 다음에 보내는 데이터는 데이터 프레임 0 을 보내라는 의미임
        1. 만약 프레임에서 오류가 발견되면 NAK 프레임이 반환되고, 이에 따라 전송 측은 복사해두었던 동일한 프레임을 재전송함
        1. 전송장치에는 타이머가 있어서 주어진 시간 내에 ACK가 오지 않으면 재전송을 수행함
        • 효율이 떨어져 잘 사용되지 않음
      1. 연속적(continuous) ARQ
        1. GBn ARQ(Go-Back-N)
          • 오류가 발생한 데이터 프레임부터 재전송하는 방식
          • 오류가 발생한 프레임~그 이후에 전송된 프레임은 폐기
          • 오류가 발생한 프레임부터 마지막 데이터 프레임까지 재전송함
          • 구현이 비교적 간단하고 효율성이 향상되어 가장 널리 사용됨
        1. SR ARQ(Selective Repeat)
          • 오류가 발생한 데이터 프레임만 재전송하는 방식
          • 효율이 가장 좋고 동시에 복잡함
          • 적절한 상황에서 사용됨
        1. 적응적(Adaptive) ARQ - 연구 중
    1. 전진 에러수정(Forward Error Correction)

HDLC

대표적인 비트 방식의 데이터링크 프로토콜. High Level Data Link Communication의 약어.

  • 1979년 ISO에서 데이터링크 표준으로 채택한 대표적인 비트 방식 프로토콜
  • 1975년 IBM에서 개발한 SDLC에 기초함
  • 오늘날 사용되는 대부분의 데이터링크 프로토콜은 HDLC를 기본으로 해서 개발됨
  • 네트워크 구조, 기기, 종류와 무관하게 독립적으로 운영됨
  • 오류 제어: 연속적 ARQ, 선택적 ARQ(GBn, SR)
  • 데이터링크 상에서 단이중, 반이중, 전이중 모두 가능
  • 3개의 스테이션, 2개의 링크 구성 방식, 3개의 데이터 전달모드를 정의함

스테이션

  • 주 스테이션(primary station): 명령을 전송함
  • 종속 스테이션(secondary station): 명령에 응답함
  • 혼합 스테이션(combined station): 명령과 응답 모두 전송함. 오늘날 발전된 컴퓨터 사양으로 대부분 혼합 스테이션임

링크 구성 방식

  • 불균형 구성 방식(unbalanced configuration): 주 스테이션과 종속 스테이션만으로 데이터링크를 구성하는 방식
    • SNRM, SARM이 불균형 구성 방식(주-종속 관계이기 때문에)
  • 균형 구성 방식(balanced configuration): 두 개의 혼합 스테이션으로 데이터링크를 구성하는 방식
    • SABM은 두 혼합 스테이션이기 때문에 균형 구성 방식
    • 오늘날 대부분은 균형 구성 방식(클라이언트-서버 관계)

HDLC 프레임의 종류와 동작

  • 프레임 구성
    • F(Flag) - 프레임 단위를 구분하기 위한 비트. 01111110 으로 start/stop 영역이 맨 앞과 맨 뒤에 붙음
    • A(Address) - 주소 영역으로, Destination 주소가 들어감
    • C(Control) - 제어 영역으로, 이 영역에 따라 I의 해석이 달라짐
    • I(Information) - I-프레임에만 있으며, 크기는 일반적으로 8비트의 배수가 됨
    • FCS(Frame Check Sequence) - 프레임의 오류 유무를 체크함. CRC 알고리즘 사용
  • 프레임 관련 용어
    • N(S): 전송 프레임 일련번호
    • P/F: 폴/파이널
    • N(R): 예상되는 다음 프레임 일련번호

I-프레임(Information)

사용자 정보를 전송하는 프레임

  • 명령 기호 및 프레임 구성
  • 구분 비트 - 0

S-프레임(Supervisor)

오류제어를 관리하고 감시하는 프레임

  • 구분 비트(앞 두 자리) - 10
  • 명령 기호 및 프레임 구성
    • RR: 요청을 잘 받았다는 응답
    • RNR: 요청을 받긴 했으나 현재 Busy 상태로 일정 시간 후에 다시 요청을 하라는 응답
      • A가 k=3인 B와 CE 과정을 거친 후 데이터를 I(0,0), I(1,0), I(2,0)을 송신함
      • B는 이미 C와 통화중이었음. I(0,0)만 수신하고 RNR(1) 응답을 함
      • A는 일정 시간 후에 I(1,0), I(2,0)을 다시 송신함
      • 첫 번째 재전송 때
    • REJ: GBn 응답
    • SREJ: SR 응답

U-프레임(Unnumbered)

링크의 연결과 해제와 관련하여 쓰이는 프레임

  • 구분 비트(앞 두 자리) - 11
  • SNRM: Set NRM(정규 응답모드 세팅)
    • 주 스테이션 - 종속 스테이션 구성의 불균형 모드
    • 종속 스테이션에서 데이터를 전송하려면 주 스테이션의 허락이 필요함
  • SARM: Set ARM(비동기 응답모드 세팅)
    • 주 스테이션 - 종속 스테이션 구성의 불균형 모드
    • 주 스테이션의 허락없이 종속 스테이션에서 데이터 전송 가능
  • SABM: Set ABM(비동기 균형 모드 세팅)
    • 두 혼합 스테이션으로 구성된 균형 모드
    • 양쪽에서 명령과 응답을 전송할 수 있음
    • 현재 이 방식이 가장 많이 사용됨
  • DISC: 연결 종료 요청
  • UA: 연결 가능하다는 응답
  • DM: 연결 종료의 긍정적 응답

데이터링크의 통신 과정을 HDLC 방식으로 변환

투과성

HDLC 프레임 내의 비트열이 플래그(01111110)과 같은 비트열이 삽입됨면 시작 또는 종료 플래그로 인식될 염려가 있음므로 프레임 중에서 플래그를 제외한 부분에서 1이 5개 이상 연속되어 있으면, 송신측에서는 5개 다음에 0을 삽입하여 송신하고 수신측에서는 5개 연속된 1 다음의 0을 제거하여 수신하는 방식을 투과성(Transparency) 또는 제로 삽입(zero insertion)이라고 함. 0을 제거하는 것은 제로 삭제(zero deletion)라고 함.

또한 이렇게 비트를 삽입/삭제하여 투과성을 유지하는 방식을 Bit Stuffing 방식이라고 부름

오류 제어

  • 오류 제어 - 검출과 정정으로 나뉨
  • 오류 검출에는 3가지 검출이 있음
    1. 탐지된 에러(분실, 전송 오류 등)
    1. 에러 없음
    1. 탐지되지 않은 비트 에러 → 잔여에러율
  • 오류 검출에는 패리티 비트, LRC, VRC, CRC 등이 있음

CRC

  1. 등장배경
    • 수평, 수직의 패리티 비트 체크 방식은 전송로 특유의 연속한 bit 변화(버스트 에러)에 대처할 방법이 없음
    • HDLC에서 전송 프레임 중 임의의 n 비트의 FCS를 부가한 코드를 넣어 오류검출을 수행함
    • Burst Error = 집단성 에러, 군집성 에러
  1. CRC 정의
    • 순환반복검사, 순환중복검사
  1. 설계 방법
    1. 모듈러 - 2 연산
    1. 다항방정식(Polynomial Equation)
      • 비트 문자열을 0과 1의 계수를 가진 다항식으로 표현함
      • k 비트 프레임은 \( Xk−1X^ 에서X0X^0까지 k \)항을 가지는 다항식의 계수 리스트로 간주됨
      • 즉 k-1차 다항식이 됨
      • 제일 왼쪽 비트는Xk−1X^의 계수이고, 다음은Xk−2X^의 계수임. 이런 식으로 나머지도 계산됨
      • 예를 들어 110001을 다항식으로 표현하면X5+X4+X0X^5 + X^4 + X^0과 같음
  1. 과정
    1. 데이터에 n비트로 구성된 데이터를 붙이고 (n+1)비트인 G(x)로 moduler-2 연산하여 CRC 코드 생성
    1. 데이터 + CRC로 이루어진 비트열 생성 후 전송
    1. 수신 측은 G(x)로 비트열을 moduler-2 연산하여 나머지를 계산
    1. 나머지가 0이면 정상 수신, 아니라면 오류 발생을 의미함
  1. 사례해석
    1. P = 110011, 메시지가 11100011 일 때 CRC를 구하시오
      • P가 6비트이므로 메시지에 n-1인 5비트만큼 0을 추가합니다. 그리고 그 값을 P로 moduler-2 연산을 합니다.
      • 연산 결과 CRC는 11010 입니다
    1. 메시지가 1001101100일 때 CRC 방식에 의한 5비트의 체크 시퀀스를 구하시오. 단, 생성 다항식은X5+X4+X2+X0X^5+X^4+X^2+X^0 으로 한다.
      • 입력 신호인 1001101100 을 다항식으로 변환하면X9+X6+X5+X3+X2X^9+X^6+X^5+X^3+X^2
      • 생성 다항식G(x)=X5+X4+X2+X0G(x) = X^5+X^4+X^2+X^0
      • 체크 시퀀스를 구하기 위해서는 (P(x) * G(x)의 최고차항) / G(x)를 해야 함
      • P(x) * G(x)의 최고차항을 한 값은X14+X11+X10+X8+X7X^+X^+X^+X^8+X^7
      • 이를 G(x)로 나눔
      • 몫 Q(x) =X9+X8+X7+X6+X5+X4+X2+XX^9+X^8+X^7+X^6+X^5+X^4+X2+X
      • 나머지 R(x) =X3+X2+X1X^3+X^2+X^1
      • 따라서 5비트의 체크 시퀀스는 01110이 됨

표준화

  • IEEE 802 시리즈
  • 2개의 부계층(sub-layer)으로 구성됨
    • LLC(Logical Link Control)과 MAC(Media Access Control)
  • 제품은 3가지 테스트를 거침
    • 적합성 시험 - 규격의 일치
    • 동작성 시험 - 정상 동작
    • 성능 시험 - 제품의 성능

'Computer Sciences > Network' 카테고리의 다른 글

부호화, 동기-비동기, 다중화방식  (0) 2021.05.17
신호와 대역폭, 통신용량  (0) 2021.05.17
데이터통신 태스크, OSI 용어  (0) 2021.05.17
표준화, 통신과 방송  (0) 2021.05.17