핵심 주제
- 흐름 제어 (Flow Control)
- Stop-and-Wait 흐름 제어
- Sliding-Window 흐름 제어
- 오류 제어 (Error Control)
(ARQ: Automatic Repeat Request, 자동 재전송 요청 방식)- Stop-and-Wait ARQ
- Sliding-Window ARQ
- Go-Back-N ARQ
- Selective-Reject ARQ
- 고급 데이터 링크 제어 프로토콜 (HDLC: High-Level Data Link Control)
용어 정리
- Layer 2의 PDU(Protocol Data Unit) → "프레임(Frame)"
- 프레임 유형:
- 데이터 프레임: L2 페이로드에 IP 패킷 포함
- ACK 프레임: IP 패킷 없음 (확인 응답용)
✅ 흐름 제어 (Flow Control)
- 송신자가 수신자의 처리 능력을 초과하지 않도록 하는 메커니즘
→ 버퍼 오버플로 방지
일반 흐름
- 수신자는 최대 크기의 데이터 버퍼 할당
- 수신 후 상위 계층으로 전달 전 처리 필요
- 흐름 제어 없으면 버퍼가 가득 차서 데이터 손실 발생
프레임 전송 모델
- L2 헤더에는 오류 없음, **L2 페이로드에서 CRC(FCS)**로 오류 감지 가능
✅ 왜 데이터를 작은 블록으로 나누는가?
- 큰 블록은 작은 프레임들로 나눔
이유:
- 수신자의 버퍼가 작기 때문
- 오류 발생 시 작은 프레임 단위로 빠르게 감지 및 재전송 가능
- 공유 매체에서는 한 노드의 장시간 점유 방지
✅ Stop-and-Wait 흐름 제어
- 가장 단순한 흐름 제어 방식
- 한 번에 하나의 프레임만 전송, ACK 수신 후 다음 프레임 전송
- 버퍼 불필요
- 큰 데이터가 여러 작은 프레임으로 나뉘면 비효율적
TX 절차
- 프레임 전송
- ACK 수신 대기
- 수신 시 다음 프레임 전송
RX 절차
- 프레임 수신 및 ACK 응답
- 필요 시 ACK 지연으로 흐름 중단 가능
Stop-and-Wait: 링크 활용도 계산
- 전송 시간: 1
- 전파 지연: a
→ a가 클수록 효율성 낮음
✅ Sliding-Window 흐름 제어
- W개의 프레임을 동시에 전송 가능
- 수신자는 W개의 버퍼 확보
- 각 프레임에 시퀀스 번호 부여, modulo 2ᵏ 순환
- 최대 번호 = 2ᵏ - 1
- 예: k=3이면 시퀀스 번호는 0~7 반복
ACK 포함 내용: 다음 기대 시퀀스 번호
→ 누적 ACK 방식
ACK 프레임 종류
- RRk (Receive Ready k): k-1까지 수신했으며, k번째 수신 준비 완료
- RNRk (Receive Not Ready k): k-1까지 수신했지만 이후 수신 불가
→ 정상 ACK 도착 시 재개
Piggybacking
- 전이중 통신에서만 사용
- 데이터 프레임에 데이터+ACK 시퀀스 번호를 동시에 포함
3가지 경우:
- 데이터 + ACK 모두 → 통합 전송
- ACK만 → ACK 전용 프레임
- 데이터만 → 마지막 ACK 포함하여 데이터 전송
예제: Sliding-Window에서 W 계산
- F0~F6 전송, RR2 수신 → F0, F1 수신 확인
- F2~F6 = 아직 ACK 안 받은 프레임 = 5개
- 이후 5개 추가 전송 가능 → 총 10개 → W = 10
슬라이딩 윈도우 구조 시각화
- 송신자 측: 전송 후 윈도우 후방 줄어듦, ACK 수신 시 전방 확장
- 수신자 측: 수신 후 후방 줄어듦, ACK 전송 시 전방 확장
✅ 오류 제어 (Error Control)
기법설명
오류 검출 | 수신한 프레임 검사 |
긍정 응답 (ACK) | 수신 성공 여부 통보 |
타임아웃 후 재전송 | ACK 누락 시 재전송 |
부정 응답 (NACK) | 오류 발생 시 즉시 재전송 요청 |
- 프레임 종류: 데이터 프레임, ACK 프레임
- 오류 종류:
- 유실: 타임아웃 → 재전송
- 손상: RX에서 프레임 폐기
✅ ARQ: 자동 재전송 요청
- 신뢰성 없는 링크를 신뢰성 있게 만드는 방식
- 주요 유형:
- Stop-and-Wait ARQ
- Sliding-Window ARQ
- Go-Back-N
- Selective-Reject
목표: 손실 없이 순서대로 수신
✅ Stop-and-Wait ARQ
- 한 프레임 전송 후 ACK 기다림
- 타임아웃 or 손상 시 재전송
- ACK 손상 시 중복 수신 방지 위해 0/1 교번 시퀀스 번호 사용
Stop-and-Wait ARQ 시각도
- Send Window: 1
- Receive Window: 1
- 타이머 필요
✅ Go-Back-N ARQ
- Sliding Window 기반, 가장 많이 사용됨
- 오류 없는 경우: RR or piggybacked ACK 수신
- 오류 발생 시:
- RX는 오류 프레임 및 이후 프레임 모두 폐기
- REJ 전송 → TX는 해당 프레임부터 전부 재전송
- TX는 단일 타이머 사용
윈도우 크기
- Send W = 2ᵏ – 1
- Receive W = 1
✅ Selective-Reject ARQ (SR)
- Go-Back-N의 비효율을 개선
- 오류 프레임만 재전송
- 수신자는 out-of-order 프레임 버퍼링 가능해야 함
수신 응답
- 올바른 프레임 → 개별 ACK
- 오류 프레임 → SREJk (Selective Reject)
SR의 장단점
장점단점
재전송 최소화 → 위성 링크에 적합 | RX 버퍼 요구량 ↑ |
긴 지연 환경에 효율적 | 논리 복잡도 ↑ |
- Send/Recv W = 2ᵏ⁻¹
→ 이유: 중복 프레임 오인 방지
✅ HDLC (High-Level Data Link Control)
- ISO 3009 / ISO 4335 표준
- 많은 링크 제어 프로토콜의 기반
통신국 유형
- Primary (주국)
- Secondary (종속국)
- Combined (혼합)
링크 구성
- Unbalanced, Balanced
동작 모드
- NRM (정상 응답 모드)
- ABM (비동기 대칭 모드)
- ARM (비동기 응답 모드)
✅ HDLC 프레임 구조
- 비트 지향 동기 전송 사용
- 단일 프레임 형식으로 데이터/제어 모두 처리
필드설명
Flag | 01111110 (시작/종료) |
Address | 다지점 통신 주소 |
Control | 흐름/오류 제어 정보 |
Information | 데이터 or 제어 정보 |
FCS | 오류 검출용 |
프레임 유형:
- I: 정보 프레임
- S: 감독 프레임
- U: 번호 없는 제어 프레임
비트 스터핑
- 데이터에 Flag 패턴 포함 시 혼동 방지
- 5개의 1 뒤에 0 삽입 (TX)
- 수신 시 0 제거
- 11이면 오류로 간주 → ABORT
✅ HDLC 동작 단계
- 연결 설정 (U-프레임)
- 데이터 교환 (I/S 프레임)
- 연결 해제 (U-프레임)
'CS > 정보통신공학' 카테고리의 다른 글
[정보통신공학] 중간고사 연습문제 (0) | 2025.04.16 |
---|---|
[정보통신공학] 숙영리 정리본_중간고사 ch01, 02, 04, 06, 07 (0) | 2025.04.11 |
[정보통신공학] Ch06. Error Detection and Correction (4) | 2025.04.11 |
[정보통신공학] Ch04. Transmission Media (0) | 2025.04.11 |
[정보통신공학] Ch02. Protocol Architecture, TCP/IP and Internet-Based Applications (0) | 2025.04.11 |