6. 데이터 링크 계층 (1)

윤주원·2023년 7월 20일
0

컴퓨터 네트워크

목록 보기
6/15
post-thumbnail

데이터 링크 계층

기초

  • 데이터 링크 계층에서 두 호스트가 통신하려면 일대일(1:1)형식의 점대점 방식으로
    연결되어야 함
  • 점대점 연결 : 주소 개념 불필요
  • 멀티드롭 연결 : 주소 개념 필요
  • 물리 계층에서 오류 제어 방식으로 재전송 기법을 사용

프레임 종류

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

  • 긍정 응답 프레임 ( ACK 프레임 )
    : 전송 데이터가 올바르게 도착했음을 회신하는 용도(받은 숫자에 +1 )
    : 데이터를 수신한 호스트가 데이터를 송신한 호스트에게 전송

  • 부정 응답 프레임 ( NAK 프레임 )
    : 전송 과정에서 프레임 변형 오류가 발생했음을 회신하는 용도 (받은 숫자 그대로)
    : 원래의 정보 프레임을 재전송하도록 요청
    : 송신 호스트는 오류가 발생한 프레임을 동일한 순서 번호로 다시 전송

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

  • 가정 : 가장 이상적인 통신환경
    : 단방향 통신 – 데이터는 송신 호스트에서 수신 호스트로만 전달
    : 전송 오류 없는 물리 매체 : 통신 채널에서는 전송 오류가 발생하지 않음
    : 무한 개의 수신 버퍼 : 수신 호스트의 버퍼 수는 무한함

  • 단순 프로토콜
    : 송신 호스트는 원하는 만큼 자유롭게 프레임을 전송할 수 있음
    : 오류 제어 – 프레임 분실/변형 오류가 발생하지 않음
    : 흐름 제어 – 수신 버퍼가 무한이므로 분실 오류 없음

오류 제어만 없는 프로토콜 (흐름제어 존재 : 가득차면 ack를 늦게 보내며 조절)

사진 오류 > 응답 프레임이 정보 프레임보다 1씩 커야됨
  • 가정 : 수신 호스트의 버퍼 개수가 유한
    : 단방향 통신 – 데이터는 송신 호스트에서 수신 호스트로만 전달
    : 전송 오류가 없는 물리 매체 : 통신 채널에서는 전송 오류가 발생하지 않음

  • 정지-대기(Stop and Wait) 프로토콜
    : 수신 호스트 버퍼 개수가 유한할 경우, 흐름 제어 기능으로 송신 호스트의 전송 속도를 조절함
    : ACK 프레임 – 송신 호스트에 긍정 응답의 기능을 수행, 다음 프레임을 전송하도록 지시하는 흐름 제어 기능도 수행
    : 정지-대기 방식 – 수신 호스트가 회신하는 ACK프레임이 도착해야 다음 프레
    임을 전송할 수 있는 프로토콜 방식

단방향 프로토콜

  • 가정 : 오류 제어와 흐름 제어 기능 지원
    : 단방향 통신 – 데이터는 송신 호스트에서 수신 호스트로만 전달

  • 오류 제어와 흐름 제어가 모두 필요

  • 프레임 변형 오류를 해결하기 위한 수신 호스트의 NAK 기능 필요

  • 프레임 분실 오류를 해결하기 위한 송신 호스트의 Timeout 기능 필요

NAK가 없는 경우

  • 정보 프레임 분실 : 송신 호스트의 타임아웃 기능으로 오류 복구
  • ACK 프레임 분실 : 송신 호스트의 타임아웃 기능으로 오류 복구
  • 프레임 변형 오류 : 송신 호스트의 타임아웃 기능으로 오류 복구

NAK가 있는 경우

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

  • 프레임 변형 오류 : 수신 호스트의 NAK 프레임 응답으로 오류 복구

    쉽게 표로 설명



슬라이딩 윈도우 프로토콜

  • 실제 환경에서는 대부분 양방향 통신이 이루어지며, 오류 제어와 흐름 제어 기능을 모두 지원한다.

  • 송신 호스트는 정보 프레임(전송 데이터, 순서 번호, 오류 검출 코드)을 순서 번호에 따라 순차적으로 전송함

  • 정보프레임 +1 로 ACK를 보냄

  • 송신 윈도우는 전송은 되었지만 긍정 응답이 회신되지 않은 프레임을 보관함

  • 수신 윈도우는 프로토콜의 방식에 따라 다름

흐름제어

  • 윈도우 크기
    : 수신 호스트로부터 긍정 응답 프레임을 받지 않고 전송할 수 있는 정보 프레임의 최대 개수
사진 설명
  1. 그림에서 처음에는 0,1,2를 보낼 준비 후 0 전송
  2. 0을 받았으니 ACK를 전송 (그림은 0이라 되어있지만 다음 받을 번호를 보내야됨)
  3. 윈도우가 옆으로 이동 후 1 전송
  4. 다시 1을 받았으니 ACK전송
  5. 윈도우가 다시 옆으로 이동
  6. 2개를 한번에 받을경우

연속형 전송

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

  • 연속형 전송 : ACK 프레임을 받지않고 여러 프레임을 연속 전송
    : 오류 가능성이 적은 환경에서 효율적인 장점

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

정지대기 프로토콜

사진 설명
  1. 송신기에서 0을 전달
  2. 수신기에 잘 도착하여 ACK 1 보냄
  3. 송신기에서 1 전송
  4. 중간에 데이터 분실
  5. 타임아웃 시작후 다시 재전송
  6. 수신기에 잘 도착하여 ACK0보냄

고백 N (Go-Back-N) 방식

– 오류가 발생한 프레임을 포함해 이후에 전송된 모든 프레임을 재전송

사진 설명
  1. 10~17 까지 데이터 전송
  2. 12에서 전송 오류
  3. 13부터 다 버림
  4. ACK11(11까지 받음),NAK12 (12오류)전송
  5. 다시 12부터 전송
  • 송신창

  • 수신창

  • ACK 누락

이 부분은 정지대기 프로토콜과 비슷함

  • 데이터 누락
사진 설명
  1. frame 1이 누락 된 상태에서 2,3 이 전송됨
  2. 수신부는 아직 1을 기다리는 상태(2,3을 수신하지 않음)
  3. 송신부는 수신부에서 반응이 없자 다시 1을 보냄
  4. 다시 정상적으로 송/수신
  • 요약
  • 고백 N에서는 송신창의 크기는 2^m보다 작아야 하며, 수신창의 크기는 항상 1이다.

선택적 재전송(Selective Retransmission) 방식

  • 오류가 발생한 프레임만 선택적으로 복구하는 방식

  • 송신창

  • 수신창

  • 데이터 누락

  • 말 그대로 누락이 된 frame만 재전송

  • 요약

  • 선택적 재전송에서는 송신 창과 수신창의 크기는 최대 2^m의 절반이다

피기 배킹 (Piggybacking)

  • 정보 프레임을 전송하면서 응답기능까지 함께 수행, 전송 효율을 높임

  • 피기배킹을 사용하지 않는 경우

  • 피기배킹을 사용하는 경우
    : 정보 프레임의 표기방식을 I(i, j)로 재정의
    : i는 자신이 전송하는 데이터의 순서 번호, j는 제대로 수신한 프레임의 순서 번호를 의미

profile
안녕하세요

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

너무 좋은 글이네요. 공유해주셔서 감사합니다.

답글 달기