CHAPTER 04 데이터링크와 전송제어 기법
데이터링크와 회선제어 대표적인 데이터링크 프로토콜 흐름제어 기법 오류제어 기법 4.1 4.4 4.2 4.3 데이터링크 계층의 기능 회선제어 기능 폴링 기법 데이터링크 프로토콜 HDLC 프로토콜이란 감시 프레임(S-프레임)과 U-프레임 HDLC 프레임의 동작 흐름제어 기법 4.2 정지-대기 흐름제어 기법 슬라이딩 윈도우 흐름제어 기법 수신 측 윈도우 오류제어 기법 4.3 정지-대기 ARQ GBn ARQ ARQ SR ARQ와 오류제어 기법의 특성
데이터링크 계층의 기능 데이터링크(data link)란? 회선 규칙 (line discipline) : 4.1 데이터링크와 회선제어 데이터링크 계층의 기능 데이터링크(data link)란? 데이터링크 제어 프로토콜이 적용되는 스테이션 사이의 회선(line) 단방향 (simplex) 전송 : 링크에서의 데이터 흐름이 한쪽 방향만 허용되는 경우 양방향 (duplex) 링크 : 양방향으로 전송 및 수신이 가능한 링크 반이중 (half duplex) 전송 링크 : 양방향 전송이 가능하지만, 동시 전송이 허용되지 않음 전이중 (full duplex) 전송 링크 : 양방향으로 동시전송이 허용 회선 규칙 (line discipline) : 반이중 전송 링크에서 두 개의 스테이션이 동시에 신호를 전송하는 경우 발생하는 신호 간의 충돌현상이 발생하지 않도록 제어하는 규칙 데이터링크 계층 회선제어, 흐름제어, 오류제어 기능 수행
회선제어 기능 ENQ/ACK 기법 전용 전송 링크로 구성된 스테이션 사이에서 주로 사용되는 기법 4.1 데이터링크와 회선제어 회선제어 기능 ENQ/ACK 기법 전용 전송 링크로 구성된 스테이션 사이에서 주로 사용되는 기법 A 스테이션이 ENQ 프레임을 전송하여 연결의 초기화를 진행 B 스테이션은 ACK을 전송하여 데이터 수신 준비되었음을 알림 전송이 완료되면 EOT 프레임 전송 [그림 4-1]
폴링 기법 하나의 스테이션을 주 스테이션으로 지정하고 나머지는 종속 스테이션으로 구성 선택(select) 모드 4. 1 데이터링크와 회선제어 폴링 기법 하나의 스테이션을 주 스테이션으로 지정하고 나머지는 종속 스테이션으로 구성 선택(select) 모드 주 스테이션이 데이터를 전송하고자 할 때 사용하는 모드로, 주 스테이션이 링크에 대한 제어 권한을 가짐. [그림 4-2] 폴(poll) 모드 주 스테이션이 다수의 종속 스테이션에게 보낼 데이터가 있는지의 여부를 확인하여 데이터 전송을 하는 모드 ‘다중점(multipoint) 폴링 절차’ 주 스테이션에서 폴 프레임을 전송하면 전송할 데이터가 없는 종속 스테이션은 NAK를, 전송할 데이터가 있는 종속 스테이션은 ACK를 보냄. [그림 4-3]
정지-대기 흐름제어 기법 흐름제어 : 전송 스테이션으로 부터 전송 데이터의 양을 제한하기 위해서 사용되는 절차 4. 2 흐름제어 기법 정지-대기 흐름제어 기법 흐름제어 : 전송 스테이션으로 부터 전송 데이터의 양을 제한하기 위해서 사용되는 절차 정지-대기(stop-and-wait) 기법 전송 측이 프레임을 전송한 후 각 데이터 프레임에 대한 ACK를 기다려서, 이에 대한 ACK 프레임이 도착하면 그 후에 다음 프레임을 전송하는 기법 EOT 프레임이 전송되면 데이터 전송이 종료 [그림 4-4] 장점 : 정지-대기 기법은 구조가 간단 단점 : 하나의 프레임을 보내고 ACK 프레임이 수신되어야만 그 다음 프레임을 전송할 수 있기 때문에 효율성은 떨어짐
슬라이딩 윈도우 흐름제어 기법 ‘윈도우(window)’란? 전송 측 윈도우 4. 2 흐름제어 기법 슬라이딩 윈도우 흐름제어 기법 전송한 프레임에 대한 ACK 프레임을 수신하지 않더라도, 여러 개의 프레임을 연속적으로 전송하도록 허용하여 전송-대기 기법의 효율성을 개선한 방법 ‘윈도우(window)’란? 전송 및 수신 스테이션 양쪽에서 만들어진 버퍼(buffer)의 크기 전송 측 윈도우 프레임이 전송된 후, 윈도우의 왼쪽 경계가 오른쪽을 향하여 이동하여 그 결과 윈도우의 크기가 줄어듬 [그림4-5] 윈도우의 크기를 W라 하고, 3개의 프레임이 전송된다고 가정하면 윈도우에 남아있는 프레임의 수는 (W-3)이 됨 ACK 프레임이 도착하면 전송 측 윈도우는 ACK 프레임(도착된 프레임의 수)에 따른 프레임의 수만큼 오른쪽 경계가 오른쪽으로 이동하여 윈도우 크기가 늘어남
수신 측 윈도우 수신 측 윈도우 : ACK 프레임을 전송한 후 오른쪽 경계를 오른쪽으로 이동 윈도우 크기가 커짐 4. 2 흐름제어 기법 수신 측 윈도우 수신 측 윈도우 : ACK 프레임을 전송한 후 오른쪽 경계를 오른쪽으로 이동 윈도우 크기가 커짐 윈도우 크기가 7인 경우 이전에 프레임 2에 대한 ACK 프레임을 전송하였고, 현재 ACK 프레임이 프레임 5에 대한 것이라면, ‘5-2’, 즉 3의 크기만큼 윈도우가 늘어남 확장되는 윈도우의 크기 = (가장 최근 ACK로 응답한 프레임의 수) – (이전에 ACK 프레임을 보낸 프레임의 수) 수신 측 윈도우의 동작 : [그림 4-6]
정지-대기 ARQ 정지-대기 ARQ 재전송 절차 4. 3 오류제어 기법 정지-대기 ARQ 데이터링크 계층에서의 오류제어 기법은 주로 오류검출(error detection) 과정과 재전송(retransmission) 과정을 포함 ARQ(Automatic Repeat Request) : 데이터 전송 시 프레임이 손상되었거나 분실되었을 때 재전송이 수행되는 재전송 과정 ‘정지-대기 흐름제어’ ‘정지-대기 ARQ’로 구현 ‘슬라이딩 윈도우 흐름제어’ ‘GBn (Go-Back-n ARQ)’ 또는 ‘SR (Selective-Repeat 또는 Selective-Reject) ARQ’의 형태로 구현 정지-대기 ARQ 재전송 절차 ➊ 전송 스테이션은 전송한 프레임의 ACK를 받을 때까지 프레임의 복사본을 유지 ➋ 식별을 위해 데이터 프레임과 ACK 프레임은 각각 0, 1의 값으로 번호 부여 ➌ 만약 프레임에서 오류제어가 발견되면 NAK 프레임이 반환되고, 이에 따라 전송 측은 복사해두었던 동일한 프레임을 재전송 ➍ 전송장치에는 타이머가 있어서 주어진 시간 내에 ACK이 오지 않으면 재전송
정지-대기 ARQ 데이터 프레임이 분실(lost data frame)된 경우의 절차 [그림 4-8] 4. 3 오류제어 기법 정지-대기 ARQ 데이터 프레임이 분실(lost data frame)된 경우의 절차 [그림 4-8] ACK 프레임이 분실(lost ACK)된 경우에 대한 절차 [그림 4-9]
GBn ARQ GBn ARQ 기법의 동작 : 프레임 3이 손상된 경우를 가정 [그림 4-10] 4. 3 오류제어 기법 GBn ARQ GBn ARQ 기법의 동작 : 프레임 3이 손상된 경우를 가정 [그림 4-10] 프레임 3에서 오류가 발견되기 전에 6개의 프레임이 전송됨 수신 측은 ACK 3을 반환하여, 전송 측에 프레임 0, 1, 2가 잘 도착했다고 알려줌 프레임 3은 손상되었기 때문에 곧바로 NAK 3이 전송되고, 그 이후의 프레임 4, 5는 폐기 이때 전송 측에서는 NAK 3을 수신하여, 프레임 3이 잘못되었음을 알고 프레임 3, 4, 5와 같은일련의 프레임을 재전송함
GBn ARQ GBn ARQ에서 데이터 프레임이 분실된 경우 [그림 4-11] 4. 3 오류제어 기법 GBn ARQ GBn ARQ에서 데이터 프레임이 분실된 경우 [그림 4-11] 프레임 2가 분실되어 수신 측에서 NAK 2를 반환하고, 이에 따라 프레임 2~4와 같이 연속적으로 전송됨 ACK 프레임이 분실된 경우 [그림 4-12] 수신 측에서 보낸 ACK 3이 분실되어, 전송 측에서는 프레임 0~2와 같이 연속적으로 프레임이 재전송됨
SR ARQ와 오류제어 기법의 특성 오류제어 기법의 특성 비교 SR ARQ : 손상되거나 잃어버린 프레임만 재전송하는 방법 4. 3 오류제어 기법 SR ARQ와 오류제어 기법의 특성 SR ARQ : 손상되거나 잃어버린 프레임만 재전송하는 방법 수신 스테이션은 어긋난 순서로 도착한 프레임을 다시 정렬하며, 재전송 프레임이 도착해서 정렬될 때까지 프레임들을 저장할 버퍼를 필요로 함 전송 스테이션은 정렬 과정을 통해 재전송을 해야 하는 프레임을 선택하고, 선택된 프레임만을 재전송함 오류제어 기법의 특성 비교 정지-대기 ARQ GBn ARQ SR ARQ 구조가 간단하여 구현이 용이하나, 비효율적이어서 활용도가 낮음 구조가 비교적 간단하고, 효율성이 향상되어 가장 널리 사용됨 가장 효율적이나, 구조가 복잡해서 유지 관리 비용이 증가 필요한 경우에만 사용
4. 4 대표적인 데이터링크 프로토콜 데이터링크 프로토콜 데이터링크 프로토콜은 BSC와 같은 문자 방식의 프로토콜과 SDLC, HDLC와 같은 비트 방식의 프로토콜로 구분 문자 방식 프로토콜(byte-oriented, character-oriented)은 전송된 프레임을 1바이트의 문자로 해석하며, 모든 제어 정보는 ASCII 코드로 구성 비트 방식의 프로토콜에서는 전송 프레임을 개별적인 비트의 전송으로 해석 비트 방식 프로토콜의 몇 가지 예 : [그림 4-13]
4. 4 대표적인 데이터링크 프로토콜 HDLC 프로토콜이란 1979년, ISO(국제표준위원회)에서 데이터링크의 표준으로 채택한 대표적인 비트 방식 프로토콜 1975년에 IBM에서 개발한 SDLC에 기초 1981년, ITU-T에서 링크 엑세스 프로토콜(LAPs: LAPB, LAPD, LAPM, LAPX 등)이라 불리는 일련의 프로토콜들이 표준으로 채택 HDLC에 기반한 프로토콜 이 외에도 프레임 릴레이와 PPP같은 프로토콜이 ITU-T, ANSI 등에 의해 표준으로 채택 스테이션의 3 종류 주 스테이션(primary station) : 명령(command)을 전송 종속 스테이션(secondary station) : 명령에 응답(response) 혼성 스테이션(combined station) : 명령과 응답 모두 전송 구성 방식 불균형 구성(unbalanced configuration) 방식 : 주 스테이션과 종속 스테이션으로 구분하여 데이터링크를 구성하는 방식 균형 구성(balanced configuration) 방식 : 두 개의 혼성스테이션으로 구성하는 경우 HDLC 데이터 전달모드 : NRM,ABM, ARM 등
HDLC 프레임 형식 플래그(flag) 영역 : 프레임의 시작과 끝 주소 영역 제어 영역 4. 4 대표적인 데이터링크 프로토콜 HDLC 프레임 형식 플래그(flag) 영역 : 프레임의 시작과 끝 8비트. 고유의 패턴(01111110)으로 구성 비트삽입(bit stuffing) 절차 : 프레임의 처음이나 마지막이 아닌 중간에 1이 연속해서 5개 발생하면 그 뒤에 0을 추가 주소 영역 프레임을 수신하는 종속 스테이션(목적지 스테이션)을 식별하는 데 사용 보통 8비트길이를 갖지만, 확장 형식을 사용할 수도 있음 주 스테이션이 모든 부 스테이션에게 프레임을 방송할 때는 ‘11111111’ 주소값 사용 제어 영역 정보 프레임(I-프레임), 감시 프레임(S-프레임), 번호가 붙지 않은 프레임(U-프레임) 정보 영역(information field) 정보 영역은 I-프레임과 U-프레임에만 있으며, 길이는 정해져 있지 않으나, 일반적으로 구현 방법에 따라 특정한 최댓값을 갖고, 일반적으로 길이는 8비트의 배수가 되어야 함 FCS 영역 16비트 CRC CCITT 또는 CRC-32 사용
4. 4 대표적인 데이터링크 프로토콜 HDLC 프레임의 종류와 동작 HDLC의 프레임의 종류에는 사용자 정보를 전송하는 프레임을 I-프레임, 오류제어를 관리하고 감시하는 S-프레임, 링크의 연결과 해제와 관련하여 쓰이는 U-프레임 등이 있음 정보 프레임(I-프레임) HDLC의 기본동작 : I-프레임의 교환 I-프레임은 피기백된 양(+)의 ACK과 전송 프레임의 순서번호를 포함 I-프레임의 P/F 영역 : 주 스테이션으로부터의 명령을 위한 비트는 ‘P(Poll)’비트이고, 종속 스테이션으로부터의 응답을 위한 비트는 ‘F(Final)’비트
감시 프레임(S-프레임)과 U-프레임 감시 프레임 (S-프레임) 감시 프레임 내의 P/F 비트 사용 4. 4 대표적인 데이터링크 프로토콜 감시 프레임(S-프레임)과 U-프레임 감시 프레임 (S-프레임) 흐름제어나 오류제어를 위해 사용되며, GBn ARQ와 SR ARQ를 허용 피기백을 하는 I-프레임이 없을 때 RR(Receive Ready)로 양(+)의 ACK를 나타냄 RNR(Receive Not Ready)은 RR이 올 때까지 더 이상의 I-프레임을 전송 중지를 요청하기 위해 사용됨 RR, RNR, REJ 프레임에서 N(R)은 다음 기대되는 I-프레임의 순서번호를 표시하며, SR에서 N(R)은 거절된 프레임의 순서번호가 됨 감시 프레임 내의 P/F 비트 사용 주 스테이션은 종속 스테이션에 대한 폴을 하기 위해 RR 프레임 내의 P비트를 설정 종속 스테이션은 I-프레임이 있으면 I-프레임을 전송하고, 그렇지 않으면 보낼 데이터가 없다는 표시로 F비트를 설정하여 RR을 보냄 주 스테이션(이 경우 혼성 스테이션)은 종속 스테이션/혼성 스테이션의 수신 상태를 알기 위해 RNR 명령의 P비트를 설정하여 전송 그 스테이션이 I-프레임을 수신할 수 있으면 F비트를 설정하여 RR로 응답하며, 수신 준비가 되어 있지 않을 경우는 F비트를 설정하여 RNR로 응답하게 됨 번호가 붙지 않은 프레임(U-프레임) 링크의 연결과 해제 등 여러 가지 제어 기능을 위해 사용 순서번호가 없으며, 번호를 가진 I-프레임의 순서나 흐름을 바꾸지 않음
HDLC 프레임의 동작(1) S-프레임과 U-프레임은 제어 및 관리 감시 목적으로만 사용 정보 영역을 포함하지 않음 4. 4 대표적인 데이터링크 프로토콜 HDLC 프레임의 동작(1) S-프레임과 U-프레임은 제어 및 관리 감시 목적으로만 사용 정보 영역을 포함하지 않음 세 가지 프레임 중 어느 프레임이 전송되는지는 8비트의 제어 영역에 따라 결정 프레임 ID를 위해 할당된 영역이 제어 영역의 처음 두 비트로, 제어 영역의 첫 번째 비트가 0이면 I-프레임을 나타내고, 1, 2번째 비트가 10과 11이면 각각 S-프레임과 U-프레임을 나타냄 S-프레임의 세 번째와 네 번째 비트는 4가지의 S-프레임 종류를 분류할 수 있게 하며, U-프레임에 위치한 다섯 개의 M비트들은 32가지로 세분화됨 모듈로-8 순차번호 매김 방식이 HDLC의 표준이므로 순차번호를 위해서 3비트 영역 할당 I-프레임의 N(S)는 현재 I-프레임의 순차 번호를 나타내며, 뒤이어 보내지는 I-프레임의 N(S)는 1씩 증가함 모듈로-8의 유한한 값을 갖는 순차번호가 사용되므로, 전송 측에서 N(S)가 최대 순차번호에 이르게 되면 전송을 중지해야 함 수신 측에서 전송 측으로 정상적인 수신을 알리는 프레임(ACK)을 받은 후에야 전송 측은 다시 전송 시작 I-프레임과 S-프레임의 안에 위치한 N( R)영역은 I-프레임의 정상적 수신을 알리고자 할 때 사용 N(R)의 숫자는 N( R)-1 이하의 모든 프레임은 정상적인 수신과 N(R)번호를 갖는 정보 프레임의 수신을 원한다는 것을 나타냄
HDLC 프레임의 동작(2) HDLC에서 데이터 전송, 오류검출 및 복원 : I-프레임과 S-프레임을 사용하여 이루어짐 4. 4 대표적인 데이터링크 프로토콜 HDLC 프레임의 동작(2) HDLC에서 데이터 전송, 오류검출 및 복원 : I-프레임과 S-프레임을 사용하여 이루어짐 U-프레임은 데이터링크 순차의 연결과 해제 시 사용 I-프레임의 N(R) 영역 : N(R) 영역은 [N( R)-1]과 그 이하의 모든 프레임에 대해 ACK을 전송하는 데 사용되므로, HDLC에서는 역방향으로 I-프레임 속에 ACK 기능까지 함께 실어 보내는 피기백 기능을 제공 HDLC는 RR 프레임이라는 개별적 ACK를 사용 전송할 I-프레임이 없는 경우 : 정상적인 ACK 프레임을 보내거나, 혹은 ACK 하나를 신속히 보내야 할 경우에 사용 REJ(Reject) 프레임은 비정상적 수신을 알리는 NAK 기능이 필요할 때마다 사용함 HDLC에서 ABM은 GBn 프로토콜을 사용 REJ 프레임으로 인해 N(R)부터 그 이하 I-프레임 전체가 거절되어 그 이하 모든 프레임들이 재전송되어야 함
Q & A