[컴퓨터네트워크] Ch4. Network Layer (Data plane)

jungizz_·2023년 12월 8일

Computer Networks

목록 보기
4/7
post-thumbnail

Network sevice model

Basic Roles

  • 이미 알고있는 end-device간 네트워크를 통해 데이터를 전송할 수 있는 서비스 제공
  • Addressing > Encapsulation > Routing > Decapsulation

Components

  • source end system
    • transport layer는 network layer에게 목적지로 가는 segment를 전달해달라고 요청
    • network layer는 segment를 datagram으로 encapsulation
  • router
    • datagram 헤더 기반으로 루트 지정
  • destination end system
    • network layer가 segment를 transport layer로 전달

2-key network layer functions

  • forwarding: 라우터에 입력된 패킷을 판별해서 적절한 출력으로 보내는 과정
  • routing: 패킷으로 source에서 destination으로 가는 경로 설정

Virtual Circuit and Datagram Networks

  • Forwarding: 패킷이 라우터의 입력 링크에 도달했을 때, 라우터는 그 패킷을 적절한 출력 링크로 이동시켜야함
  • Routing: 송신자가 수신자에게 패킷을 전송할 때의 경로를 계산하기 위해 라우팅 알고리즘 사용

Datagram Packet Switching

  • 모든 패킷은 개별적으로 "routing" 처리
  • 패킷은 네트워크에서 어떤 경로든지 따를 수 있으며, 각 패킷에 대한 라우팅 결정이 필요
  • 패킷은 순서가 뒤바뀌거나 손실될 수 있음
    • 수신자는 패킷을 re-ordering하고, missing packet을 복구해야함

Datagram Network

  • network layer에서는 call setup 없음 (독립적)
  • 라우터는 "연결"이라는 네트워크 수준의 개념이 없다
  • 패킷은 목적지 호스트 주소를 사용해 전달되며, 라우터는 패킷의 목적지 호스트 주소를 보고 해당 주소로 패킷 전달

Overview of Data/Control plane

  1. Data plane
  • local, per-router: 각 라우터에서 로컬하게 수행되는 기능
  • forwarding function: 입력 링크에서 출력 링크로 데이터그램이 어떻게 전달되는지 결정
  1. Control plane
  • network-wide: 전체 네트워크에서 수행
  • source~destination 전체 경로 상에서 데이터그램이 어떻게 라우팅되는지(경로) 결정
  • control plane에 접근하는 두가지 방법:
    • Tranditional routing algorithms: 라우터에 구현되어있는 전통적인 라우팅 알고리즘 사용
    • Software-defined networking(SDN): (원격)서버에 구현되어 있는 소프트웨어 정의 네트워킹 사용
  • Pre-router control plane
    • 각 라우터가 독립적으로 라우팅 알고리즘을 계산하고, 자체적으로 정보 교환하여 경로 설정
  • Centralized control plane
    • 독립된(원격) 중앙 컨트롤러가 local control agent(CAs)와 상호작용
    • 중앙 컨트롤러가 전체 네트워크 상태 관리 및 라우팅 결정

Inside Router

Router Architecture

  • 위에는 control plane으로 라우팅 처리 (경로 설정)
  • 아래는 data plane으로 포워딩 처리 (전달)
    • Input port
    • Switch fabric
    • Output port
    • Routing processor

1. Input port

  • 입력 포트의 양 끝 박스는 physical layer로 라우터로 들어오는 입력 링크이고, 중간 박스는 Link layer
  • 가장 우측 박스에서 수행되는 검색기능은 라우터의 핵심 기능
    • forwarding table을 조회하여 (스위치 구조를 통해 전달되는) 패킷의 출력 포트를 검색(Match plus action)
  • 입력 포트에서의 처리를 line speed(최대 처리 속도)로 완료하는 것이 목표

