데이터 링크 계층

이정민·2022년 4월 20일
0

네트워크

목록 보기
7/12
  • 데이터 링크 계층에서 두 호스트가 통신하려면 일대일 형식의 점대점 방식으로 연결해야 함
  • 점대점 연결: 주소 개념 불필요
  • 멀티드롭 연결: 주소 개념 필요
  • 물리 계층에서 오류 제어 방식으로 재전송 기법을 사용
  • 데이터 링크 계층의 주요 기능은 두 호스트 간 물리적 오류 복구

프레임의 종류

정보 프레임

  • 상위 계층이 전송을 요구한 데이터를 수신 호스트에 전송하는 용도로 사용
  • 순서번호, 송수신 호스트 정보 등이 포함됨

긍정 응답 프레임 (ACK 프레임)

  • 전송 데이터가 올바르게 도착했음을 회신하는 용도
  • 데이터를 수신한 호스트가 데이터를 송신한 호스트에게 전송

부정 응답 프레임 (NAK 프레임)

  • 전송 과정에서 프레임 변형 오류가 발생했음을 회신하는 용도
  • 원래의 정보 프레임을 재전송하도록 요청
  • 송신 호스트는 오류가 발생한 프레임을 동일한 순서 번호로 다시 전송

오류, 흐름 제어가 없는 프로토콜

  • 가정: 이상적인 통신환경
    • 단방향 통신: 데이터는 송신 호스트에서 수신 호스트로만(한쪽 방향으로만) 전달
    • 전송 오류 없는 물리 매체: 통신 채널에서는 전송 오류가 발생하지 않음
    • 무한 개의 수신 버퍼: 수신 호스트의 버퍼 수는 무한함
  • 단순 프로토콜
    • 송신 호스트는 원하는 만큼 자유롭게 프레임을 전송할 수 있음
    • 오류 제어 (X): 프레임 분실/변형 오류가 발생하지 않음
    • 흐름 제어 (X): 수신 버퍼가 무한이므로 분실 오류 없음

오류 제어가 없는 프로토콜

  • 가정: 수신 호스트의 버퍼 개수가 유한(버퍼 개수 제한)
    • 단방향 통신: 데이터는 송신 호스트에서 수신 호스트로만(한쪽 방향으로만) 전달
    • 전송 오류 없는 물리 매체: 통신 채널에서는 전송 오류가 발생하지 않음
  • 유한 버퍼
    • 송신 호스트가 프레임을 빠르게 보내면 프레임 분실
    • 흐름 제어 필요
  • 흐름 제어
    • 수신 호스트가 송신 호스트의 전송 속도를 조절함
    • 수신 호스트는 정보 프레임 수신 후 ACK 프레임 회신
  • 정지-대기 프로토콜
    • ACK 프레임
      • 송신 호스트에 긍정 응답의 기능을 수행
      • 다음 프레임을 전송하도록 지시하는 흐름 제어 기능도 수행
    • 정지-대기 방식
      • 수신 호스트가 회신하는 ACK 프레임이 도착해야 다음 프레임을 전송할 수 있는 프로토콜 방식

단방향 프로토콜

  • 가정: 오류 제어와 흐름 제어 기능 지원

    • 단방향 통신: 데이터는 송신 호스트에서 수신 호스트로만(한쪽 방향으로만) 전달
  • 유한 버퍼

    • 흐름 제어 필요, 정상 수신 ACK
  • 오류가 있는 채널

    • 프레임 분실 및 변형 가능
    • 프레임 변형 오류를 해결하기 위한 수신 호스트의 NAK 기능 필요
    • 프레임 분실 오류를 해결하기 위한 송신 호스트의 타임아웃 기능 필요
  • NAK가 없는 경우

    • 정보 프레임 분실: 송신 호스트의 타임아웃 기능으로 오류 복구
    • ACK 프레임 분실: 송신 호스트의 타임아웃 기능으로 오류 복구
      • 수신 호스트가 같은 프레임을 중복 수신하는 것을 구별할 수 없다.
    • 프레임 변형 오류: 송신 호스트의 타임아웃 기능으로 오류 복구
      • 수신 호스트가 ACK를 보내지 않는다.
  • NAK가 있는 경우

    • 프레임 변형 오류: 수신 호스트의 NAK 프레임 응답으로 오류 복구
    • 프레임 분실 오류: 송신 호스트의 타임아웃 기능으로 오류 복구

