Network Basic - IP Address & DNS

IP Address

IP 주소는 Network Address 와 Host Address 로 구성되어 있으며, 32 bit로 4 byte 데이터이다.


예를들어, 10.11.12.13 이라는 IP Address 는 아래와 같이 구성되어있다.

10.11.12.0 → 00001010.00001011.00001100. ( Network Address )

0.0.0.13 → 00001101 (Host Address)


전체 IP Address 를 32비트로 보면 아래와 같이 나타낼 수 있다.

10.11.12.13 → 00001010.00001011.00001100.00001101


하나의 8비트 섹션을 옥텟(octet)이라 부른다.


Subnet Mask

TCP/IP 프로토콜에 의해 Host 가 로컬 서브넷에 있는지 아니면 원격 네트워크에 있는지를 확인하는 데 사용된다.

10.11.12.13 → 00001010.00001011.00001100.00001101

255.255.255.0 → 11111111.11111111.11111111.00000000


이는 10.11.12.0/24 를 의미한다.

24 는 24 bit 를 의미하는데 앞서 255.255.255.0 은 8bit.8bit.8bit.0 을 의미한다.

따라서, 8bit * 3 = 24bit 을 의미하며, 8bit 이라는 의미는 더이상 해당 옥텟에 host 부여가 불가능하다는 의미이다. 따라서 해당 네트워크의 호스트가 부여가능한 IP range 는 10.11.12.1 ~ 10.11.12.254 범위를 의미한다.

여기서, 10.11.12.0 과 10.11.12.255 는 포함되지 않는다.

호스트 번호 부분의 비트 값이 모두 0 또는 1인 경우는 특별한 의미를 가진다.

모두 0 → 서브넷 자체를 가리킨다. (10.11.12.0 → 00001010.00001011.00001100.00000000

모두 1 → 서브넷에 있는 기기 전체에 패킷을 보내는 브로드캐스트 를 나타낸다.
(10.11.12.255 → 00001010.00001011.00001100.11111111)


Broadcast?

Broadcasting 이란 네트워크의 모든 Host 에 대해서 응답을 요청하지 않고 오로지 메세지를 송신하는 것을 의미한다. 네트워크에 있는 하나의 Host 가 다른 모든 Host 에게 동시에 data packet 을 송신한다. 송신자는 수신자의 주소를 나타내지 않는다. - 오직 하나의 수신자 ( IP address 를 알고있는 ) 에 data packet 을 송신하는 Unicast 와 다르다. Broadcasting 의 장점은 여러번에 걸쳐서 데이터를 전송하는 것이 아니라 한 번에 데이터를 전송할 수 있다.


Domain 과 IP Address

TCP/IP 네트워크는 IP 주소로 통신 상대를 지정하므로 IP 주소를 모르면 상대에게 메시지를 전달할 수 없다.

IP 주소는 4바이트로 32비트의 크기지만 도메인명은 최대 255바이트의 가변 데이터다.

따라서 4바이트를 취급하는 것이 최대 255바이트의 가변 데이터를 취급하는 것보다 훨씬 효율적이다.


Name Resolution

웹 브라우저는 DNS Resolver 를 통해서 DNS Server 에 Domain 과 함께 요청하고 IP 를 응답 받는 Socket 통신을 한다. 해당 통신은 OS 내부의 프로토콜 스택을 이용해서 진행된다.

웹 브라우저 (어플리케이션) -> DNS Resolver (Socket Library) -> OS 프로토콜 스택 -> LAN 어댑터 -> DNS 서버 에 요청 (Domain Name 과 함께)

DNS 서버 -> LAN 어댑터 -> OS 프로토콜 스택 -> DNS Resolver (Socket Library) 응답 받은 IP 를 메모리에 저장 -> 웹 브라우저 (어플리케이션)

Mac OS nameserver 확인 

host command 를 통한 방법

/etc/resolv.conf 확인

댓글

이 블로그의 인기 게시물

About Kafka Basic

About JVM Warm up

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

About G1 GC

sneak peek jitpack

About idempotent

C 언어 구조체의 포인터 멤버 변수

Synology NAS에 MariaDB 10에 Mysql workbench로 원격접속하기

About Websocket minimize data size and data transfer cost on cloud