Input port queuing

  • switching fabric으로 도착하는 패킷의 수가 빠지는 수보다 더 많은 경우
    = switching fabric 처리속도가 input port들의 처리속도보다 느린 경우
    -> queuing delay and loss(buffer overflow)
  • 여러 입력포트에서 한 출력포트로 데이터그램이 이동하는 경우 하나의 데이터그램만 전송될 수 있으므로 contention(분쟁?) (Output port Contention)
  • HOL(Head-of-the-Line) Blocking
    • 대기열의 맨 앞에 있는 데이터그램이 대기열 안의 다른 데이터그램의 이동을 차단
    • 맨 앞이 안보내지면 뒤에도 이동할 수 없으니까
    • 위의 빨간색이 먼저가서 아래 빨간색이 대기하면, 뒤의 초록색 패킷은 contention이 아님에도 불구하고 기다리는 HOL blocking 경험

Lookup and fowarding

  • Decentralized switching
    • destination-based forwarding: 목적지 IP주소를 기반으로 forwarding (tranditional)
    • generalized forwarding: 헤더 필드값을 기반으로 forwarding (수업에서 다루지 X)

destination-based forward table

  • 라우터에 4개의 링크가 있는 경우 (0, 1, 2, 3)

Longest-prefix Match

  • 주어진 목적지 주소에 대한 전달 테이블 항목을 찾을 때, 목적지 주소와 일치하는 최장의 주소 prefix를 사용
  • ex) 패킷의 목적지 주소가 11001000 00010111 00010110 10100001라면 앞 21개의 비프 prefix가 테이블의 첫 번째 엔트리와 매치 -> 링크 인터페이스 0으로 보냄 (forward)
  • 즉, 테이블에서 가장 긴 매치 엔트리를 찾고, 여기에 연관된 링크 인터페이스로 패킷을 보냄
  • 만약, forward table의 범위가 깔끔하게 나눠지지 않으면, prefix matching시 어떤 항목이 선택되어야하는지 명확하지 않을 수 있음 -> 라우팅이나 스위칭에서 부정확한 결과

2. Switching Fabrics

  • 패킷이 입력 포트에서 출력 포트로 전송되는 과정 = 입력 포트에서 출력 포트로 스위칭 되는 구조
  • Switching rate: 입력에서 출력으로 패킷을 전송할 수 있는 속도, N개의 입력이 있다면 스위칭 속도는 N배의 라인 속도
  1. Switching via Memory
    • 초기 라우터, CPU의 직접적인 제어로 스위칭
    • 패킷이 시스템 메모리로 복사되며 스위칭
    • 메모리 bandwidth(대역폭)에 의해 속도 제한, 각 데이터그램당 2번의 bus crossing
  2. Switching via Bus
    • 입력 포트 메모리에서 출력포트 메모리로 데이터그램을 공유된 버스를 통해 직접 전송
    • 한번에 하나의 패킷만 버스를 통과할 수 있어bus contention 우려
    • bus bandwidth에 의해 속도 제한
  3. Switching via Crossbar(상호연결네트워크)
    • crossbar: N개의 입력 포트를 N개의 출력 포트에 연결하는 2N bus로 구성
    • 여러 패킷을 병렬로 전달할 수 있어 bus bandwidth 제한 극복
    • 좀 더 고급 연결에서는 여러 단계의 스위칭 구조를 사용

3. Output port

  • 메모리에 저장된 패킷을 가져와서 출력 링크를 통해 전송

Queuing

  • swich fabric에서 온 데이터그램이 출력 전송 속도보다 빠르게 도착하는 경우
    -> 대기 지연 -> 데이터그램 손실 및 출력 포트 버퍼 부족 -> Buffering 필요
  • Scheduling discipline이 버퍼 안에서 대기 중인 데이터그램 중 어떤 것을 전송할지 선택

Buffering

  • (이전)링크 용량이 C일 때, 버퍼링의 양B는 보통 RTT와 같다
    -> B = RTT * C
  • (현재) 많은 수의 독립적인 TCP flowN이 링크를 타고 통과할 때 필요한 버퍼링은
    -> B = RTT * C /√N

