데이터 링크 오류제어
데이터 링크 오류제어는 비트 오류를 검출하고, 정정하거나 재전송으로 복구하는 기능이다. 전선이나 무선에서 보낸 0과 1이 도중에 바뀌면, 링크 계층이 이를 찾아내 처리한다. 오류제어는 검출, 정정, 재전송 세 요소로 구성된다. 정정과 재전송은 서로 다른 방식이다. 검…
주요 장면
대본
오류제어의 정의
데이터 링크 오류제어는 비트 오류를 검출하고, 정정하거나 재전송으로 복구하는 기능이다.
전선이나 무선에서 보낸 0과 1이 도중에 바뀌면, 링크 계층이 이를 찾아내 처리한다.
오류제어는 검출, 정정, 재전송 세 요소로 구성된다. 정정과 재전송은 서로 다른 방식이다.
오류 검출: 패리티와 CRC
검출은 수신 프레임이 손상됐는지 판정하는 단계다.
패리티 비트는 1비트 오류를 확실히 찾지만, 짝수 개 오류는 놓친다.
CRC는 다항식 나눗셈으로 중복 비트를 만들어 여러 비트 오류까지 검출한다.
검출만으로는 오류가 있다는 사실만 알 수 있다.
오류 정정: FEC와 ARQ
오류 정정은 FEC와 ARQ로 나뉜다. 두 방식은 같은 중복 비트를 쓰지만 되돌림 채널 사용이 다르다.
FEC는 수신측이 스스로 정정하므로 재전송이 없어 지연이 짧다.
ARQ는 되돌림 채널로 ACK와 NAK를 받아, 오류 프레임을 다시 보낸다.
실시간 음성과 위성 방송은 FEC, 양방향 데이터 전송은 ARQ가 어울린다.
ARQ 세 가지 방식
ARQ는 재전송 단위에 따라 세 가지로 나뉜다. 윈도우 크기와 수신 버퍼 요구가 다르다.
Stop-and-Wait는 윈도우가 1이라 가장 단순하고, 프레임 1개만 다시 보낸다.
Go-Back-N은 오류 프레임 이후를 모두 다시 보내며, 수신측 버퍼는 필요 없다.
Selective Repeat은 오류 프레임만 재전송하지만 수신측 재조합 버퍼가 필요하다.
직접 풀어 보자.
연속 전송의 채널 이용률
앞 문제의 정답은 프레임 3부터 이후 전부 재전송이다. 이제 이용률을 계산해 보자.
이용률은 윈도우 크기 W, 프레임 전송 시간 t_f, 왕복 지연 RTT로 정해진다.
가상의 링크에서 t_f는 1ms, RTT는 9ms, 윈도우 7로 가정한다.
W가 1이면 0.1, W가 7이면 0.7이 된다.
시험에 자주 나오는 실수
앞 문제의 정답은 증가한다. 윈도우가 커지면 이용률이 올라간다.
헷갈리기 쉬운 점은 검출과 정정을 같은 말로 쓰는 실수다.
Go-Back-N과 Selective Repeat은 재전송 범위가 달라 반드시 구분해 적는다.
Stop-and-Wait의 순번은 중복 프레임 구별용이며, 타임아웃도 함께 쓴다.
오류 복구 절차 정리
정리하면 오류 복구는 프레임 전송, 손상 검사, ACK 또는 재전송 순서로 진행된다.
정상이면 ACK를 보내고, 오류이거나 타임아웃이 나면 해당 프레임을 재전송한다.
재전송 횟수가 정해진 한도를 넘으면 오류 복구를 포기하고 상위 계층에 알린다.
무선 구간은 FEC와 ARQ를 결합한 하이브리드 ARQ를 쓴다는 점을 기억한다.