IP는 네트워크 레이어의 프로토콜
각 줄은 32bit = 4 byte.
IP datagram의 필수 항목은 5줄, 헤더로 20바이트를 차지한다.
IP 주소는 호스트나 라우터 인터페이스(연결부)의 32-bit 식별자(ex> 801.12.~)
각 인터페이스는 각각 IP 주소를 부여받는다
서브넷은 전체 망의 일부분(부분망) -> 라우터 없이 통신 가능한 섬
각 서브넷은 네트워크의 IP 주소를 가짐
따라서 223.1.1.0 ~ 223.1.1.255(2^8)사이 256개의 아이피 주소를 사용할 수 있다.
다만 첫번째 주소인 223.1.1.0은 어떤 서브넷을 나타내는 네트워크 아이피,
마지막 주소인 223.1.1.255는 broadcast IP(예약 주소)로
실질적으로 호스트들이 사용 가능한 IP주소는 1~ 224 구간의 224개
32-bit-IP는 5개 클래스로 분류 가능
외부와 분리된 서브넷을 사설망이라고 하며, 이 안에 있는 호스트들인 Private IP부여가 가능
A : 1.0.0.0 ~ 10.255.255.255
B : 172.16.0.0 ~ 171.31.255.255
C: 192.168.0.0 ~ 192.168.255.255
Dynamic Host Configuration Protocol,
호스트가 어떤 네크워크로 참여하면, 그 안 DHCP 서버로부터 동적으로 IP주소를 할당
이외에 첫번째 hop라우터의 IP 주소, DNS 서버 이름 & IP주소, 서브넷 마스크를 얻을 수 있다.
IP 주소 구간의 할당은 ICANN 아래의 IANA가 담당,
5개의 Regional Registries(RR)에게 IP 구간을 주면, RR은 다시 지역 Registry에게 할당,
이 주소는 그 아래 고객들에게 할당
네트워크가 자신의 IP를 부여 받으려면, ISP로부터 주소 공간을 할당 받아야 함.(망이 계층적으로 구성되어 있기 때문)
만약 기관이나 회사가 ISP 회사를 바꾸어도 네트워크 IP주소는 보통 그대로 가져감,
이경우 옮겨온 ISP가 인터넷에 advertising 하여, 원래 갖고 있던 특정 숫자와, 그 회사(기관)으로 가는 패킷도 달라고 함.
Network Address Translation
공인IP 주소(인터넷)와 사설 IP주소(내부망)를 서로 변환 시켜주는 기능
사설망 내 100대의 컴퓨터, 이 100대 컴퓨터에 각각 공인 IP주소를 주는게 아니고,
하나의 공인 IP(10.0.0.4)만 주고 외부망과 통신 하여, IP주소를 아끼면서 보안상 이점을 가져갈 수 있다.
그러나 IP 주소 고갈에 대한 근본적 해결책이 아님.
NAT은 네트워크 계층에서 동작하는데, Transport 계층에서 하는 포트지정을 여기서 다 해버림,
또 이 NAT 없이는 외부에서 내부 호스트로 접근할 방법도 없음
근데 많이 쓰이기도 하고 아직까지 쓸만 해서 사용함.(가정/기관용, 4G/5G망)
32-bit 짜리 IPv4는 이미 고갈,
이에 대한 해결책으로 표현 가능한 주소의 범위를 넓이고 네트워크 성능 개선 목적을 위한 IPv6가 제안됨.
라우터는 크게 3가지로 분류 가능한데
1. IPv4 만 이해하는 라우터
2. IPv6 만 이해하는 라우터
3. 둘다 이해하는 라우터
IPv6 - 둘다 - IPv4 - 둘다 - IPv6 로 크게 뭉뚱그릴 수 있다.
라우터의 input port에선 두가지 forwarding 방식을 사용한다.
Longest Prefix matching 이라는 방법 사용하여 IP주소를 이용해 나갈 포트를 결정
match + action, 들어오는 패킷과 그에 대한 액션을 매칭,
일반적인 포워딩의 예시가 Open Flow.
여기서 flow table의 엔트리는 사진과 같이 구성되어있음
즉 Open flow는 match/action에 다른값을 주어 4가지의 역할을 수행할 수 있다.
NAT, 방화벽, 캐시, 로드 밸런서 등이 여기에 속함
초기 블랙박스 하드웨어 솔루션에서 Open API구현에 따라 화이트박스 하드웨어로 전환
네트워크의 지능부는 중간보단 끝단에 구현되는 것이 좋다.
그러나 현재는 중앙과 끝단 모두 네트워크의 지능부가 존재한다.