4. Scheduling mechanisms

  • Scheduling: 링크에서 다음으로 전송할 패킷 선택
  1. FIFO (First in First out)

    • 도착한 순서대로 큐에 있는 패킷 전송
    • discard Policy: 큐가 가득 찬 상태에서 패킷이 도착하는 경우 어떤 패킷을 폐기할지
      • Tail Drop: 도착한 패킷 폐기
      • Priority: 우선 순위에 따라 패킷 폐기
      • Random
  2. Priority

    • 대기 중인 패킷들 중 우선 순위가 가장 높은 패킷 먼저 전송
    • 출력링크에 도착한 패킷은 우선순위 클래스로 분류됨(IP source/dest, port num 등)
  3. Round Robin(RR)

    • 패킷이 클래스로 분류됨 (우선순위 존재X)
    • 클래스 큐들을 순환적으로 스캔하며 클래스에 패킷이 있으면 전송 (없으면 다음 클래스 스캔)
  4. WFQ (Weighted Fair Queuing)

    • Round Robin의 일반화된 형태
    • 각 클래스는 weight를 가져 weight가 높은 클래스는 더 많은 순환 서비스 시간을 보장받음

The Internet Protocol (IP)

  • 인터넷의 network layer의 주요한 3가지 구성요소
    • IP protocol
    • Routing protocol
    • ICMP protocol

Datagram format

  • network layer의 패킷
  1. Version number: 데이터그램의 IP protocol 버전 명시
  2. Header length: IP 데이터그램 헤더의 길이
  3. Type of service(ToS): 각기 다른 유형의 IP 데이터그램 구별
  4. Datagram length: IP 데이터그램의 길이(헤더+데이터)
  5. Time-to-live(TTL): 데이터그램이 전달될 수 있는 최대 호핑 횟수 (라우터가 데이터그램을 처리할 때마다 1씩 감소, 0이되면 데이터그램 폐기)
  6. Protocol: IP 데이터그램의 데이터 부분이 전달될 목적지의 transport layer의 특정 프로토콜(TCP, UDP) 명시
  7. Header Checksum: 라우터가 수신한 IP 데이터그램의 비트 오류 탐지

IP fragmentation & reassembly

  • MTU(maximum transmission unit; 최대 전송 단위)
    • link-layer의 frame이 전송할 수 있는 최대 데이터 양
    • 경로상의 각 링크는 서로 다른 link-layer 프로토콜을 사용할 수 있고, 프로토콜에 따라 다른 MTU가 존재할 수 있음
  • IP datagram fragmentation
    • IP데이터그램의 크기가 경로 상의 특정 링크 MTU를 초과하면,
    • IP데이터그램은 여러 데이터그램(fragment)로 분할
    • 최종 목적지에서만 reassembly
  • IP 데이터그램의 헤더에 frag, more, fragmentation offset 등 관련된 field 존재
  • ex) 라우터가 4000byte의 데이터그램을 받음, MTU=1500byte
    -> 데이터그램이 3개로 쪼개지고, 최종 목적지에서 합쳐짐

IP Addressing

IP Address

  • 인터넷에서 각 컴퓨터의 네트워크 인터페이스에 부여된 고유한 식별자
    • 네트워크 인터페이스
      • 고유한 IP주소를 가짐
      • 호스트, 라우터 및 물리적인 링크 간의 연결 나타냄
      • 라우터는 일반적으로 여러 인터페이스를 가짐
      • 호스트는 일반적으로 하나 또는 두 개의 인터페이스를 가짐
  • IP Address in IPv4
    • 32비트로 표현, 점으로 구분된 10진수
  • IP Address in IPv6
    • 128비트로 표현, 콜론으로 구분된 16진수

Address Notations

  • Binary
  • Decimical
  • Hexadecimal

associated with each interface

  • 각 Network Interface Cards(NICs)에는 다른 IP address가 할당되어야 함
  • 각 NIC 또는 네트워크 인터페이스는 특정 IP address를 가짐

