본 자료 정리는 '쉽게 배우는 데이터 통신과 컴퓨터 네트워크(개정판)' 원서에 출처합니다. Copyright © 한빛 아카데미.
라우팅
혼잡 제어
패킷의 분할과 병합
연결형 서비스와 비연결형 서비스
비연결형 서비스 (Connectionless Service)
패킷의 전달 순서
패킷 분실 가능성
인터넷 환경의 예
연결형 서비스 (Connection-oriented Service)
전송 전에 연결을 미리 설정하므로, 상대적으로 신뢰성이 높음
TCP: 전송 계층의 기능을 지원하는 연결형 프로토콜
도착하는 패킷의 전달 순서가 송신 순서와 동일: 동일 경로 사용
라우팅 (Routing)
패킷의 전송 경로를 지정
전송 경로 결정시 고려 사항
공평 원칙: 다른 패킷의 우선 처리를 위해 다른 패킷이 손해를 보면 안됨
효율 원칙: 전체 네트워크의 효율성에 대해 고려해야 함: 평균지연시간, 전체 네트워크의 성능, 중개과정을 거치는 라우터 수의 최소화 등
정적/동적 라우팅
정적 라우팅 (Static Routing)
패킷 전송이 이루어지기 전에 경로 정보를 라우터가 미리 저장하여 중개
단점: 경로 정보의 갱신이 어려우므로, 네트워크 변화/네트워크 혼잡도 대처 부족
동적 라우팅 (Dynamic Routing)
라우터의 경로 정보가 네트워크 상황에 따라 적절히 조절됨
단점: 다이나믹한 경로 정보의 수집과 관리로 인한 성능 저하
HELLO/ECHO 패킷
라우팅 테이블 (Routing Table)
패킷 전송 과정에서 라우터들이 경로를 쉽게 찾도록 하는 가장 기본적인 도구
필수 정보: 목적지 호스트, 다음 홉
목적지 호스트: 패킷의 최종 목적지가 되는 호스트 주소
다음 홉: 목적지 호스트까지 패킷을 전달하기 위한 인접 경로
라우팅 정보의 처리
소스 라우팅
패킷을 전송하는 호스트가 목적지 호스트까지 전달 경로를 스스로 결정하는 방식
경로 정보를 전송 패킷에 기록함
데이터그램 방식과 가상 회선 방식에서 모두 이용함
분산 라우팅
라우팅 정보가 분산되는 방식, 패킷의 전송 경로에 위치한 각 라우터가 경로 선택에 참여함
네트워크에 존재하는 호스트의 수가 많아질수록 다른 방식보다 효과적일 수 있음
중앙 라우팅
RCC(Routing Control Center)라는 특별한 호스트를 사용해 전송 경로에 관한 모든 정보를 관리하는 방식
RCC로부터 목적지 호스트까지 도착하기 위한 경로 정보를 미리 얻음
장점: 경로 정보를 특정 호스트가 관리하기 때문에 경로 정보를 관리하는 부담이 줄어듬
단점: RCC에 과중한 트래픽을 주어 전체 효율이 떨어짐
계층 라우팅
분산 라우팅 기능과 중앙 라우팅 기능을 적절히 조합하는 방식
네트워크 규모가 계속 커지는 환경에 효과적
혼잡 제어
- 혼잡: 네트워크 성능 감소 현상이 급격하게 악화되는 형산
혼잡 제어: 혼잡 문제를 해결하기 위한 방안
흐름 제어: 송신, 수신 호스트 사이의 논리적인 점대점 전송 속도를 다룸
혼잡 제어: 서브넷(아래 그림의 구름)에서 네트워크의 전송 능력 문제를 다룸
혼잡의 원인
초기 혼잡 과정에서 타임아웃 시간이 작으면 혼잡도가 급격히 증가
패킷 도착 순서가 다른 상황에서 패킷을 분실 처리하면 타임아웃 증가
의도적으로 피기배킹을 사용하면 응답 시간이 느려져 타임아웃 증가
패킷 생존 시간을 작게 하면 패킷이 강제로 제거되어 타임아웃 증가
라우팅 알고리즘도 혼잡에 영향을 줌
혼잡이 발생하지 않는 경로를 배정하도록 설계
혼잡이 발생하는 경로를 선택하면 혼잡이 주변으로 확대됨
트래픽 성형
혼잡은 트래픽이 특정 시간에 집중되는 버스트(Burst)현상이 원인
트래픽 성형 (Traffic Shaping): 송신 호스트가 전송하는 패킷의 발생 빈도가 네트워크에서 예측할 수 있는 전송률로 이루어지게 하는 기능
리키 버킷 알고리즘: 깔대기의 출력은 고정률로 일정하게 출력됨
혼잡 제거
혼잡 감지 시 혼잡이 사라질 때까지 연결 설정을 허락하지 않는 방법
혼잡 제거를 위해 호스트와 서브넷이 가상 회선 연결 과정에서 협상을 함
즉, 사용 대역을 미리 할당 받음 -> 자원 예약 방식
네트워크에서 수용 불가능한 정도로 트래픽이 발생하는 일을 사전에 예방함
단점: 전송 대역을 해당 사용자가 이용하지 않더라도 다른 사용자가 이용하지 못함 -> 비효율적
ECN (Explicit Congestion Notification) 패킷 사용방식
라우터는 트래픽의 양을 모니터해 출력 선로의 사용 정도가 한계치를 초과하면 주의 표시 (ECN 패킷을 보냄)를 함
주의 표시한 방향의 경로는 혼잡이 발생할 가능성이 높기 때문에 송신 호스트는 송신량을 관리함
간단한 라우팅 프로토콜
네트워크 거리 기준: 라우터의 개수 = 홉 Hop의 수로 판단
최단 경로 라우팅
패킷이 목적지에 도달할 때까지 라우터 수가 최소화될 수 있도록 경로 선택
장점: 간단한 형식으로 적용가능
플러딩 (Flooding)
라우터가 자신에게 입력된 패킷을 출력 가능한 모든 경로로 중개하는 방식
패킷이 무한히 만들어질 수 있으므로 홉 수를 일정 범위로 제한
특별한 목적 (예, 중요 데이터를 모든 호스트에 전달하는 일)으로만 사용
거리 벡터 라우팅 프로토콜
라우터가 자신과 연결된 이웃 라우터와 라우팅 정보를 교환하는 방식
필수 정보
링크 벡터
링크 백터 L(x): 라우터 x와 연결된 이웃 네트워크에 대한 연결 정보를 보관
거리 벡터
전체 네트워크에 소속된 개별 네트워크들까지의 거리 정보를 관리
다음 홉 벡터
다음 홉 벡터 H(x)는 개별 네트워크까지 패킷을 전송하는 경로에 있는 다음 홉 정보를 관리
RIP ( Routing Information Protocol) 프로토콜
거리 벡터 방식의 내부 라우팅 프로토콜 중에서 가장 간단하게 구현된 것
소규모 네트워크 환경에 적합, 현재 가장 많이 사용하는 라우팅 프로토콜
라우팅 테이블 적용
새로운 네트워크의 목적지 주소이면 라우팅 테이블에 적용
거리 벡터 정보가 기존 정보와 비교하여 목적지까지 도착하는 지연이 더 적으면 대체
라우터로부터 거리 벡터 정보가 들어왔을 때, 라우팅 테이블에 해당 라우터를 다음 홉으로 하는 등록 정보가 있으면 새로운 정보로 수정
라우터 R1의 라우팅 테이블
벡터 정보를 교환하기 위해 다음과 같은 패킷 구조를 사용함: 최대 25개까지
Comman(명령): 값이 1이면 RIP 요청을, 2이면 RIP 응답을 의미.
라우터 초기화시 RIP 요청이 브로드캐스트되면 모든 라우터는 즉각 응답함
Version(버전): RIP 프로토콜의 버전 번호
Address Family Identifier(주소 패킬리 구분자): IP 프로토콜의 주소는 2로 설정
IP Address(IP 주소): 특정한 네트워크를 지칭하는 용도로 사용되기 때문에 IP 주소의 네트워크 부분의 값만 사용하고, 호스트 부분은 0으로 채움
Metric(거리): 해당 라우터에서 목적지 네트워크까지의 거리
링크 상태(Link State) 라우팅 프로토콜)
개별 라우터가 이웃 라우터까지의 거리 정보를 구한 후, 이를 네트워크에 연결된 모든 라우터에 통보
거리 벡터 방식과 반대
거리 벡터 라우팅 프로토콜의 단점을 보완하기 위한 방식: 각 라우터가 상당량의 정보 전송을 요구받음(주기적 전송으로 트래픽 발생) -> 링크 상태 라우팅 프로토콜은 상황 변화시만 정보 전달
플러딩(Flooding)기법: 임의의 라우터가 이웃한 모든 라우터에 정보를 전달하고, 다시 이들 라우터가 주변의 모든 라우터에 정보를 전달하는 방식으로 동작
예) TCP/IP 기반의 인터넷에서 사용하는 OSPF
외부 라우팅 프로토콜
내부 라우팅 프로토콜
거리 벡터 방식을 사용하는 RIP
링크 상태 방식을 사용하는 OSPF
외부 라우팅 프로토콜
BGP (Border Gateway Protocol)
TCP 프로토콜을 사용하여 메시지 교환
IP 프로토콜의 주요 특징
비연결형 서비스를 제공
패킷을 분할/병합하는 기능을 수행
데이터 체크섬은 제공하지 않고, 헤더 체크섬만 제공
Best Effort 원칙에 따른 전송 기능을 제공: 100% 도착 보장이 없음
(최선의 노력, but 보장 x)
IP 헤더 구조
DS (Differentiated Services)
사전에 서비스 제공자와 서비스 이용자 사이에 서비스 등급에 대해 합의
동일한 DS 값을 갖는 트래픽들은 동일한 서비스 등급으로 처리됨
ECN (Explicit Congestion Notification)
ECT 0과 ECT 1은 동일한 의미
ECN 기능을 위하여 TCP 프로토콜의 헤더에 ECE 필드와 CWR 필드가 추가
패킷 분할 (Fragmentation)
Identification(식별자 혹은 구분자)
IP 헤더의 두 번째 워드에는 패킷 분할과 관련된 정보가 포함
Identification은 송신 호스트가 지정하는 패킷 구분자 기능을 수행함 -> 병합할 때 활용
DF (Don't Fragment)
MF (More Fragment)
MF 필드 값을 1로 지정하여 분할 패킷이 뒤에 계속됨을 표시
마지막 패킷을 MF 비트를 0으로 지정하여 분할 패킷이 더 없음을 표시
Fragment Offset(분할 옵셋)
저장되는 값은 분할된 패킷의 내용이 원래의 분할 전 데이터에 위치하는 상대 주소값
값은 8바이트의 배수
주소 관련 필드
Source Address: 송신 호스트의 IP 주소
Destination Address: 수신 호스트의 IP
Network(네트워크): 네트워크 주소, NIC (Network Information Center)에서 담당
Host(호스트): 네트워크 주소가 결정되면 하위의 호스트 주소를 의미하는 host 비트 값을 개별 네트워크의 관리자가 할당
// 일부 내용 생략
DHCP (Dynamic Host Configuration Protocol) 프로토콜
IP 주소를 여러 컴퓨터가 공유해서 사용 (e.g. 실습실 컴퓨터)
자동 할당 가능 IP주소는 DHCP 서버가 관리하는 풀에 저장되어 관리됨:
클라이언트로부터 IP주소 요청이 오면 풀에서 하나의 IP주소를 할당함
수정해야 될 부분이 있으면 댓글로 알려주세요 :)