슬라이딩 윈도우 프로토콜

  • 양방향 통신 지원
  • 오류 제어와 흐름 제어 기능을 모두 지원

기본 절차

  • 송신 호스트는 정보 프레임(전송 데이터, 순서 번호, 오류 검출 코드)을 순서 번호에 따라 순차적으로 전송함
  • 정보 프레임을 수신한 수신 호스트가 응답하는 순서 번호는 정상적으로 수신한 번호가 아닌 다음에 수신하기를 기대하는 번호를 회신하는 것이 일반적임
  • 송신 호스트가 관리하는 송신 윈도우는 전송은 되었지만 긍정 응답이 회신되지 않은 프레임을 보관함
  • 수신 호스트가 관리하는 수신 윈도우는 프로토콜의 방식에 따라 크기가 다름
    • 고백 N 방식에서는 크기가 1임
    • 선택적 재전송 방식에서는 송신 윈도우 크기와 같음

흐름 제어

  • 순서 번호

    • 프레임 별로 부여되는 일련 번호
    • 0 부터 임의의 최댓값까지 순환 방식으로 사용
    • 일반적으로 순서 번호의 최댓값이 송신 윈도우 크기보다 커야 함
    • 프레임에서 순서 번호의 공간 크기 = n 비트: 순서 번호의 범위는 0 ~ 2^n -1
  • 송신 호스트의 윈도우 크기

    • 수신 호스트로부터 긍정 응답 프레임을 받지 않고 전송할 수 있는 정보 프레임의 최대 개수
  • 송신 호스트

    • 프레임을 전송하고 윈도우에 보관한다.
    • ACK를 받고나서 윈도우에서 제거한다.

연속형 전송

  • 정지-대기 프로토콜은 송신 윈도우 크기가 1인 경우

  • 연속형 정지: ACK 프레임을 받지 않고 여러 프레임을 연속 전송

  • ACK(번호)

    • ACK 프레임에 프레임 번호 포함
    • 해당 번호까지 올바로 수신한 프레임 번호
  • 장점: 오류 가능성이 적은 환경에서 효율적

  • 오류 해결 방법

    • 고백 N: 오류가 발생한 프레임 이후의 모든 프레임을 재전송
    • 선택적 재전송: 오류가 발생한 프레임만 재전송
  • 고백 N 방식

    • 오류가 발생한 12번 프레임을 포함해 이후에 전송된 모든 정보 프레임을 재전송
    • 수신 버퍼는 한 개만 필요, 윈도우 크기 = 1
  • 선택적 재전송 방식

    • 오류가 발생한 프레임만 선택적으로 복구
    • 부정 응답 프레임을 사용해 오류가 발생한 정보 프레임을 처리하는 경우
    • 수신 윈도우 크기 = 송신 윈도우 크기

피기배킹

  • 정보 프레임을 전송하면서 응답 기능까지 함께 수행, 전송 효율 높임
    • 피기배킹을 사용하지 않는 경우
      • 개별 정보 프레임에 대해 긍정 응답 혹은 부정 응답 프레임이 순서 번호와 함께 별도 처리
    • 피기배킹을 사용하는 경우
      • 정보 프레임의 표기방식은 I(i,j)로 재정의
      • i는 자신이 전송하는 데이터의 순서 번호, j는 제대로 수신한 프레임의 순서 번호를 의미