Networks part & Host part

  • IPv4 주소는 두 부분으로 나눠짐
    • Network part(network address): 시스템이 연결된 네트워크 식별
    • Host part: 네트워크 상의 해당 특정 시스템 식별
  • 라우터의 한 인터페이스의 포트로 연결된 시스템들의 IP address에서 공통된 부분이 network part, 다른 부분이 host part
    (prefix는 network part와 유사한 용어)
  • 두 부분으로 나눠지는 이유:
    • Routing efficiency (라우터가 목적지까지 어떤 경로를 다를지 결정하는데 도움이 됨)

Classful IPv4 Addresses

  • Octet
    • IPv4 주소의 형식 'q, w, e, r'에서
    • q가 highest order octet
    • w가 second high order octet...
  • A, B, C, D, E의 다섯 클래스로 network part와 host part의 옥텟 영역 설정
    • A, B, C는 universal unicast addressing에 사용
    • D는 multicast에 사용, E는 미래..?ㅇㅅㅇ

Subnet mask

  • 네트워크 부분의 비트 수를 /num으로 표현하고, 이때 num을 prefix라고 함
  • Masking: AND연산을 씌워서 앞부분을 network에게, 뒷부분을 host에게 할당해주는 연산

Addresses for different purposes

  1. Unicast (class A, B, C)
    • 1:1 연결 (point to point)
    • 두 unitcast host간에 bi-directional(양방향)으로 통신
  2. Broadcast (호스트 부분이 모두 1로 이루어진 주소)
    • 1:N 연결 (point to multipoint)
    • unidirectional(단방향) 연결
    • 동시에 LAN 세그먼트 내의 모든 호스트로 전송되지만, LAN 라우터에서는 차단되므로
      -> 같은 LAN 세그먼트 내의 호스트만 broadcast 메세지를 받을 수 있음
  3. Multicast (class D)
    • 1:N 연결 (one to many)
    • unidirectional(단방향)연결로 그룹 통신
    • 멀티캐스트 그룹 내에서 라우터를 통해 멤버들끼리의 메시지 송수신
    • 멀티캐스트 그룹의 호스트들은 동일한 멀티캐스트 주소를 가짐
    • 같은 LAN 세그먼트 내의 호스트이지만 그룹이 아닌 경우(다른 주소를 가진 경우) multicast 메세지를 받을 수 없음
      • broadcast는 같은 네트워크 안에서 발생하니까 라우터 외부로 이동할 필요X
  • multicast는 라우터를 통해 다른 네트워크로 넘어갈 수 있음 (자세히 다루지 않음)

Public and Private IP

public IP addresses

  • IANA에서 할당
  • 전 세계적으로 고유하기 존재하는 IP 주소로 Internet hosts들과 연결 가능 (end-to-end)
  • IPv4의 주소 exhaustion(고갈) 문제 -> sol: CIDR, NAT, IPv6, private IP
    • 라우터는 네트워크를 구분하지, 내부 user의 IP를 구분하지 않아 같은 LAN 내부에서는 public IP주소가 필요하지 않음, private IP를 사용해도 됨

private IP addresses

  • IANA에서 할당되지 않은 주소
  • 네트워크 내에서만 사용되며, internet backbone에서는 라우팅되지 않음
    • private IP address를 가진 디바이스는 직접적으로 인터넷에 연결할 수 없고, 인터넷 외부의 호스트에서 접근할 수 없다
  • public network에 접근하기 위해 라우터를 거쳐야함 -> NAT(network address translation)
    • NAT가 없으면 public domain으로 연결된 edge router에서 막힘

IPv6

  • 16진수로 표현되며 콜론으로 구분되며 128비트의 주소 공간을 가짐
  • 총 주소 개수=2^128, IPv4=2^32
    • IPv4보다 주소 크기 확장하여 고갈 걱정X (사람보다 많은 수의 연결된 디바이스 처리)
    • 간소화된 헤더는 속도를 더 빠르게함

IPv6 address format

