데이터 링크 계층 프로토콜의 기초
연결 구성은 점대점과 멀티드롭방식이 있다.
프레임의 종류
정보 프레임: I 프레임
- 상위 계층이 전송을 요구한 데이터를 송신하는 용도이다.
- 순서번호, 송수신 호스트, 정보 등이 포함된다.
긍정 응답 프레임: ACK 프레임
- 전송 데이터가 올바르게 도착했음을 회신하는 용도이다.
- 데이터를 수신한 호스트가 데이터를 송신한 호스트에게 전송한다.
부정 응답 프레임: NAK 프레임
- 전송 데이터가 깨져서 도착했음을 회신하는 용도이다.
- 데이터를 수신한 호스트가 데이터를 송신한 호스트에게 전송한다.
- 데이터를 송신한 호스트는 원래의 데이터를 재전송하여 오류를 복구한다.
- 긍정, 부정 응답 프레임 모두 회신하고자 하는 I 프레임 순서 번호를 포함한다.
오류, 흐름 제어가 없는 프로토콜
아래와 같은 상황을 가정한다.
- 단방향 통신 (송신 호스트에서 수신 호스트 한쪽 방향으로만 데이터 전송한다.)
- 전송 오류가 없는 물리 매체이다. (어떠한 전송 오류도 발생하지 않는다.)
- 무한 개의 수신 버퍼가 있다. (흐름 제어가 필요없다.)
단순 프로토콜
- 송신 호스트는 자유롭게 원하는 만큼 프레임을 전송할 수 있다.
- 오류 제어가 필요 없다.
- 흐름 제어도 필요 없다. (버퍼가 무한대이기 때문에)
- 순서번호도 필요없다.
오류 제어가 없는 프로토콜
아래와 같은 상황을 가정한다.
- 단방향 통신 (송신 호스트에서 수신 호스트 한쪽 방향으로만 데이터 전송한다.)
- 전송 오류가 없는 물리 매체이다. (어떠한 전송 오류도 발생하지 않는다.)
- 전송 오류는 없으나 버퍼 부족으로 프레임이 분실 가능하다.
정지-대기 프로토콜
- 수신 버퍼의 개수가 유한개이기 때문에 흐름 제어가 필요하다.
- 긍정 응답 기능과 ACK 프레임이 필요하다.
- 데이터 중복 수신 우려가 있고, 순서 번호 기능이 필요하다.
- 정지대기: 하나의 프레임 전송 후 응답을 대기한다. 전송 효율이 떨어져서 잘 사용하지 않는다.
단방향 프로토콜
아래와 같은 상황을 가정한다.
- 단방향 통신이다.
- 전송 매체 오류 발생이 가능하다.
- 버퍼가 유한하다.
오류 제어와 흐름 제어가 모두 필요하다.
프레임 변형 오류의 해결 방안: 수신 호스트의 NAK 기능, 송신 호스트의 타임아웃 기능
NAK가 없는 경우
- 정보 프레임의 분실이 일어난다. 송신 호스트의 타임아웃 기능으로 오류 복구를 한다.
- ACK 프레임의 분실이 일어날 경우는 송신 호스트의 타임아웃 기능으로 오류를 복구한다.
- 정보 프레임의 변형이 일어날 경우도 송신 호스트의 타임아웃 기능으로 오류를 복구한다.
NAK가 있는 경우
- 정보 프레임의 변형 오류가 일어난 경우 NAK를 이용해서 통보한다. (더 효율적일 수 있고, NAK를 사용하지 못하는 경우도 있다.)
- 정보 프레임 분실 오류가 일어난 경우 타임아웃으로 인지 한 후 재전송한다.
슬라이딩 윈도우 프로토콜
슬라이딩 윈도우
양방향 통신을 지원한다.
오류 제어와 함께 흐름 제어를 지원한다.
기본 절차는 다음과 같다.
- 송신 호스트는 정보 프레임(전송 데이터 + 순서 번호 + 오류 검출 코드)을 순서 번호에 따라 순차적으로 전송한다.
- 정보 프레임을 수신한 수신 호스트가 응답하는 순서 번호는 정상적으로 수신한 번호가 아닌, 다음에 수신하기를 기대하는 번호를 회신하는 것이 일반적이다.
- 송신 호스트가 관리하는 송신 윈도우는 전송은 되었지만 긍정 응답이 회신되지 않은 프레임을 보관한다.
- 수신 호스트가 관리하는 수신 윈도우는 프로토콜의 동작 방식에 따라 크기가 다르다. (선택적 재전송 방식에서는 송신 윈도우 크기와 같다.)
흐름 제어
순서 번호
- 프레임 별로 부여되는 일련 번호이다.
- 0 부터 임의의 최댓값까지 순환하는 방식을 사용한다.
- 일반적으로 순서 번호의 최댓값이 송신 윈도우 크기보다 커야 한다.
연속형 전송
정지-대기 프로토콜은 송신 윈도우 크기가 1인 경우이다. (프레임 전송 시간이 오래 걸리는 경우 전송 효율이 떨어진다.)
연속형 전송
- ACK 프레임을 받지 않고 여러 프레임을 연속으로 전송한다.
- 전송 오류 발생 가능성이 적은 환경에서는 상당히 효율적이다.
- 오류 발생이 가능하므로 해결 방안이 필요하다. (Go-back N, 선택적 재전송 등이 해결 방안이다.)
Go-back N
- 오류가 발생한 프레임을 포함해서 이후에 전송된 모든 정보 프레임을 재전송한다.
선택적 재전송
- 오류가 발생한 프레임만 선택적으로 복구하는 방식이다. (오류가 발생한 프레임 이후는 수신 호스트에서 보관하고 있다.)
- 부정 응답 프레임을 사용해서 오류가 발생한 정보 프레임을 처리하는 경우이다.
피기배킹 (Piggybacking)
양방향 전송의 경우 양방향으로 동시에 정보프레임과 응답 프레임을 교차하여 전송하는 경우가 일반적이다.
비기배킹을 사용하지 않는 경우 개별 정보 프레임에 대해 긍정 응답 혹은 부정 응답 프레임이 순서 번호와 함께 별도 처리가 된다.
피기배킹을 사용하는 경우
- 정보프레임과 응답 프레임을 각각 보내지 않고 정보 프레임을 전송하면서 응답 기능까지 동시에 수행하도록 프레임 구조를 변경한다.
- 정보 프레임의 표기방식은 I(i,j)로 재정의 된다.
- i는 자신이 전송하는 데이터의 순서 번호이고, j는 제대로 수신한 프레임의 순서 번호를 의미한다.
- 응답 프레임을 전송할 시점에 전송할 정보 프레임이 없는 경우 응답 프레임만 전송하거나 응답을 늦춘 후 피기배킹 방식으로 전송한다.
HDLC 프로토콜
HDLC 프로토콜의 특징
일대일, 일대다로 연결된 환경에서 데이터 송수신 기능을 제공한다.
호스트의 종류는 아래와 같다.
- 주국: 명령을 전송하는 호스트이다.
- 종국: 명령에 대한 응답을 회신하는 호스트이다.
- 혼합국: 주국과 종국 기능을 모두 지닌 호스트이다.
주국이 종국에게 명령을 전송하고 종국은 주국에게 응답을 회신하는것이 기본 동작 원리이다.
프레임 구조
주요 필드들은 다음과 같다.
- 비트 프레임
- 프레임의 시작과 끝에 존재한다.
- 플래그(01111110)을 사용한다.
- Address
- 일대다 환경을 지원한다.
- 일대일 환경에서는 명령과 응답을 구분한다.
- DATA
- 가변 크기의 전송 데이터이다.
- Checksum
- Control
- 프레임 종류: Information(I), Supervisory(S), Unnumbered(U)
- 필드는 송신용 순서번호, 회신용 순서번호, Type, PF(Poll/Final) 가 있다.
정보 프레임
Seq: 송신용 순서번호
Next: 피기배킹을 이용한 응답기능이다. (다음에 수신할 순서번호)
P/F (Poll/Final)
- P가 1인 경우: 주국에서 종국에 데이터 전송을 허용한다.
- 수신단에서는 반드시 주어진 시간 내에 응답을 보내야 한다.
- 송신단에서 타임 아웃 발생시 P=1로 응답을 요구한다.
- F가 1인 경우: 종국에서 주국으로 데이터를 전송한다.
감독 프레임
프레임에 대한 응답 기능이 있다.
Type은 2비트를 사용한다.
- 00인 경우: 긍정 응답
- 01인 경우: 부정 응답
- 10인 경우: 흐름 제어
- 11인 경우: 선택적인 재전송
비번호 프레임
순서 번호가 없는 프레임을 의미한다.
프레임의 종류는 다음과 같다. (Type + Modifier 총 5비트로 구분한다.)
- SABM(Set ABM): 비동기 균형 모드의 연결 설정을 요구한다.
- SNRM(Set NRM): 정규 응답 모드의 연결 설정을 요구한다.
- SARM(Set ARM): 비동기 응답 모드의 연결 설정을 요구한다.
- DISC: 연결 해제를 요구한다.
- RSET: 리셋 기능을 수행한다.
- FRMR: 프레임 수신을 거부한다.
- UA: 비번호 프레임에 대한 응답 기능을 수행한다.
정규 응답(NRM): 호스트 하나는 주국이고, 다른 하나는 종국을 의미하며, 종국에서 데이터를 전송하려면 주국의 허락이 필요하다.\
비동기 균형(ABM): 두 호스트 모두 혼합국으로 동작한다. 양쪽에서 명령과 응답을 전송할 수 있다.
비동기 응답(ARM): 불균형 모드이다. 주국의 허락 없이 종국에서 데이터를 전송할 수 있다.
LAP(Link Access Protocol)
비동기 응답 모드인 ARM으로 동작한다.
주국에서 SARM 명령을 전송하고 종국에서도 SARM 응답을 전송한다.
LAPB(Link Access Protocol-Balanced)
양쪽 호스트가 혼합국으로 동작한다.
임의의 호스트에서 SABM을 전송해서 연결을 설정한다.
'Computer Science > Network' 카테고리의 다른 글
[CS] 네트워크 - IP 프로토콜의 이해 - 라우팅 프로토콜 (0) | 2022.10.26 |
---|---|
[CS] 네트워크 - IP 프로토콜의 이해 - 네트워크 계층의 기능 (0) | 2022.10.26 |
[CS] 네트워크 - MAC 계층 (0) | 2022.10.23 |
[CS] 네트워크 - 데이터 전송의 기초 (1) | 2022.10.03 |
[CS] 네트워크 - 네트워크 기술 (2) | 2022.09.26 |