Internet Addressing

임승섭·2023년 6월 3일
0

Computer Network

목록 보기
15/27

Internet address

  • 인터넷과 연결된 모든 host들은 unique address가 필요하다

IPv4

  • the address system used today
  • 32 bits
  • possible number of hosts : 4,294,967,296

IPv6

  • a new address system designed to replace IPv4
  • Still NOT used widely, but eventually will
  • 128 bits

Notation

  • binary notation
    10000000 00001011 00000011 00011111
  • dotted-decimal notation
    128.11.3.31
    각각 8 bit (1byte)씩.

Hierachical structure

  • Network address + Host address
  • 같은 network에 있는 node들은
    같은 network address를 갖는다
  • 3가지 type
    • (c)를 보면, 111로 시작하는 건 아무데도 포함되지 않는다.
      특수용으로 빠진다 (Class D, E)

Classful addressing

  • network size에 따라 address space를 할당한다

  • Network address : network를 "group of hosts"로 indicate
    • class A : 7 bits
    • class B : 14 bits
    • class C : 21 bits
  • Host address : network 안에 host를 indicate
    • class A : 24 bits
    • class B : 16 bits
    • class C : 8 bits
  • Host address의 범위
    • Large ISPs나 organizations에는 class A address space가 할당된다
    • small ISPs나 organizations에는 class B or C address space가 할당된다

Subnetting

  • 기관에서는 걔의 address space를 여러 개의 subnet으로 구성하기 위해 re-allocate할 수 있다
  • Subnet masks define partition of host part to subnet ID and host ID
  • 즉, network number 다음부터 연속으로 1이 있는 곳까지를 subnet ID라고 본다.
  • 위와 같은 network에서는
    163.239.187.245와 164.239.187.22가 같은 subnet이고
    163.239.186.16은 다른 subnet이 된다.

Classless Addressing

Supernetting

  • subnetting과 비슷하지만,
    it is also possible to use subnet mask
    to combine multiple network addresses

  • subnet mask를 이용해서, network를 아무 size로나 정의할 수 있다.
    (type이 상관이 없어진다)

  • Also called "CIDR"
    • Classless Interdomaion Routing

Classful addressing의 문제점

  • class A랑 B는 너무 크고, class C는 너무 작다

  • 1000-2000 host를 갖는 network에게,
    class C adress space is NOT enough,
    but class B addres space is too wasteful

  • network 수가 늘어날수록, address space가 보다 효율적으로 할당될 필요가 있는데, classful addressing은 inefficient

Classless addressing

  • NO class : address들이 address block처럼 할당된다

  • 3 rules

    • address space should be continuous
      • should NOT be partitioned
    • number of addresses should be a power of 2
    • the first address in the block should be divided by
      number of addresses in the block
  • example : 163.239.56.32 ~ 163.239.56.47
    • 1번 ok
    • 2번 ok (16 = 2^4)
    • 3번 ok (32 / 16)
  • network mask
    • 같은 network를 나타내는 IP address prefix
    • representation : x.y.z.t/n
    • n : subnet mask (prefix length)
  • example : 205.16.37.39/28
    • 공통이 아닌게 뒤에 4개 -> subnet size = 2^4 = 16
    • 205.16.37.32 ~ 205.16.37.47

Forwarding with CIDR

  • routing table은 entry들을 보관해야 한다
    • entry : (Destination, Next Hop)
  • routing table size는 성능에 영향을 준다
    • 큰 size는 process의 속도를 낮춘다
  • Solution : prefix routing

Prefix routing

  • 194.24.x.x가 캠브릿지 대학의 한 host를 나타낸다고 하자
  • 그럼 목적지 address가 194.24.1.1, 194.24.83.72, 194.24.235.55가 같은 next hop router를 갖는다고 생각할 것이다(??)
  • 따라서, 이 목적지들 중, 단 하나의 route entry가 다음과 같이 유지된다
    • detination : 194.24.0.0/16
    • 만약 destination의 first 16 bits가 194.24.0.0과 match한다면,
      그 entry가 이용되어야 한다
  • 만약, 대학 host들의 address가 다음과 같다면,
  • routing table은 다음과 같이 유지되어야 한다
    • Cambridge : 194.24.0.0/21
    • Edinburgh : 194.24.8.0/22
    • Oxford : 194.24.16.0/20
  • 만약 packet의 목적지 주소가 194.24.17.4라면,
    • compare the first 21 bits with Cambridge -> X
    • compare the first 22 bits with Edinburgh -> X
    • compare the first 20 bits with Oxford -> match

Longest matching prefix

  • 만약 match되는 entry가 여러개 존재한다면,
    prefix length가 가장 긴 놈이 선택된다

Route aggregation

  • 위 예시에서, 3개 대학들의 route entry는 aggregated될 수 있다
    • Cambridge : 194.24.0.0/21
    • Edinburgh : 194.24.8.0/22
    • Oxford : 194.24.16.0/20
    • aggregated : 194.24.0.0/19
  • routing table size를 줄일 수 있다

0개의 댓글