IPv6 datagram

  • base header: 고정된 40byte 기본헤더
    • fragmentation X (쪼개질 수 없음)
    • checksum 없음 (시간 줄이려고)
    • flow labeling과 priority 개념 도입 -> 특정 흐름에 대한 식별과 우선순위 할당 가능
    • next header: 다음 헤더 타입 구별
  • extension header
    • 선택적인 인터넷 레이어 정보 전달 (app-layer의 무슨 protocol인지 구분할 수 있음)
    • base header와 상위 레이어 프로토콜 헤더 사이에 위치
    • IPv4 옵션에 대한 40byte 제한을 제거하기 위해
  • example

IPv4 to IPv6 strategies

  • IPv6은 IPv4를 받을 수 있는데, IPv4는 받을 수 없음
  1. Dual stack
    • IPv6이 가지고 있는 IPv4 구현 노드를 IPv6/IPv4노드라고 함
    • IPv6/IPv4노드가 IPv4로부터 오거나 가는 데이터그램을 변환하여 송수신 가능함
      • IPv4로 바꿨다가 다시 IPv6이 되면 손실되는 정보가 있을 수 있음
  2. Tunneling
    • IPv6 노드 사이에 연결되어있는 IPv4 라우터들을 터널이라고 함
      • 터널 송신측 IPv6은 IPv4 데이터그램의 데이터 필드에 IPv6 데이터그램을 넣음
      • IPv4의 데이터그램의 목적지 주소를 터널의 수신측 IPv6 노드로 적어 터널 내부 첫번째 노드에 보냄
      • 터널 내부 IPv4라우터는 IPv4데이터그램이 IPv6의 데이터그램을 가진지 모른채 처리
      • 터널 수신측 IPv6이 받으면 IPv4데이터그램을 IPv6으로 변환

Subnets and Subnetting

Subnet

  • 같은 network part를 가진 디바이스 인터페이스로 구성된 IP 네트워크
  • 하나의 라우터 인터페이스가 서브넷 형성
  • 호스트 또는 라우터에서 인터페이스를 분리하여 고립된 네트워크가 서브넷~
    • 위 그림에서 왼쪽 3개의 호스트와 라우터 인터페이스는 233.1.1.xxx 형식의 IP주소를 가지며, 4개의 인터페이스가 중계하는 라우터 없이 하나의 네트워크에 서로 연결 -> 서브넷 구성
      -> 이 네트워크는 이더넷 LAN으로 상호연결, 인터페이스는 이더넷 허브, 이더넷 스위치, 무선 AP로 상호 연결
    • 해당 서브넷에는 222.1.1.0/24라는 주소가 할당되며, 여기서 /24는 왼쪽 24비트가 서브넷 주소라는 것을 가리킴 (network part가 subnet address)
    • 위 그림은 3개의 서브넷
  • 라우터의 점대점 연결 또한 서브넷이다 (아래 그림은 6개의 서브넷)

