컴퓨터네트워크 27

CH5. The Network Layer: Control Plane (5.1 Introduction)

데이터 평면과 제어 평면의 역할  • 데이터 평면(Data Plane): 패킷이 네트워크를 통해 전달되는 동안 “포워딩” 작업을 수행하는 구간. • 제어 평면(Control Plane): 어떤 경로를 따라 패킷을 전달할지를 결정하는 작업. 주요 개념 요약: • 포워딩 테이블: 라우터 내부의 데이터 평면에서 사용되는 테이블로, 특정 목적지로 가는 패킷을 어디로 전달해야 할지 지정합니다. • 플로우 테이블: 소프트웨어 정의 네트워킹(SDN) 환경에서 패킷의 행동을 정의하는 일반화된 테이블입니다. 제어 방식  1. 라우터 단위 제어 (Per-router Control) • 라우팅 알고리즘이 각 라우터마다 독립적으로 실행됩니다. • 라우터는 서로 통신하여 최적 경로를 계산하고 포워딩 테이블을 작성합니다. • 예..

4.6 Summary

SECTION 4.1 R1: 네트워크 계층에서 사용되는 용어는 무엇인가?  • Transport 계층: 데이터를 전송할 때 segment(세그먼트)라는 단위로 처리합니다. • Link 계층: 데이터는 frame(프레임)이라는 단위로 처리됩니다. • Network 계층: 데이터를 packet(패킷) 또는 datagram(데이터그램)이라 부릅니다. Router와 Link-layer Switch의 차이점: • Router: 네트워크 계층(Layer 3) 장비로 IP 주소를 사용하여 데이터 전송 경로를 결정합니다. • Link-layer Switch: 데이터 링크 계층(Layer 2) 장비로 MAC 주소를 사용하여 데이터를 전송합니다. R2: 데이터 평면과 제어 평면의 주요 기능은 무엇인가?  • 데이터 평면(..

4.5 Middleboxes

1. Middleboxes란 무엇인가? Middlebox의 정의 (RFC 3234): • “소스 호스트와 목적지 호스트 간의 데이터 경로에서 IP 라우터의 표준 기능 외의 작업을 수행하는 중간 장치.” Middlebox의 주요 역할 Middlebox는 다음과 같은 세 가지 주요 서비스를 제공한다: 1. NAT (Network Address Translation): • IP 주소와 포트 번호를 변환하여 네트워크 주소를 보호하고, 주소 부족 문제를 해결. 2. 보안 서비스: • 방화벽(Firewall): 패킷 필터링, 특정 트래픽 차단. • IDS (Intrusion Detection System): 의심스러운 패킷 탐지 및 알림. 3. 성능 향상: • 캐싱: 콘텐츠를 네트워크 가장자리에서 저장하여 응답 시..

4.4 Generalized Forwarding and SDN

1. Generalized Forwarding: Match-Plus-Action 전통적 포워딩 방식의 한계  • 이전 섹션에서 논의한 Destination-Based Forwarding은 목적지 IP 주소를 기반으로 포워딩하는 단순한 방식이었다. • Generalized Forwarding은 더 많은 헤더 필드(예: MAC 주소, TCP/UDP 포트 번호 등)를 매칭하고, 다양한 Action(전송, 드롭, 리다이렉션 등)을 수행할 수 있다. Match-Plus-Action Paradigm  • Match: • 헤더 필드(예: 소스 MAC, 목적지 IP 등)와 일치하는 규칙을 찾는다. • Action: • 규칙이 매칭되면 수행할 작업을 지정한다. • 예: 특정 포트로 패킷 전달, 패킷을 삭제, 헤더 값 수..

4.3 The Internet Protocol(IP): IPv4, Addressing, IPv6, and More

이 섹션에서는 인터넷의 기본 네트워크 계층 프로토콜인 **IP(Internet Protocol)**에 대해 다룬다. IP는 인터넷에서 데이터그램을 전달하는 데 핵심적인 역할을 하며, 현재 널리 사용되는 두 가지 버전인 IPv4와 IPv6를 중심으로 설명이 진행된다. 4.3.1 IPv4 데이터그램 포맷 IPv4는 오늘날 인터넷에서 가장 널리 사용되는 IP 프로토콜의 버전이다. IPv4 데이터그램은 네트워크 계층에서 사용되는 기본 단위로, **헤더(Header)**와 **데이터(Data)**로 구성된다.여기서 헤더는 데이터그램의 처리를 위해 필요한 제어 정보를 포함하고 있다. IPv4 데이터그램 포맷(그림 4.17)그림 4.17은 IPv4 데이터그램의 포맷을 나타낸다. 각 필드의 크기와 역할은 다음과 같다:..

4.2 What's Inside a Router?

라우터는 네트워크 계층에서 데이터그램을 입력 링크에서 받아 적절한 출력 링크로 전달하는 역할을 한다.이 과정에서 라우터의 내부 구조는 크게 네 가지 구성 요소로 나뉜다. 그림 4.4: 라우터 아키텍처그림 4.4는 라우터의 주요 구성 요소를 보여준다. 라우터는 다음 네 가지 주요 컴포넌트로 구성된다. 1. 입력 포트(Input Port): • 데이터그램이 라우터로 들어오는 링크의 종단점 역할을 한다. • 기능: • 물리 계층의 신호를 처리하고, 데이터 링크 계층에서 프레임을 디캡슐화(decapsulation)하여 네트워크 계층 데이터그램을 추출한다. • 데이터그램의 헤더 정보를 사용해 포워딩 테이블을 조회하고, 해당 데이터그램이 나가야 할 출력 포트를 결정한다. 2. 스위칭 패브릭(Switching Fab..

4.1 An Overview of Network Layer

네트워크 계층은 인터넷 통신에서 중요한 역할을 한다.책에서는 이를 간단히 **H1(보내는 호스트)**와 H2(받는 호스트) 사이에 라우터가 여러 개 존재하는 네트워크의 관점에서 설명하고 있다. H1이 H2로 데이터를 보낼 때 네트워크 계층은 아래와 같은 역할을 한다.  1. H1의 역할: • **세그먼트(Segment)**를 상위 계층(전송 계층)에서 받아온다. • 이 세그먼트를 **데이터그램(Datagram)**이라는 형태로 캡슐화한다. • 캡슐화된 데이터그램을 가장 가까운 라우터(예: R1)로 보낸다.  2. 라우터(R1, R2, …): • 라우터는 각 포트의 입력 링크로 들어온 데이터그램을 출력 링크로 전달한다.이 과정을 **포워딩(Forwarding)**이라고 한다. • 또한, 여러 라우터가 데이..

3.7 TCP Congestion Control

3.7.1 Classic TCP Congestion ControlClassic TCP Congestion Control은 TCP가 네트워크 혼잡 상황에서 데이터를 어떻게 송신 속도를 조정하며 안정적인 전송을 보장하는지 설명하는 핵심적인 메커니즘이다.TCP는 네트워크 혼잡이 감지되었을 때 송신 속도를 줄이고, 혼잡이 해소되었다고 판단되면 송신 속도를 점진적으로 증가시키는 과정을 통해 혼잡을 관리한다. TCP 송신 속도 제한 방법 TCP 송신자는 네트워크 혼잡을 방지하기 위해 송신 속도를 제한한다. 이를 위해 다음과 같은 핵심 변수들이 사용된다: • Congestion Window (cwnd): 송신자가 네트워크에 보내는 데이터의 양을 제어하는 주요 변수이다. cwnd의 값은 혼잡 상태에 따라 증가하거나 감..

3.6 Principles of Congestion Control

3.6.1 The Causes and the Costs of Congestion  네트워크 혼잡(congestion)은 데이터를 보내는 송신자가 많아지며 네트워크 용량을 초과할 때 발생한다.이로 인해 패킷 손실, 지연 증가, 네트워크 성능 저하가 나타난다. 혼잡 문제를 해결하려면 혼잡의 원인과 그로 인한 비용을 이해해야 한다. 혼잡의 원인과 결과를 이해하기 위한 3가지 시나리오 Scenario 1: Two Senders, a Router with Infinite Buffers  • 환경: Host A와 Host B가 동일한 라우터와 단일 홉 링크를 공유한다. 라우터의 버퍼는 무한하다고 가정한다. • 상황 설명: • 두 호스트가 동일한 전송률()로 데이터를 전송하며, 공유 링크의 용량은 이다. • 링크 용..

3.5 Connection-Oriented Transport: TCP

3.5.1 The TCP Connection TCP 연결: 신뢰성 있는 데이터 전송을 위한 기반 TCP(Transmission Control Protocol)는 인터넷의 핵심적인 전송 계층 프로토콜로, 신뢰성 있는 데이터 전송을 제공한다.TCP는 “연결 지향적(connection-oriented)“이라는 특징을 가지며, 데이터 전송 전에 두 프로세스가 서로 연결을 설정해야 한다.이 연결 과정에서 데이터의 전송 및 수신을 위한 여러 상태 변수들이 설정된다. 1. 연결 지향적 (Connection-Oriented)의 의미 TCP가 연결 지향적이라는 것은, 데이터를 주고받기 전에 두 애플리케이션 프로세스가 반드시 **“핸드셰이크(handshake)”**를 통해 서로를 확인하고 연결을 설정해야 한다는 뜻이다.이..