class가 존재하지 않는 IP 주소도 알아보자.
class가 존재했을 때와 비슷하다. prefix와 suffix로 나뉘는데, prefix는 네트워크 주소, 즉 block을 결정하며 suffix는 block에 포함되는 IP 주소 bit 수를 정한다.
prefix로 block을 정하면 그에 따라서 주소의 개수도 정해진다.
subnet의 경우 두 가지 경우가 있다. 짝수 개수의 block으로 나누어준다면 개수만큼의 bit를 사용하고(로 계산한다.) mask와 첫 번째, 마지막 주소를 구하면 된다. prefix와 suffix도 자연스럽게 알 수 있다.
그러나 block의 개수가 홀수일 경우나, block의 크기가 각기 다른 경우에, block을 순차적으로 구해야만한다. 왜냐하면 subnet 주소간의 숫자 차이가 1밖에 나지 않기 때문이다.
위와 같이 2bit씩 4덩어리로 나눌 수도 있다. 단지 2의 배수의 block을 만드는 경우엔 손쉽게 수행할 수 있다.
14.24.74.0/24.
One subblock of 120 addresses.
One subblock of 60 addresses.
One subblock of 10 addresses.
하지만 위와 같이 block이 홀수고 주소 개수가 다른 경우엔, 순차적으로 하나씩 구해야만한다.
120개는 2의 배수인 128개의 맞춰야 하며 이는, 2의 7승이다. 7개의를 bit가 필요하기 때문에 prefix는 25, suffix는 7이된다.
이후 마지막 주소에 맞추어 prefix와 suffix를 정하면 된다.
IP 헤더엔 IP주소밖에 없으며 /n에 대한 정보는 존재하지 않는다. 이는 라우팅 테이블로 관리한다.(classful 주소인 경우엔 n이 필요가 없다.)
스위치는 IP주소에 매핑된 MAC 주소에 대해 패킷을 송신한다.(없으면 다 보낸다.)
유동 IP가 할당이 안 되어 있는 경우에, DHCP 서버에 요청해야 한다. 이 때 IP 헤더를 0으로 채운다.(주소가 없다는 뜻이다.)
1:all broadcast 주소인 255.255.255.255를 사용한다. (IP는 나와있지 않지만, MAC주소도 패킷에 저장되어야 한다.)
Destination이 255.255.255.255 이면, 모든 device에게 패킷을 다 보낸다. 그럼 나머진 무시하고 DHCP 서버만 확인하고 응답(유동 IP를 할당해준다.)한다. 이게 DHCP 프로토콜이다.