Subnetting ⭐

  • single IP 네트워크 주소를 여러 작은 서브넷으로 나누는 기술 -> host part의 비트를 빌려 network part로 사용해 network part를 늘리는 것
  • subnetting은 한 인터넷 주소를 여러 physical networks 간에 공유할 수 있게함
  • ex) 255.255.0.0/16에서 subnet mask의 3bit를 증가시키면 255.255.224.0/19이됨(16+3=19)
    • subnetting하면서 새로 생긴 자리에 8개의 네트워크를 할당할 수 있게됨(000~111)
      • subnetting 전: 할당가능 네트워크 수 2^0개, 할당 가능 호스트 수 2^16-2개
      • subnetting 후: 할당가능 네트워크 수 2^3개, 할당 가능 호스트 수 2^13-2개
        (호스트 수에서 2를 빼는 이유는 subnetting 전 기준으로 첫번째 주소x, x, 0, 0는 network address, 마지막 주소x, x, 255, 255는 broadcast로 쓰이기 때문)
  • ex) 5개의 subnet을 만들고 싶으면 최소 3bit 이상 빌려야함 (2^3 > 5)

    Subnetting 예제

    P1) 211.100.10.0/24 네트워크를 각 서브넷당 55개의 Host를 할당할 수 있도록 서브넷팅 한다고 하자.
    a) 서브넷 마스크를 구하시오.
    풀이 : HostID 비트를 생각하면 쉽다. Host ID를 나타내는 비트가 6개라면 2^6-2=62개의 호스트를 할당할 수 있으므로 충분하다. 그렇다면 32개의 비트 중 26개가 서브넷 마스크의 bit개수이므로 1111111.11111111.11111111.11000000 가 서브넷 마스크가 될 것이다. 즉 255.255.255.192이다.
    답 : 255.255.255.192
    b) 서브넷의 개수를 구하시오.
    풀이 : 기존 Network ID를 나타내는 비트보다 2개의 비트를 더 표현한다. 즉 2^2=4 개의 서브넷이 가능하다.
    답 : 4개
    c) 첫 번째 서브넷의 broadcast 주소를 구하시오.
    풀이 : 이진법으로 생각해야 편하다. 211.100.10.0을 이진법으로 변환하면 11010011.01100100.00001010.00000000인데 첫 번째 서브넷이라고 했으므로 11010011.01100100.00001010.00111111 이 broadcast 주소이다. 즉 211.100.10.63
    답 : 211.100.10.63
    d) 마지막 서브넷의 network address를 구하시오.
    풀이 : 마찬가지로 이진법으로 생각해야 편하다. 마지막 서브넷이므로 11010011.01100100.00001010.11000000이 정답이다. 즉 211.100.10.192
    답 : 211.100.10.192
    e) 두 번째 서브넷의 사용 가능한 IP 범위를 구하시오.
    풀이 : 이진법으로 생각하면 편하다. 두번째 서브넷이므로 11010011.01100100.00001010.01000000부터 시작하는데, 이때 11010011.01100100.00001010.01000000과 11010011.01100100.00001010.01111111은 network address와 broadcast address 이므로 제외하면, 답은 211.100.10.65~211.100.10.126
    답 : 211.100.10.65~211.100.10.126


    P2) 195.168.12.0/24 네트워크를 8개의 네트워크로 사용할 수 있도록 서브넷팅 한다고 하자.
    a) 어떤 서브넷 마스크가 효율적인가?
    풀이 : 8개의 서브넷을 만들려면 서브넷 마스크 bit개수를 3개 늘려야 할 것이다. (2^3=8) 즉, 서브넷 마스크는 11111111.11111111.11111111.11100000 가 된다. 즉 255.255.255.224
    답 : 255.255.255.224
    b) 서브넷의 개수를 구하시오
    풀이 : 위에서 구했듯이 8개이다.
    답 : 8개
    c) 첫번째 서브넷의 broadcast 주소를 구하시오.
    풀이 : 이진법으로 생각해야 편하다. 195.168.12.0을 이진법으로 변환하면 11000011.10101000.00001100.00000000 인데 첫번째 서브넷이라고 했으므로 11000011.10101000.00001100.00011111 이 broadcast 주소이다. 즉 195.168.12.31
    답 : 195.168.12.31
    d) 마지막 서브넷의 network address를 구하시오.
    풀이 : 마찬가지로 이진법으로 생각해야 편하다. 마지막 서브넷이므로 11000011.10101000.00001100.11100000이 정답이다. 즉 195.168.12.224
    답 : 195.168.12.224
    e) 두번째 서브넷의 사용 가능한 IP 범위를 구하시오.
    풀이 : 이진법으로 생각하면 편하다. 두번째 서브넷이므로 11000011.10101000.00001100.00100000 부터 시작하는데, 이때 11000011.10101000.00001100.00100000과 11000011.10101000.00001100.00111111은 network address와 broadcast address 이므로 제외하면, 답은 195.168.12.33~195.168.12.62
    답 : 195.168.12.33~195.168.12.62
    [참조 블로그] https://code-lab1.tistory.com/34

CIDR (Classless InterDomain Routing)

  • 효율적인 인터넷 주소 할당 방식 중 하나로, 주소의 서브넷 부분 길이를 임의로 조절하여 subnetting 가능

Network layer support protocol

