EIGRP에 대한 이해: 초보 개발자를 위한 가이드

이미지
EIGRP에 대한 이해: 초보 개발자를 위한 가이드 개요 EIGRP(Enhanced Interior Gateway Routing Protocol)는 시스코에서 개발한 고급 거리 벡터 라우팅 프로토콜입니다. 이 프로토콜은 기존의 거리 벡터 라우팅 프로토콜과 링크 상태 라우팅 프로토콜의 장점을 결합한 하이브리드 형태를 띠고 있습니다. 그렇기 때문에 EIGRP는 다음과 같은 기능적 특징을 가지고 있습니다: 장점 Advanced Distance Vector : 거리 벡터 라우팅의 고급 버전 Fast Convergence : 빠른 수렴 VLSM & CIDR 지원 : 가변 길이 서브넷 마스킹과 클래스 없는 도메인 간 라우팅 지원 다중 네트워크 계층 프로토콜 지원 : IP, IPX, AppleTalk 등 멀티캐스트 및 유니캐스트를 이용한 업데이트 100% 루프 프리 클래스리스 라우팅 동등 및 불균등 부하 분산 지원 단점 시스코 라우터에서만 사용 가능 대규모 네트워크 관리 어려움 네트워크 장애 시 문제 해결 어려움 관련 용어 Neighbor Table : 이웃 테이블, 인접 라우터 목록 관리 Topology Table : 토폴로지 테이블, 다른 EIGRP 이웃 라우터로부터 학습한 모든 경로 관리 Routing Table : 라우팅 테이블, 최상의 경로를 선택하여 저장 Successor & Feasible Successor : 최적 경로상의 이웃과 백업 경로상의 이웃 네트워크 정보 수집 및 경로 생성 과정 EIGRP에서 네트워크 정보를 수집하고 최적의 목적지 경로를 만드는 과정은 다음과 같습니다: EIGRP 이웃 테이블 생성 및 IP 라우팅 테이블 교환 라우팅 테이블 정보 EIGRP 토폴로지 테이블에 저장 최상의 경로 및 다른 적합한 경로 파악 토폴로지 테이블에서 최상의 경로를 라우팅 테이블에 저장 EIGRP 컴포지트 벡터 메트릭 EIGRP는 여러 벡터 메트릭을 결합하여 경로를 계산합니다. 아래는 show ip eigrp topology 명령어를 사용한 예시와

Java Stream subscribeOn 과 publishOn 함수

subscribeOn() 함수

  • 구독(subscription)이 시작되는 스레드를 변경한다.
  • 데이터 소스를 구독하는 스레드를 변경하는 것

publishOn() 함수

  • 다운스트림(downstream) 연산자가 실행되는 스레드를 변경한다.
  • 데이터 소스에서 발행되는 데이터를 처리하는 스레드를 변경

예시 코드

import reactor.core.publisher.Flux;
import reactor.core.scheduler.Schedulers;

public class Example {

    public static void main(String[] args) {
        Flux.just(1, 2, 3)
                .subscribeOn(Schedulers.elastic())
                .map(i -> {
                    // I/O 작업을 수행하는 스레드 변경
                    return performIOOperation(i);
                })
                .publishOn(Schedulers.parallel())
                .map(result -> {
                    // 결과를 처리하는 스레드 변경
                    return processResult(result);
                })
                .subscribe();
    }

    private static String performIOOperation(int i) {
        // I/O 작업을 수행
        return "result " + i;
    }

    private static String processResult(String result) {
        // 결과를 처리
        return "processed " + result;
    }
}

Schedulers elastic 과 parallel

  • 두개 다 새로운 스레드 풀을 만들어서 비동기 작업을 수행 할 수 있도록 한다.
  • 스레드 풀을 만드는 방식과 크기, 동작 방식 차이가 있다.
  • 상황에 따라 적합한 스레드풀을 사용해야 비동기 처리가 최적화 된다.

Schedulers.elastic()

  • 유연한 크기의 스레드 풀을 생성한다.
  • 사용가능한 스레드가 없으면 스레드를 생성하여 처리하고 일정 시간 사용하지 않으면 자동으로 제거 한다.
  • I/O 작업이 주를 이루는 경우 적합하다.
  • 작업이 수행되는 시간이 다양한 경우 유용하다.

Schedulers.parallel()

  • 고정 크기의 스레드 풀을 생성한다.
  • 사용가능한 스레드를 찾아 작업을 할당한다.
  • CPU-bound 한 작업이 주를 이루는 경우에 적합하다.

댓글

이 블로그의 인기 게시물

이클립스 오류 - 프로젝트 폴더가 열리지 않는 경우

Subversion (SVN) 설치 및 다중 저장소 설정 가이드

MySQL Root 비밀번호 재설정하기: 완벽한 가이드