스위칭 스위치 구조가 라우터의 핵심인 이유 → 패킷이 입력 포트에서 출력 포트로 실제로 스위칭(포워딩)되는 구조를 통과하기 때문 세 가지 스위칭 기술 1. 메모리를 통한 교환 CPU(라우팅 프로세서)를 직접 제어해서 입력 포트와 출력 포트 사이에 패킷 스위칭을 하는 방법 가장 단순한 초기의 라우터이자 사용한 전통적인 컴퓨터 입력 포트와 출력 포트는 전통적인 운영체제에서 전통적인 I/O 장치처럼 작동 동작 과정 패킷이 도착하면 입력 포트는 라우팅 프로세서에게 인터럽트를 보냄 패킷을 프로세서 메모리에 복사 라우팅 프로세서는 헤더에서 목적지 주소를 추출 및 포워딩 테이블에서 적절한 출력 포트를 찾음 이후, 라우팅 프로세서는 다음 패킷을 출력 포트의 버퍼에 복사한다. 메모리 대역폭이 초당 최대 B인 패킷을 메모..
입력 포트 처리 입력 포트의 라인 종단 기능과 링크 계층 처리 → 라우터의 개별 입력 링크와 관련된 물리 계층 및 데이터 링크 계층을 구현 입력 포트에서 수행되는 검색 ← 라우터 동작의 핵심 포워딩 테이블을 사용하여 도착 패킷이 스위치 구조를 통해 전달되는 출력 포트를 검색 포워딩 테이블의 사용 및 갱신 포워딩 테이블은 라우팅 프로세서에서 계산되거나 갱신됨 또는 원격 SDN 컨트롤러에서 수신됨 위의 라우팅 프로세서는 다른 네트워크 라우터의 라우팅 프로세서와 상호작용하기 위해 라우팅 프로토콜을 사용한다. 포워딩 테이블은 라우팅 프로세서에서 입력 라인 카드로 복사된다. 각 라인 카드에서 위와 같은 섀도 복사본을 사용할 때의 이점 → 패킷 단위로 중앙 집중식 라우팅 프로세서를 호출하지 않게 됨 → 병목 현상을..
라우터 내부 구조 상위 레벨의 관점에서 본 일반적인 라우터 구조 입력 포트(input port) 여기서의 포트(port) → 물리적인 입출력 라우터 인터페이스를 의미 네트워크 애플리케이션 및 소켓과 관련된 소프트웨어 포트와는 명백히 다름 가장 중요한 기능 - 검색 기능 이는 가장 오른쪽 박스에서 발생 포워딩 테이블을 참조하여 도착된 패킷이 스위치 구조를 통해 라우터 출력 포트를 결정 → 제어 패킷은 입력 포트에서 라우팅 프로세서로 전달된다. 맨 왼쪽 박스와 출력 포트의 맨 오른쪽 박스 → 라우터로 들어오는 입력 링크로, 물리 계층 기능을 수행 들어오는 링크의 반대편에 있는 링크 계층과 상호 운용을 하기 위해 필요한 링크 계층 기능을 수행 이 링크 계층 기능은 입력 및 출력 포트에서 미들박스로 표시된다. ..
네트워크 서비스 모델 네트워크 서비스 모델 : 송수신 호스트 간 패킷 전송 특성을 정의 네트워킹에 관련된 다양한 의문은 네트워크 계층이 제공하는 서비스 모델에 따라 결정됨 트랜스포트에서 네트워크 계층이 목적지까지 패킷을 전달하는 걸 믿을 수 있는가? 여러 패킷이 전송될 때 동일한 순서로 수신자의 트랜스포트 계층에 전달될 수 있는가? 네트워크가 네트워크 혼잡에 대한 피드백을 제공할 수 있는가? 송신 호스트와 수신 호스트에서 트랜스포트 계층을 연결하는 채널의 추상적인 관점이란? 네트워크 계층이 제공할 수 있는 서비스 보장된 전달 패킷이 출발지 호스트로부터 목적지 호스트까지 도착하는 것을 보장하는 서비스 지연 제한 이내의 보장된 전달 패킷의 전달과 더불어 호스트 간의 특정 지연 제한 안에 전달함을 보장하는 서..
포워딩 테이블(forwarding table) 네트워크 라우터에서 필수 불가결한 요소 포워딩은 네트워크 계층 데이터 평면에 의해 실행되는 매우 중요한 기능 라우터 역할 : 도착하는 패킷 헤더의 필드값을 조사하여 패킷을 전달 → 이 값을 라우터의 포워딩 테이블의 내부 색인으로 사용 포워딩 테이블 엔트리에 저장되어 있는 헤더 값 해당 패킷이 전달되어야 하는 라우터의 외부 링크 인터페이스를 나타냄 헤더의 값은 네트워크 계층 프로토콜에 따라 다름 패킷의 목적지 주소일 수도 있고, 패킷이 속한 연결의 지시 일수도 있음 제어 평면: 전통적인 접근 방법 첫 포워딩 테이블이 어떻게 구성되는가? (제어 평면에서) 라우팅과 (데이터 평면에서) 포워딩 사이의 중요한 상호작용을 보임 라우터의 포워딩 테이블의 내용은 라우팅 알..
두 호스트 사이에 네트워킹이 이뤄지는 과정 두 호스트 사이에는 중계 라우터가 있다고 가정 과정 송신자 네트워크 계층은 본인의 트랜스포트 계층으로부터 세그먼트를 얻는다. 각 세그먼트를 데이터그램으로 캡슐화하고, 인접한 라우터에게 데이터그램을 전송 수신 호스트의 네트워크 계층은 트랜스포트 계층 세그먼트를 추출 후, 본인의 트랜스포트 계층가지 전달 네트워크 제어 평면에 의해 출발지 ~ 목적지 호스트까지 전송되도록 함 → 이때 로컬 포워딩, 라우터 별 포워딩 등을 대응시킴 의미 각 라우터 데이터 평면 역할 → 입력 링크에서 출력 링크로 데이터그램을 전달하는 것 네트워크 제어 평면의 근본적인 역할 → 데이터그램이 출발지 ~ 목적지까지 전달되게끔 로컬, 라우터별 포워딩을 대응시킨 것 라우터 프로토콜 스택 트랜스포트..
QUIC(Quick UDP Internet Connections) 란? QUIC → 빠른 UDP 인터넷 연결 프로토콜 애플리케이션 설계자는 애플리케이션 계층에 항상 자신의 프로토콜을 확장할 수 있다. 신뢰적인 데이터 전송, 혼잡 제어 및 연결 관리를 위한 많은 접근 방식을 사용 QUIC의 특징 QUIC는 UDP를 하위 트랜스포트 계층 프로토콜로 사용하는 애플리케이션 계층 프로토콜 특히 단순하지만 발전된 HTTP/2 버전 위에서 인터페이스 되도록 설계됨 가까운 장래에 HTTP/3은 기본적으로 QUIC을 통합할 것 QUIC의 주요 기능 연결지향적이고 안전함 TCP와 마찬가지로 QUIC은 두 종단 간의 연결지향 프로토콜 이를 위해 QUIC 연결 상태를 설정하기 위해 종단 간에 핸드셰이크가 필요 연결 상태의 두..
공평성 혼잡 제어 메커니즘이 공평하다는 것의 정의 가정 각각 다른 종단 간의 경로를 갖고, 전송률이 R bps인 병목 링크가 존재 K개의 TCP 연결이 해당 병목 링크를 지나간다. 병목 링크(bottleneck link) 각 연결에 대해 연결 경로상에 있는 모든 링크는 혼잡하지 않음 병목 링크의 전송 용량과 비교해서 충분한 전송 용량을 갖고 있음을 의미 각 TCP 연결은 큰 파일을 전송하고 있고, 병목 링크를 통과하는 UDP 트래픽은 없음. 위 가정에서 각 연결의 평균 전송률이 R/K에 가까울수록 공평한 것 → 각 연결은 링크 대역폭을 동등하게 공유 TCP가 연결 사이에서 대역폭을 똑같이 공유하는 이유 전송률이 R인 링크 하나를 공유하는 2개의 TCP 연결의 경우 가정 두 연결은 같은 MSS와 RTT를 ..