네트워크 - IP 주소

2 minute read



웹 서버로 메시지 전송

브라우저에서 처리하는 작업은 다음과 같다.

  • URL 해독

  • HTTP message 생성

생성된 메시지는 Web Server로 송신한 다음 응답을 받아야한다.

하지만 브라우저는 네트워크 송출 기능이 없기 때문에 이 때 OS의 도움을 받는다.

OS에게 송신을 의뢰하고 OS는 브라우저가 해독한 URL 중 도메인 안에 있는 IP 주소를 통해 대상을 판단한다.

이 과정을 조금 더 자세히 보면 다음과 같이 이루어진다.

send


서브넷 -> 허브 -> (가장 가까운)라우터 -> 다음 라우터(메시지 발신자 확인) -> 서브넷 -> 허브 -> 라우터 -> …


TCP/IP

인터넷이나 사내 LAN은 모두 TCP/IP의 개념에 기초하여 만들어졌다.

TCP/IP는 서브넷이라는 작은 네트워크를 라우터로 접속하여 전체 네트워크가 만들어진다.

서브넷은 허브에 몇 대의 PC가 연결되어 구성된 작은 네트워크이며 이 서브넷이 라우터를 통해서 다른 서브넷과 연결되면서 전체 네트워크가 이루어진다고 볼 수있다.


IP 주소

브라우저에서 대상의 서버까지 메시지를 운반할 때 그 위치를 IP주소로 판단하고 운반한다.


IP 주소의 표기 방법

// ip 주소 본체
10.11.12.13

// ip 주소 본체와 같은 방법으로 네트워크 표기
┏IP 주소 본체┓  ┏━━넷마스크━━┓ 
 10.11.12.13  / 255.255.255.0

// 네트워크 번호의 비트 수로 넷마스크를 표기
10.11.12.13/24 ━ 넷마스크

// 서브넷을 나타내는 주소
10.11.12.0 / 24 ━ 넷마스크
         └ 호스트 번호 부분의 비트가 모두 0인 것은 각 컴퓨터가 아니라 서브넷 자체를 나타냄

// 서브넷의 브로드캐스트를 나타내는 주소
10.11.12.255 / 24
          └ 호스트 번호 부분의 비트가 모두 1(11111111->255)인 것은 서브넷 전체에 대한 브로드캐스트를 나타냄

실제 IP 주소는 32비트의 디지털 데이터로 8비트씩 점으로 구분하여 10진수로 표기한다. 이러한 형태가 보통의 IP주소이다.


넷마스크

IP 주소의 규칙에는 네트워크 번호와 호스트 번호 두 가지를 합쳐서 32비트로 한다는 것만 결정되어 있을 뿐 내역은 결정되어 있지 않기 때문에 이것만으로는 어느 부분이 네트워크 번호인지 또는 호스트 번호인지 알 수 없다.

결국 네트워크를 구축할 때 사용자가 직접 내역을 결정 할 수 있는 것이고 이 내역을 나타내는 정보를 필요에 따라 IP 주소에 덧붙이는데 이 정보를 넷마스크라고 한다.

아파트 주소가 xx동 xx번지 처럼 큰 분류와 세부적인 주소로 나누어지듯이 IP 주소도 동에 해당하는 네트워크 번호와 번지에 해당하는 호스트 번호가 있다.


IP 주소의 호스트 번호

  • 모두 0 : 서브넷 자체를 나타낸다.
  • 모두 1 : 서브넷에 있는 기기 전체에 패킷을 보내는 브로드캐스트를 나타낸다.


도메인명과 IP 주소를 구분하여 사용하는 이유는 TCP/IP가 이 IP 주소로 통신 상대를 지정하기 때문이다.

따라서 OS에 메시지를 송신할 때는 IP 주소를 조사하는 것이다.

URL에 IP 주소 대신 더 직관적인 이름을 사용해서 대상을 지정하지 않는 이유는 데이터를 운반하는데 있어서 차이가 있기 때문이다.

IP 주소는 32비트, 즉 4바이트에 해당하는 개수 밖에 없지만 도메인명은 적어도 수십 바이트부터 최대 255바이트에 해당하는 개수 밖에 없지만 도메인명은 적어도 수십 바이트에서 최대 255바이트나 있다. 따라서 아무리 기술이 발전하고 고성능 라우터가 생겼다고 해도 속도에는 한계가 있기 때문에 이름을 사용하는 방법은 사용되지 않는다.