1. DHCP (Dynamic Host Contiguration Protocol)

  • 동적 호스트 구성 프로토콜로, 호스트가 네트워크에 참여할 때 네트워크 서버로부터 동적으로 IP주소를 얻을 수 있게함
    • 호스트가 IP주소를 자동으로 얻을 수 있게하고
    • 주소를 사용하는 동안에만 보유하니까 재사용도 가능

Operation overview

  1. 새롭게 도착한 호스트가 DHCP discover 메세지를 전송
  2. DHCP 서버가 DHCP offer 메세지로 응답
  3. 호스트가 DHCP request 메세지를 전송하여 IP주소 요청
  4. DHCP 서버가 DHCP ack 메세지를 전송하여 IP주소 송신

DHCP message format

  • DHCP는 IP주소 이외에도 아래와 같은 정보를 반환할 수 있다
    • 클라이언트에 대한 first-hop router 주소
    • DNS 서버의 이름과 IP주소
    • network mask (네트워크 부분과 호스트 부분 나타내는)

DHCP relay

  • DHCP서버와 클라이언트가 다른 서브넷에 위치할 때, 클라이언트의 DHCP메세지는 relay agent를 거쳐 DHCP서버에 도달(라우터를 못 넘어감)

2. NAT (Network Address Translation)

  • 로컬 네트워크의 기기가 외부에서는 하나의 공용 IP 주소로만 식별되는 경우
  • NAT(네트워크 주소 변환)으로 로컬 도메인의 기기들의 개인 IP주소들을를 다른 공용 IP주소 공간 하나로 매핑
  • NAT기능 라우터는 아래 그림의 우측처럼 홈(로컬) 네트워크 일부 인터페이스를 가짐
    • 로컬 네트워크의 4개의 인터페이스 모두 같은 네트워크 10.0.0.0/24
    • 10.0.0.0/8부분은 private 주소를갖는 realm으로 로컬 네트워크 내부에서만 의미가 있고 글로벌 인터넷과는 송수신할 수 없음
    • 로컬 라우터를 떠나 인터넷으로 가는 출발지 IP주소는 NAT 기능 라우터의 출력 인터페이스의 IP주소 138.76.29.7로 바뀐다(인터넷에서 로컬 라우터로 오는 경우는 반대로 바뀜)
      -> 로컬 네트워크의 모든 기기에 대해 하나의 IP주소만 필요하며, 로컬 네트워크의 기기 주소를 외부에 알리지 않고 바꿀 수도 있고, 로컬 네트워크의 기기 주소를 변경하지 않고 ISP를 변경할 수도 있음
      -> 로컬 네트워크의 기기는 외부에서 봤을 때 명시적으로 주소가 지정되지 않아 보이지 않음 (보안적 측면)

3. ICMP (Internet Control Message Protocol)

  • error reporting: IP에는 오로지 패킷을 목적지에 도달시키기 위한 내용들로만 구성되어있어 비정상적인 통신에서의 에러 처리 방법이 없음, ICMP 프로토콜이 IP처리할 때 에러가 발생함을 알림
  • echo request/reply: 호스트와 라우터 서로에게 아래와 같은 정보 전달
    • 특정 IP와 통신이 가능한지 확인
    • 네트워크 관리자와 사용자는 **ping을 사용해 상대쪽 호스트의 작동여부 및 응답시간을 측정
    • traceroute 명령**
  • ICMP의 위치
  • ICMP message format
  • ICMP message encapsulation

ICMP-traceroute

  • 패킷 딜레이와 함께 경로를 추적하는 진단 도구
    • 패킷이 목적지에 도달하는 동안 경유하는 라우터 및 노드의 시간 및 경로 정보 제공
  • TTL(Time-to-live)=1, 2, ... 와 같이 증가시키면서 일련의 UDP 세그먼트 전송하여 목적지에 도달할 때까지 각 라우터에서의 지연 및 정보를 수집 (ICMP echo request, TCP SYN 세그먼트도 사용 가능)
    • TTL -> hop count
profile
( •̀ .̫ •́ )✧

0개의 댓글