All Articles

컴퓨터 네트워크 강의 - 6장. 데이터링크 계층 (1) 프로토콜의 기초

6장. 데이터링크 계층

(1) 프로토콜의 기초

강의 목표

  • 라우팅 기능과 주요 프로토콜 이해

연결 구성

연결 구성도

  • 점대점(point-to-point): 직접 묶여있어 받을 주소를 지칭할 필요 없음
  • 멀티드롭(multi drop): 주소(address) 개념 필요

프레임 종류

  • 정보 프레임

    • I 프레임 (Information)
    • 상위 계층이 전송 요구한 데이터를 송신하는 용도
    • 순서번호, 송수신 호스트 정보 등이 포함됨
  • 긍정 응답 프레임

    • ACK 프레임 (Acknowledge)
    • 전송 데이터가 올바르게 도착했음을 회신하는 용도
    • 데이터를 수신한 호스트가 데이터를 송신한 호스트에게 전송
  • 부정 응답 프레임

    • NAK 프레임 (Negative Acknowledge)
    • 전송 데이터가 깨져서 도착했음을 회신하는 용도
    • 데이터를 수신한 호스트가 데이터를 송신한 호스트에게 전송
    • 데이터를 송신한 호스트는 원래 데이터를 재전송하여 오류 복구
  • 긍정 응답, 부정 응답 프레임 모두 회신하고자 하는 I 프레임 순서 번호 포함. 제대로 도착한 프레임과 오류가 발생한 프레임 판단 가능

몇 가지 프로토콜을 예시로 들어 각 상황에서 어떻게 동작하는지 알아보자.

오류, 흐름 제어가 없는 프로토콜 (단순 프로토콜)

  • 가정(조건)

    • 단방향 통신: 송신 호스트에서 수신 호스트 한쪽으로만 데이터 전송
    • 전송 오류가 없는 물리 매체: 오류 제어 기능이 필요 없음
    • 무한 개의 수신 버퍼: 흐름 제어 기능이 필요 없음

단순 프로토콜

  • 송신 호스트는 원하는 만큼 자유롭게 프레임을 전송할 수 있음
  • 프레임 분실/변형 오류가 발생하지 않으므로 오류 제어 없음
  • 수신 버퍼가 무한이므로 분실 오류 없음
  • 순서번호도 불필요
  • 하지만 이런 프로토콜은 현실적으로 불가능

오류 제어가 없는 프로토콜 (정지-대기 프로토콜)

  • 가정(조건)

    • 단방향 통신: 송신 호스트에서 수신 호스트 한쪽으로만 데이터 전송
    • 전송 오류가 없는 물리 매체: 오류 제어 기능이 필요 없음
    • 유한 개의 수신 버퍼: 버퍼 부족으로 프레임 분실 가능

정지-대기 프로토콜

  • 정지대기(STOP-AND-WAIT)란?

    • 하나의 프레임 전송 후 응답 대기
    • 전송 효율이 떨어지므로 잘 사용하지 않음
  • 수신 버퍼 수가 유한하므로 흐름 제어(STOP-AND-WAIT) 필요
  • 이전 프레임을 잘 받았다는 긍정 응답 기능과 수신 호스트가 송신 호스트의 전송 시점을 지정하기 위한 ACK 프레임 필요 (오류 제어 개념이 아님)
  • 하지만 이 응답 프레임마저 분실될 수 있어 프레임을 또 보낼 수 있기 때문에(중복 수신) 순서 번호 필요
  • 가장 단순한 프로토콜

단방향 프로토콜

  • 가정(조건)

    • 단방향 통신: 송신 호스트에서 수신 호스트 한쪽으로만 데이터 전송
    • 전송 매체 오류 발생 가능
    • 버퍼 유한
  • NAK가 없는 경우 1 단방향 프로토콜 - NAK가 없는 경우 1 - 정보 프레임 분실 - 주어진 시간 내 응답(ACK 또는 NAK)이 오지 않았기 때문에 분실로 인지하고 프레임 재전송 (타임아웃 기능)
  • NAK가 없는 경우 2 단방향 프로토콜 - NAK가 없는 경우 2 - ACK 프레임 분실 - 수신 호스트로부터 응답이 오지 않은 경우와 동일하게 처리 - i번 프레임을 수신했다는 응답을 보냈는데 또 전송된 것으로 응답이 분실됐음을 판단하여 응답을 재전송하는 것으로 오류 극복
  • NAK가 없는 경우 3 단방향 프로토콜 - NAK가 없는 경우 3 - 정보 프레임 변형 - 따라서 수신 호스트에서 응답이 나가지 않음 - 위 두 가지 케이스와 동일하게 처리
  • NAK가 있는 경우 1 단방향 프로토콜 - NAK가 있는 경우 1 - 정보 프레임 변형 - 변형된 프레임을 무시하여 프레임 분실 오류와 동일하게 처리 - NAK가 없는 경우와 동일하게 처리 (타임아웃으로 재전송)
  • NAK가 있는 경우 2 단방향 프로토콜 - NAK가 있는 경우 2 - 정보 프레임 변형 - NAK를 이용하여 데이터 오류 통보 - 통보 받은 송신 호스트가 데이터 재전송 - 타임아웃이 되기 전 데이터를 재전송하므로 시간이 덜 걸리므로 NAK 응답이 없는 경우보다 더 효율적 - 그러나 다른 요인에 의해 NAK를 사용하지 못하는 경우도 있음