Mac address의 경우 일정한 규칙이 없이 접속이 됨으로 그룹핑 하는데 매우 어려운 문제가 존재한다. 그렇기 때문에 table의 크기가 매우 커지게되고 이로 인해 효율성이 매우 떨어진다.
DHCP를 통해 동적으로 IP를 할당하여 그룹핑하는데 매우 좋은 이점을 가질 수 있다.
IPv4 와 IPv6의 등장 배경
IPv4의 경우 xxx.xxx.xxx.xxx 총 8비트씩 4개의 그룹으로 표현되어 약 40억개의 ip를 할당 가능하다. 하지만 이 숫자로 현재 모든 인터넷 유저에게 할당하는것은 불가능하다.
임시방편으로 NAT이라는 방법을 쓰고 있지만 라우터의 일을 가중시키고 있다.
이를 해결하기 위해 총 128비트를 쓰는 IPv6가 탄생하였고 IPv4에서 전환이 되가는 추세이다.
2.2 Expressing IP Address
IPv4
총 32bit로 binary하게 나타내어진다.
실제 사람들이 알아보기 편하게 10진수로 xxx.xxx.xxx.xxx의 형식으로 8bit(0~255)씩 쪼개 나타낸다.
IPv6
총 128bit로 binary하게 나타내어진다.
하나의 block을 16bit으로 쪼개어 16진수로 ffff:ffff:ffff:ffff:ffff:ffff:fffff:ffff의 형식으로 8개의 block으로 쪼개어 나타낸다.
총 8개의 block이 존재하기 때문에 주소를 16진수로 변환할 경우 0의 숫자가 많을 수 있다. 이를 해결하기 위해 중간에 xxxx:0000:xxxx:0abc:~ 의 경우 xxxx::xxxx:abc라고 표기 할 수 있다. 즉, 0으로 표현된 block은 ::으로 표현이 가능하며 각 블럭의 시작이 0으로 채워질 경우 생략가능하다.
IPv4의 주소를 담아서 보낼 수 있다.
정말 많은 수의 ip를 나타낼 수 있다.
2.3 IP Address Structure
2.3.1 Classful Addressing
첫번째 비트 부터 4번째 비트 까지 어떻게 표현되어지는가에 따라 아이피를 모두 선점하는 방식으로 심각한 ip고갈을 일으키는 주범이였다.
2.3.2 Subnet Addressing
클래스로 나누어진 네트워크를 규모가 작은 네트워크로 분할 할 필요가 있어지면서 등장하였다.
네트워크를 규모에 맞게 나눌 수 있고 낭비되는 IP주소 자원의 최소화 및 네트워크 내의 브로드 캐스팅 부하를 줄 일 수 있다.
2.3.3 Subnetmask
첫번째 비트 부터 정해진 숫자까지 고정된 ip를 쓸것이라 선언하는 prefix 개념을 사용하여 xxx.xxx.xxx.xxx/24 라는 형식으로 표현한다.
prefix를 통해 특정 비트까지 1로 채운 binary bit를 서브넷 마스크라고 한다.
서브넷 마스크를 통해 주소를 라우팅 테이블을 줄여갈 수 있다!
2.3.4 Variable- Length Subnet masks
만약 라우팅 테이블이 192.30.xxx.xxx , 192.30.1.xxx 두개가 있다고 한다면, 192.30.1.123 이라는 주소는 어느 테이블을 참조해서 가게 될것인가??
조금이라도 더 긴 prefix를 따라 192.30.1.xxx의 라우팅 주소를 따라가게 된다.
2.3.5 Broadcast address
서브넷 마스크와 반대로 다른 1은 0, 0은 1로 변환해서 주소를 만들어내면 브로드캐스트 주소가 된다.
2.3.6 IPv6 aderssess and interface identifiers
ipv6는 하나의 컴퓨터에서 통신을 위해 사용하는 node-local, 한 인터넷 내에서 사용할 link-local, 외부로 나가는 global scope가 존재한다.
ipv6를 사용하기 위해서 mac address도 변환이 되야하는데 이를 위해 48비트에서 64비트로 변환된 주소값을 사용하도록 권장한다.
2.4 CIDR & aggregation
2.4.1 Prefix
기존의 클래스 형식으로 ip 주소를 나누것이 아닌 가변적인 prefix된 값을 사용하여 ip를 나눈다.
2.4.2 Aggregation
위의 그림처럼 prefix를 통해 ip를 그룹핑 할 수 있기때문에 라우팅 테이블 자체가 줄어드는 효과를 볼 수 있다.
개념
Unicast, Multicast, Broadcast
unicast
1:1 통신으로 서로의 mac address를 알고 있어서 프레임으로 감싸 통신 하는 방법이다.
의문점
서로의 mac address를 안다는건 브로드캐스트를 무조건적으로 한번 거친거라고 보는게 맞는가?
Mac address를 통한 통신 방식이니까 로컬 통신 혹은 GWR까지만 가능한 통신 방법인가? -> 외부에서는 라우팅을 하기위해 ip주소를 참조하니까!?
broadcast
불특정 다수의 로컬 연결된 네트워크의 address를 알고자 사용하는 방식이다.
ARP , DHCP 등 여러 프로토콜에서 ip, mac 주소를 알고자 사용하는 방법이다.
multicast
브로드캐스트의 경우 자원소모가 너무 심하기 때문에 특정 그룹에게 자료를 전송하고자 할때 사용하는 방식이다.