⇒ 목적지 확인 후 Forwarding Table에서 찾아 알맞은 곳으로 내보내야 한다.
⇒ Overhead : 20 TCP + 20 IP + app layer overhead (헤더 사이즈)
과거 - Classful
A : / 8 blocks → 2^24 hosts ⇒ 하지만 기관은 128개로 너무 작음
B : / 16 blocks → 2^16 hosts
C : /24 blocks → 2^8 hosts
⇒ 호스트와 기관 개수가 비효율적이고, 유연하지 않은 방법이다.
최근 - Classless Inter-Domain Routing (CIDR)
Prefix 단위가 자유로운 것
1000의 host가 필요하다고 할 때,
과거 : /24 짜리 4개를 받아야함
CIDR : /22로 총 1024개의 hosts가 가능
⇒ 네트워크 크기에 맞춰서 자유롭게 이용한다. /nn으로 명시하면 됨
Forwarding Table에서 가장 Prefix가 긴 것을 고르면 된다.
⇒ matching 되는 것 중 구체적으로 맞는 것을 고르는 방법
같은 Prefix를 가진 Device의 집합
라우터를 거치지 않고 접근이 가능한 host 집합이다.
router는 여러 인터페이스가 있고, 이를 통해 서브넷이 연결돼있다. 즉, router가 교집합인 셈..
32bits 인 IPv4는 40억 정도가 지원이 가능한데 산업화 이후로 부족해지기 시작하였다.
그래서 96년도에 128bits 주소 공간을 사용하기로 했지만, NAT로 IPv4를 유지하고 있다.
Network Address Translation. 근본적인 원인을 해결한 것이 아닌 방법
Gateway 전에서서는 Local Address를 이용하다가 지나면서 Gateway의 IP를 할당 받음
내부에서는 unique 해보이지만, 외부에서는 아니기에 변환이 필요하다.
이때, IP와 Port # 두개를 바꾼다.
⇒ 문제
디자인 상의 문제 - Layer가 무너진다.
Transport Layer의 소관인 segment의 port #을 바꾼다.
절대로 깨끗한 방법이 아니다.
..
Dynamic Host Configuration Protocol → 어디서든 IP를 동적으로 할당하는데 이 방법
고정 IP면 모두에게 할당해야함 → 너무 비효율
⇒ 유연하게 적용하여 그때 그때 IP를 할당한다. 필요할 때 주고, 아니라면 회수한다.
#️⃣ Scenario
src : 0.0.0.0./ 68 : 아직 할당된 게 없다고
broadcast를 하는 방법 ⇒ dest : 255.255.255.255/67
이러면 67번을 열어둔 DHCP 서버만 응답한다.
transaction ID : 654
src : 할당 해줌
dest : 255.255.255.255/68
broadcast하여 68만 열려있는 Client만 의미있게 받아드린다.
transaction ID : 654
⇒ 왜 여러 단계?
offer는 여러 DHCP로 부터 올 수 있다. 하나를 골라서 req을 하게 도는 것이다.
⇒ DHCP Server는 Router에 있다.
Header에는 16-bit identifier | flags | fragment offset 필드가 있다.
이는 Packet이 Fragment될 때 사용하게 되는데 link마다 mtu가 달라 발생한다.
→ 이를 보고 목적지에서 reassmble한다.