HDLC 프로토콜

  • 데이터 링크 프로토콜 사례
  • 일대일 혹은 일대다로 연결된 환경에서 데이터의 송수신 기능 제공
  • 호스트 종류
    • 주국에서 전송되는 메세지를 명령이라 정의
    • 종국의 회신을 응답이라 함
    • 혼합국: 주국과 종국 기능을 모두 지닌 호스트
  • 명령과 응답
    • 명령: 주국에서 종국으로 보내는 메세지
    • 응답: 종국의 회신
  • HDLC 프레임 구조
    • 프레임 좌우에 위치한 01111110 플래그는 프레임의 시작과 끝을 구분
    • Address: 일대다 환경에서 특정 호스트를 구분, 지칭하는 목적으로 사용
    • Control: 프레임의 종류를 구분
    • Data: 가변 크기의 전송 데이터가 포함
    • Checksum: CRC-CCITT를 생성 다항식으로 하는 오류 검출 용도로 사용

프레임 종류

  • 정보 프레임
    • 네트워크 계층의 데이터 전송을 위해 정의
    • 3비트의 순서 번호를 이용한 슬라이딩 윈도우 프로토콜을 사용
    • 순서 번호는 0~7의 순서 번호 8개를 순환하여 사용
    • Seq: 정보 프레임의 송신용 순서 번호로 사용
    • Next: 피기배킹을 이용한 응답 기능으로 사용
    • P/F: 값이 1로 지정되었을 경우에 한하여 Poll 혹은 Final의 의미를 갖음
      • Poll: 주국의 명령 프레임으로 사용될 때
      • Final: 종국의 응답 프레임에서 사용될 때
  • 감독 프레임
    • 정보 프레임에 대한 응답 기능을 수행하는 프레임
    • 긍정 응답 프레임과 부정 응답 프레임으로 구분
    • Type 0: RR로 정의된 ACK
    • Type 1: REJ로 정의된 NAK
    • Type 2: RNR(Receive not ready)로 정의된 응답 프레임으로 흐름 제어 기능까지 제공
    • Type 3: SREJ(Selective Reject)로 정의된 프레임, 선택적 재전송 방식에서 부정 응답 기능을 지원
  • 비번호 프레임: 순서 번호가 없는 프레임을 정의
    • 프레임 종류
      • SNRM: 정규 응답 모드의 연결 설정을 요구
      • SABM: 비동기 균형 모드의 연결 설정을 요구
      • SARM: 비동기 응답 모드의 연결 설정을 요구
      • DISC: 연결 설정 해제를 요구
      • RSET: 비정상적인 프로토콜의 동작에 따른 리세 기능을 수행
      • FRMR: 비정상적인 프레임의 수신을 거부
      • UA: 비번호 프레임에 대한 응답 기능을 수행
  • 세가지 연결 모드
    • 정규 응답: 불균형 모드를 의미하기 때문에 호스트 하나는 주국으로 동작하고, 다른 하나는 종국으로 동작한다. SNRM을 이용하여 연결 설정을 요구하며, 종국에서 데이터를 전송하려면 반드시 주국의 허락을 받아야 한다.
    • 비동기 균형: 두개의 호스트가 동일한 능력을 갖는 혼합국으로 동작하며, 양쪽에서 명령과 응답을 모두 전송할 수 있다. 따라서 둘 중 임의의 호스트에서 SABM을 이용한 연결 설정 요구를 수행할 수 있다.
    • 비동기 응답: 불균형 모드이나 종국이 주국의 허락 없이도 데이터를 전송할 수 있는 권한을 갖는다. 즉 주국의 허가가 없어도(주국에 의한 P/F 비트의 Poll 지정이 없어도)종국에서 먼저 SARM 응답을 보낼 수 있다.

LAP 프로토콜

비동기 응답 모드인 ARM으로 동작하는 프로토콜

  • 주국에서 전송된 SARM 명령: 종국에서 UA 응답을 전송함으로써 완료
  • 종국에서 주국으로 SARM 응답을 전송하여 연결 설정을 요구, 종국에서 시작된 연결 설정은 3단계로 이루어지는 효과가 발생

LAPB 프로토콜

  • 비동기 균형
  • 양쪽 호스트가 혼합국으로 동작, 누구나 먼저 명령을 전송 가능
profile
으악

0개의 댓글