반응형
SMALL
01. 데이터 링크 계층 프로토콜의 기초
점대점
- 두 호스트가 통신하려면 일대일(1:1) 형식의 점대점 방식으로 연결해야 한다.
- 송신 호스트에서 전송한 프레임은 점대점으로 직접 연결된 수신 호스트에 라이팅 과정 없이 전달된다.
- 직접 연결 구조에서 둘 사이의 전송 오류를 감지하고, 이를 복구하는 기능을 지원한다.
- 전송 선로에 2개의 호스트만 연결되므로 호스트를 구분하기 위한 주소 개념이 필요없다.
멀티 드롭
- 하나의 호스트가 다수의 호스트와 연결된 비대칭 형태이다.
- 하나의 물리 매체를 여러 호스트가 공유하므로, 임의의 호스트에서 전송한 프레임은 물리적으로 다른 호스트에 전달된다.
- 여러 수신 호스트 중에서 프레임의 목적지 호스트를 지칭하기 위한 주소 개념이 필요하다.
1. 프레임의 종류
데이터 링크 계층에서 전송 오류를 해결하는 과정에서 다음과 같은 프레임을 사용한다.
정보 프레임(Information Frame)
- 상위 계층이 전송을 요구한 데이터를 수신 호스트에 전송하는 용도로 사용한다.
- 상위 계층에서 보낸 데이터와 함께 프레임의 순서 번호, 송수신 호스트의 주소 정보를 포함한다.
- 순서 번호: 각 정보 프레임에 부여되는 고유의 일련번호로, 수신 호스트가 중복 프레임을 구분할 수 있도록 한다.
긍정 응답 프레임(Positivie Acknowledge Frame)
- 프레임 변형 오류가 발생하지 않으면 송신 호스트에 해당 프레임을 올바르게 수신했다는 의미로 회신하는 ACK 프레임이다.
- 긍정 응답 프레임을 수신한 송신 호스트는 데이터가 제대로 도착했음을 확인할 수 있다.
부정 응답 프레임(Negative Acknowledge Frame)
- 프레임 변형 오류가 발생했을 때 수신 호스트가 송신 호스트에 회신하는 ACK 프레임이다.
- 송신 호스트는 오류 발생을 인지하고 원래의 정보 프레임을 재전송한다. (동일한 순서 번호로 재전송)
2. 오류, 흐름 제어가 없는 프로토콜
- 이상적인 환경의 데이터 전송 구조이다.
- 단방향 통신
- 전송 오류가 없는 물리 매체
- 무한 개의 수신 버퍼
- 송신 호스트가 전송한 프레임은 수신 호스트에 항상 안전하게 도착하므로 송신 호스트가 프레임을 원하는 만큼 계속 전송할 수 있다.
- 송수신 호스트 사이의 흐름 제어 기능이 필요 없어 상위 계층이 요청한 데이터를 수신 호스트에 송신하는 과정만 필요하다.
3. 오류 제어가 없는 프로토콜
- 수신 호스트의 버퍼 개수가 유한한 환경의 구조이다.
- 단방향 통신
- 전송 오류가 없는 물리 매체
- 수신 호스트의 버퍼가 유한 개로 제한되는 환경에서 송신 호스트가 너무 빨리 정보 프레임을 전송하면 버퍼 부족으로 프레임 분실 오류가 발생할 수 있다. 이를 방지하기 위해 흐름 제어 기능을 제공하여 송신 호스트의 전송 속도를 조절해야 한다.
- 수신 호스트가 이전 프레임의 수신을 완료한 후 다음 프레임을 전송하도록 송신 호스트에 지시한다. 이때 ACK 프레임을 사용한다.
- 각 정보 프레임에 대하여 수신 호스트가 회신하는 ACK 프레임이 도착해야 다음 프레임을 전송할 수 있는 프로토콜 방식을 정지-대기 방식이라 한다. (전송 효율이 매우 떨어지므로 일반 네트워크 환경에서 사용하지 않음)
4. 단방향 프로토콜
- 단방향 통신: 데이터는 송신 호스트에서 수신 호스트로만 전달되는 환경 구조이다.
- 오류 제어와 흐름 제어 기능을 지원한다.
- 프레임 분실이 발생하면 수신 호스트는 정보 프레임이 도착하길 무한정 기다린다. 결과적으로 수신 호스트가 ACK 프레임을 회신할 수 없으므로 송신 호스트도 ACK 프레임의 도착을 무한정 기다린다. 이런 현상을 방지하기 위해 타임아웃 기능을 사용한다.
- 프레임 전송 후 특정 시간까지 ACK/NAK 프레임을 회신받지 못하면 송신 호스트는 프레임 분실이 발생한 것으로 간주한다. 이때 분실된 프레임을 재전송한다.
4.1 NAK가 없는 경우
- NAK 프레임이 정의되지 않은 프로토콜에서 오류를 복구하는 방법이다.
- (a) 송신 호스트가 전송한 정보 프레임을 분실한 경우
- 송수신 호스트 모두 상대방의 행동을 기다리면서 프로토콜의 진행을 멈추는 현상이 발생할 수 있다.
- 송신 호스트가 정보 프레임을 전송한 후에 제한 시간을 설정하여 타이머를 작동시킨다. 임의의 시간까지 ACK 프레임이 도착되지 않으면 시간 초과에 따른 타이머 동작으로 정보 프레임 I(i)를 재전송한다.
- (b) ACK 프레임이 회신되는 과정에서 송신 호스트가 정보 프레임이 올바르게 전달되었다는 사실을 모르는 경우
- 송신 호스트 입장에서 (a) 상황과 동일하므로 타이머 동작에 의한 재전송 과정이 필요하다.
- NAK 프레임이 정의되지 않아 수신 호스트가 프레임 변형 오류에 응답할 방법이 없다.
- 송신 호스트의 타임아웃 기능에 의해 오류 복구 기능이 진행되어야 한다.
4.2 NAK가 있는 경우
- 데이터 변형 시 NAK 프레임을 이용해 프레임 변형 사실을 송신 호스트에 통보한다.
- 결론적으로 2가지 원인이 발생했을 때 송신 호스트의 재전송 기능으로 오류 복구가 이루어진다.
- 정보 프레임에 대한 수신 호스트의 응답이 없을 때 송신 호스트의 타임아웃 기능에 의해 복구가 이루어지는 경우
- 수신 호스트가 회신한 부정 응답 프레임(NAK)에 의해 복구가 이루어지는 경우
02. 슬라이딩 윈도우 프로토콜
- 두 호스트 간의 프레임 전송을 위한 일반적인 통신 프로토콜로, 오류 제어와 흐름 제어 기능을 함께 지원한다.
- 다음과 같은 기본 절차를 따른다.
- 송신 호스트는 프레임의 순서 번호, 오류 검출 코드 등을 프레임에 표기 후 정해진 순서 번호에 따라 순차적으로 송신한다.
- 프레임을 받은 수신 호스트는 해당 프레임의 순서 번호에 근거하여 송신 호스트에 응답 프레임을 회신해야 한다. (PAK에 기록된 순서 번호 이전까지의 프레임은 모두 제대로 수신함, 위 그림에서는 이해를 위해 i+1가 아닌 i로 ACK 번호 기재)
- 수신 호스트는 수신한 정보 프레임을 보관하기 위해 내부 버퍼인 수신 윈도우를 유지할 수 있다.
- 선택적 재전송: 수신 윈도우의 크기 = 송신 윈도우의 크기
- 고백 N 방식: 수신 윈도우의 크기 = 1
1. 흐름 제어
수신 호스트가 연속으로 수신할 수 있는 정보 프레임의 개수를 윈도우의 크기로 지정함으로써, 송신 호스트의 프레임 전송 속도를 제어한다.
1.1 순서 번호
- 정보 프레임의 내용에는 프레임별로 고유하게 부여되는 순서 번호라는 일련번호가 부여된다.
- 번호는 0부터 임의의 최댓값까지 정의되고, 최댓값 이후는 다시 0번으로 되돌아오는 순환 방식으로 할당된다.
- 현재 처리되고 있는 서로 다른 프레임에 같은 순서 번호를 부여하지 않도록 해야 한다.
- 기본적으로 순서 번호의 최댓값이 송신 윈도우의 크기보다는 커야 한다.
1.2 윈도우 크기
- 임의의 시점에서 송신 호스트가 수신 호스트로부터 긍정 응답 프레임을 받지 않고도 전송할 수 있는 정보 프레임의 최대 개수
- 긍정 응답 프레임이 회신되고 오류 없이 수신 호스트에 전달되었음을 확인함에 따라 윈도우에 새로 추가될 정보 프레임의 순서 번호도 순차적으로 높은 번호로 이동한다.
- 송신 윈도우의 최대 크기를 3으로 가정했을 때 슬라이딩 윈도우 프로토콜의 동작 과정이다.
- (a) 0, 1, 2번 3개의 정보 프레임 전송 후, 아직 해당 정보 프레임에 대한 ACK 프레임을 받지 못한 경우
- 0번 프레임에 대한 긍정 응답의 처리 완료 후 3번 프레임을 전송할 수 있다.
- (b) 0번에 대한 ACK 프레임 회신 후 3번 프레임 전송(c) 가능
- (d) 1번에 대한 ACK 프레임 회신 후 4번 프레임 전송(e) 가능
- (f) 2, 3번에 대한 ACK 프레임 회신 (5, 6번 프레임 전송 가능)
- 순서 번호의 최댓값을 9라고 가정하면, 9번 정보 프레임 전송 후 전송되는 프레임의 순서 번호는 0이 된다.
- 위 과정을 다르게 표현한 것이다.
- 송신 호스트와 수신 호스트가 정보/응답 프레임을 전송하는 과정이 더 직관적이다.
2. 연속형 전송
- 정지-대기 방식의 프로토콜은 송신 윈도우의 크기가 1인 특수한 경우이다. 이때 송수신 호스트의 거리 차로 인해 프레임 전송 시간이 상대적으로 오래 걸리는 환경이면 효율은 극단적으로 떨어진다.
- 이를 해결하기 위해 윈도우 크기를 늘려 ACK 프레임을 받지 않고도 여러 정보 프레임을 연속으로 전송할 수 있어야 한다.
- 연속형 전송
- 연속형 전송 방식의 오류를 해결하는 방법에는 고백 N 방식과 선택적 재전송 방식이 있다.
- 전송한 여러 정보 프레임 일부에 오류가 발생할 수 있다.
- Ex. 10~17번 정보 프레임 중 12번만 오류가 발생하면 12번에 대한 오류 복구 과정만 수행하면 된다.
2.1 고백 N(Go-Back-N) 방식
오류 복구 과정에서 오류가 발생한 12번 프레임을 포함해 이후에 전송된 모든 정보 프레임을 재전송하는 방식
- 정상적으로 수신된 프레임까지 재전송한다는 문제가 있다.
- 수신 호스트가 임의의 앞선 순서 번호를 갖는 정보 프레임이 처리될 때까지 다음 정보 프레임을 모두 버리는 방식으로 처리된다.
- 수신 윈도우에는 현재 처리 중인 프레임 1개만 존재하므로 수신 윈도우의 크기는 1이라고 할 수 있다.
2.2 선택적 재전송 방식
오류가 발생한 프레임만 선택적으로 복구하는 방식
- 부정 응답 프레임을 사용해 오류가 발생한 정보 프레임을 처리하는 경우이다.
- NAK(12) 프레임을 전송한 후에는 I(12)번 프레임 처리를 완료할 때까지 다음 정보 프레임에 대한 긍정 응답 프레임을 전송하지 않도록 한다.
- 앞선 정보 프레임에 대한 처리가 이루어지지 않았어도 오류 없이 수신된 모든 정보 프레임을 수신 윈도우에 보관하기 때문에 수신 윈도우의 크기는 송신 윈도우의 크기와 같다.
- 프레임의 도착 순서가 송신 순서와 일치하지 않을 수 있다.
3. 피기배킹
- 정보 프레임을 전송하면서 응답 기능까지 함께 수행하면, 응답 프레임의 전송 횟수를 줄여 전송 효율을 높일 수 있다.
- 전송할 데이터와 해당 데이터의 순서 번호, 현재까지 수신한 프레임의 순서 번호까지 포함하여 정보 프레임의 전송과 응답 프레임의 회신을 한 번에 처리할 수 있다.
- 왼쪽에서 0, 1번 정보 프레임을 전송하고, 오른쪽에서 0, 1번 순서대로 정보 프레임을 전송한다.
- 개별 정보 프레임에 대해 긍정/부정 응답 프레임이 순서 번호와 함께 별도로 처리된다.
- 정보 프레임의 표기 방식은 I(i, j)로 재정의되었다.
- i는 자신이 전송하는 데이터의 순서 번호를, j는 제대로 수신한 프레임의 순서 번호를 의미한다.
- 응답 프레임을 전송할 시점에서 전송할 정보 프레임이 있으면 피기배킹 기능을 사용할 수 있지만, 정보 프레임이 없으면 응답 프레임만 전송해야 한다.
03. HDLC 프로토콜
컴퓨터가 일대일 혹은 일대다로 연결된 환경에서 데이터의 송수신 기능을 제공한다.
1. 프레임 구조
- Address(주소): 일대다로 연결된 환경에서 특정 호스트를 구분하여 지칭하는 목적으로 사용한다.
- Control(제어): 프레임의 종류를 구분한다.
- Data(데이터): 가변 크기의 전송 데이터가 포함되는데, 상위 계층인 네트워크 계층에서 보내진 패킷이 캡슐화된다.
- Checksum(체크섬): CRC-CCITT를 생성 다항식으로 하는 오류 검출 용도로 사용된다.
2. 프레임 종류
2.1 정보 프레임
네트워크 계층의 데이터 전송을 위해 정의된다.
- Seq: 정보 프레임의 송신용 순서 번호로 사용한다.
- Next: 피기배킹을 이용한 응답 기능으로 사용한다.
- P/F: 값이 1로 지정되었을 경우에 한하여 Poll 혹은 Final의 의미를 갖는다.
2.2 감독 프레임
정보 프레임에 대한 응답 기능을 수행하는 프레임이다.
- Type0: RR로 정의된 긍정 응답 프레임
- Type1: REJ로 정의된 부정 응답 프레임
- Type2: RNR로 정의된 응답 프레임으로, 흐름 제어 기능까지 제공한다.
- Type3: SREJ로 정의된 프레임으로, 선택적 재전송 방식에서 부정 응답 기능을 지원한다.
2.3 비번호 프레임
순서 번호가 없는 프레임을 정의한다. 주로 연결 제어 등의 용도로 사용하지만, 비연결형 데이터 전송을 위해 사용하기도 한다.
- SABM: 비동기 균형 모드의 연결 설정을 요구한다.
- SNRM: 정규 응답 모드의 연결 설정을 요구한다.
- SARM: 비동기 응답 모드의 연결 설정을 요구한다.
- DISC: 연결 설정 해제를 요구한다.
- RSET: 비정상적인 프로토콜의 동작에 따른 리셋 기능을 수행한다.
- FRMR: 비정상적인 프레임의 수신을 거부한다.
- UA: 비번호 프레임에 대한 응답 기능을 수행한다.
연결 모드 | 설명 |
정규 응답 | 불균형 모드를 의미하기 때문에 호스트 하나는 주국으로 동작하고, 다른 하나는 종국으로 동작한다. SNRM을 이용하여 연결 설정을 요구하며, 종국에서 데이터를 전송하려면 반드시 주국의 허락을 받아야 한다. |
비동기 균형 | 2개의 호스트가 동일한 능력을 갖는 혼합국으로 동작하며, 양쪽에서 명령과 응답을 모두 전송할 수 있다. 따라서 둘 중 임의의 호스트에서 SABM을 이용한 연결 설정 요구를 수행할 수 있다. |
비동기 응답 | 불균형 모드이나 종국이 주국의 허락 없이도 데이터를 전송할 수 있는 권한을 갖는다. 즉, 주국의 허가가 없어도 종국에서 먼저 SARM 응답을 보낼 수 있다. |
3가지 연결 모드
3. LAP 프로토콜
비동기 응답 모드인 ARM으로 동작하는 프로토콜
- 연결 설정: 주국에서 전송된 SARM 명령에 대하여 종국에서 UA 응답을 전송함으로써 완료된다.
- LAP은 비동기 응답 모드로 동작하기 때문에 종국에서 주국으로 SARM 응답을 전송하여 연결 설정을 요구할 수 있다.
- 종국으로부터 SARM 응답을 받은 주국은 SARM 명령을 전송하고, 최종적으로 종국에서 UA 응답을 전송함으로써 연결 설정이 완료된다.
- 연결을 해제할 경우에도 주국으로부터 DISC 명령이 발생하면 종국에서 UA 응답을 전송하는 것으로 해제가 완료된다.
4. LAPB 프로토콜
양쪽 호스트가 혼합국으로 동작하기 때문에 누구나 먼저 명령을 전송할 수 있다.
- 비동기 균형 모드의 연결을 설정하기 위해 오른쪽 호스트가 왼쪽 호스트에 SABM 명령을 전송한 경우이다.
- 왼쪽 호스트에서는 UA 응답을 전송함으로써 계층 2의 연결 설정이 완료된다.
- 연결 해제의 경우에도 임의의 호스트에서 DISC 명령을 전송하고, 이를 수신한 측에서 UA 응답을 함으로써 완료된다.
References
- 쉽게 배우는 데이터 통신과 컴퓨터 네트워크
- [삼식이] 데이터 링크 계층
반응형
LIST
'독서 > 쉽게 배우는 데이터 통신과 네트워크' 카테고리의 다른 글
[쉽게 배우는 데이터 통신과 네트워크] CH8. 네트워크 계층 (0) | 2024.06.04 |
---|---|
[쉽게 배우는 데이터 통신과 네트워크] CH7. IP 프로토콜 (0) | 2024.05.30 |
[쉽게 배우는 데이터 통신과 네트워크] CH5. MAC 계층 (0) | 2024.05.28 |
[쉽게 배우는 데이터 통신과 네트워크] CH4. 데이터 전송의 기초 (0) | 2024.05.26 |
[쉽게 배우는 데이터 통신과 네트워크] CH3. 네트워크 기술 (0) | 2024.05.24 |