전송 방식
데이터 전송 방식은 어떻게 목적지에 도달하는지에 따라 분류할 수 있다.
점대점(Point-to-Point) 방식
한 장치에서 다른 특정 장치로 데이터를 전송하는 방식
특징
- 두 개의 노드 사이 직접적인 연결 필요
- LAN에서는 MAC 주소를 기반, WAN에서는 전용선 또는 VPN을 이용한 논리적 연결을 통해 이루어진다.
ex) 전화 통신, VPN
브로드캐스팅(BroadCasting) 방식
네트워크에 연결된 모든 장치에게 데이터를 전송하는 방식
특징
- 일대다 방식으로 동작
- 동일 네트워크(LAN) 내에서는 라우터 없이 전송할 수 있지만, WAN에서는 브로드캐스트 트래픽이 제한되며, 라우터가 이를 필터링할 수도 있다.
ex) DHCP 요청, IPv4 브로드캐스트 패킷(255.255.255.255)
멀티포인트(Multipoint) 방식
하나의 송신자가 여러 개의 수신자에게 데이터를 전송하는 방식
특징
- 브로드캐스트와 달리 특정 그룹만 데이터를 받을 수 있도록 제한 가능
- 일대다 또는 다대다 통신 가능
- 주로 멀티캐스트 기술을 이용해 구현
ex) IPTV, 온라인 게임 서버
멀티캐스팅 vs 유니캐스팅
- 멀티캐스팅: 한 번의 전송으로 다수의 수신 호스트에 데이터 전송 가능
- 유니캐스팅: 한 번의 전송으로 수신 호스트 하나에만 데이터 전송 가능
오류 제어
네트워크에서 발생하는 오류를 감지하고, 복구하여 데이터의 신뢰성을 유지하는 과정
전송 오류 유형
-
비트 오류: 한 개 이상의 비트가 바뀌는 오류
- 패리티 체크를 통해 오류 검출 가능
-
패킷 손실: 네트워크 혼잡, 신호 감쇠로 인해 패킷이 유실
- 송신 호스트의 타임아웃 기능으로 오류 검출 가능
- 중복 패킷: 같은 패킷이 여러 번 도착
- 패킷 순서 오류: 패킷이 올바른 순서로 도착하지 않음
순서 번호
각 프레임의 고유 번호로 부여한다.
역할
- 패킷이 유실되었는지 확인: 특정 순서 번호의 패킷이 오지 않으면 재전송 요청
- 중복 패킷 식별 가능: 동일한 패킷이 여러 번 도착하면 중복 패킷 무시
- 패킷 순서를 올바르게 정렬 가능: 경로 변경으로 순서가 뒤죽박죽일 수 있지만, 재정렬 가능
흐름 제어
송신 속도를 제어해 수신 호스트 측 과부하 방지
기법
-
Stop-and-Wait: 한 번에 하나의 패킷을 보내고 응답(Ack)을 기다림
- 느리지만 신뢰성 높음
-
Sliding-Window: 일정 개수의 패킷을 보내고 수신 측이 처리 가능한 만큼 수락
- 효율적
기본 원리
-
수신 호스트가 다음에 수신할 데이터 프레임의 개수를 통지
- 수신 호스트의 버퍼 수에 직접적인 영향을 받는다.
- 송신 호스트는 위 수에 근거해 연속해서 데이터 프레임 전송
프레임 구조
프레임은 네트워크에서 데이터를 일정 크기로 나누어 전송하는 기본 단위
각 프레임은 헤더, 데이터, 트레일러로 구성되며, 프레임의 시작과 끝을 어떻게 구분할지에 따라 문자 프레임 방식과 비트 프레임 방식으로 나뉜다.
문자 프레임
문자 프레임 방식은 특정 문자(Character)를 사용해 프레임의 시작과 끝을 구분하는 방식
| STX(Start of Text) | 데이터 | ETX(End of Text) |- STX: 프레임의 시작을 나타내는 문자
- ETX: 프레임의 끝을 나타내는 문자
문제점
-
데이터 부분에 ETX와 동일한 문자가 포함되면 수신 측에서 프레임 종료로 착각할 수 있다.
- 문자 스터핑을 사용해 해결: DLE(Data Link Escape) 문자를 추가
비트 프레임
비트 프레임 방식은 특정한 비트 패턴을 사용해 프레임의 시작과 끝을 구분하는 방식
| 플래그(Flag, 01111110) | 데이터 | 오류 검사(CRC) | 플래그(01111110) |- 플래그: 시작과 끝을 나타내는 비트 패턴
- CRC: 데이터가 손상되지 않았는지 검증
문제점
-
플래그와 동일한 비트 패턴이 포함되어 수신 측에서 착각할 수 있다.
- 비트 스터핑을 통해 강제로 0을 삽입 두 방식에서 스터핑을 사용할 때 수신 호스트는 강제로 추가된 문자나 비트를 상위 계층인 네트워크 계층에 전달하기 전 제거해야 한다.
오류 검출 기법
오류 검출은 데이터가 손상되거나 변조되지 않았는지 확인하는 과정이다. 일반적으로는 오류 복구 코드를 이용한 순방향 오류 복구 방식은 사용하지 않고, 재전송 방식을 이용해 오류를 복구한다. 이를 ARQ(Automatic Repeat reQuest) 방식이라 한다.
이를 위해선 송신 호스트가 오류를 검출하기 위한 코드를 전송 데이터와 함께 송신해야 한다. 오류 검출 코드는 패리티 비트, 블록 검사, 다항 코드 등을 이용해 생성할 수 있다.
패리티 비트
데이터에 1비트를 추가해 오류를 감지한다.
문제점
- 간단하지만, 검출 능력이 낮다.
블록 검사
여러 개의 바이트를 하나의 블록으로 구성한 후 교차 검사를 한다.
문제점
- 전송되는 데이터의 양과 비교해 오류 검출을 위한 오버헤드가 크다.
다항 코드
다항식을 이용해 오류를 검출하는 네트워크 프로토콜에서 가장 많이 사용하는 검출 기법이다.
과정
- 데이터를 이진수로 간주하고 다항식으로 표현
- 모듈로 연산을 통해 나머지 값을 오류 검출 코드(FCS)를 생성
- 수신 측에서 동일한 연산을 통해 데이터 손상 확인
장점
- 연속된 비트 오류를 효과적으로 감지
- 하드웨어 및 소프트웨어 구현 간단
- 버스트 오류(특정 위치에 집중적으로 발생하는 오류) 검출 능력이 뛰어남