본문 바로가기
프로그래밍/네트워크

[네트워크] OSI 모델 3계층_IP 주소

by 준보틱스 2024. 6. 24.

실제로 컴퓨터끼리는 MAC 주소로 통신을 하지만, 사람들이 주로 컴퓨터를 다루는데 컴퓨터에게 특정 대상에게 통신을 명령할 때 MAC 주소는 사람이 입력하기 힘들기 때문에 IP주소로 통신을 한다. IP주소는 3계층에 쓰는 주소 체계이다. 2계층에서 사용하는 주소는 MAC 주소이다.

3계층의 기능

3계층은 다른 네트워크 대역(LAN 대역)을 연결시켜주는 역할을 한다. 즉, 서로 다른 LAN 대역을 연결시켜주는 역할을 한다. 정리하자면, 멀리 떨어진 곳에 존재하는 네트워크까지 어떻게 데이터를 전달하지 제어하는 일을 담당하고 발신에서 착신까지의 패킷의 경로를 제어한다.

LAN과 LAN을 연결하려면 라우터라고 부르는 3계층 장비가 필요하다. 2계층 장비인 스위치로 네트워크 대역을 연결시켜줄 수 없다.

● IP 주소

IP 주소는 3계층에 쓰는 주소로 cmd에서 ipconfig 명령어로 IP주소가 확인 가능하다. 하지만 IP 주소만으로 멀리 있는 곳과 통신하는 것은 불가능하다. 추가적으로 서브넷 마스크, 게이트웨이 주소 등이 필요하다.

  • IPv4 주소 : 현재 PC에 할당된 IP주소
  • 서브넷 마스크 : IP주소에 대한 네트워크 대역을 규정하는 것
  • 게이트웨이 주소 : 외부와 통신할 때 사용하는 네트워크 출입구

3계층 프로토콜

● ARP 프로토콜 : IP주소를 이용해 MAC 주소를 알아오는 프로토콜

● IPv4 프로토콜 : WAN에서 통신할 때 사용하는 프로토콜

● ICMP 프로토콜 : 서로가 통신되는지 확인할 때 사용하는 프로토콜

일반적인 IP 주소

일반적인 IP 주소는 IPv4 주소를 말한다. IPv4 주소 초창기에는 클래스를 나눠서 사용했다(Classful IP). IP 주소는 4개의 필드가 있고 점으로 각각을 구분한다. IP 주소는 4바이트에 10진수를 사용한다(MAC 주소는 6바이트에 16진수를 사용한다).

※ 2진수 vs 10진수

1바이트 = 8비트, 8비트가 2진수 8개로 표현할 수 있는 수

  • 2진수 : 00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111
  • 10진수 : 0.0.0.0 ~ 255.255.255.255

● Classful IP 주소

초기에는 각 범위를 클래스에 나눠서 사용했다.

A클래스는 첫번째 필드만 네트워크 대역을 구분한다(0. 0.0.0 ~ 127. 255.255.255). A클래스에 사용 가능한 대역의 수는 0부터 127개로 128개다. 그리고 하나의 대역에서 사용 가능한 PC 수는 16777216(2의 24제곱)개다.

B클래스는 두번째 필드까지 네트워크 대역을 구분한다(0.0. 0.0 ~ 127.255. 255.255). B클래스에 사용 가능한 대역의 수는 32768개다. 그리고 하나의 대역에서 사용 가능한 PC 수는 65536(2의16제곱)개다.

C클래스는 세번째 필드까지 네트워크 대역을 구분한다(0.0.0. 0 ~ 127.255.255. 255). C클래스에 사용 가능한 대역의 수는 8388608개다. 그리고 하나의 대역에서 사용 가능한 PC 수는 256개다.

이렇게 A, B, C클래스는 일반 컴퓨터에서 사용하는 클래스이고, D클래스는 멀티캐스트를 위해 남겨둔 클래스이다. E클래스는 IP 주소를 가지고 네트워크 발전을 위해 연구 및 개발에 사용했다.

클래스 네트워크 구분 시작 주소 마지막 주소
A 클래스 0XXXXXXX, 첫번째 필드 0.0.0.0 127.255.255.255
B 클래스 10XXXXXX, 두번째 필드 128.0.0.0 191.255.255.255
C 클래스 110XXXXX, 세번째 필드 192.0.0.0 223.255.255.255
D 클래스
(멀티캐스트)
1110XXXX 224.0.0.0 239.255.255.255
E 클래스
(예약)
1111XXXX 240.0.0.0 255.255.255.255

Classfulless IP 주소

하지만 이런 방식은 IP 주소를 너무 낭비하는 방식이었다. 처음에는 IP 주소가 많이 필요하지 않았지만, 빠른 기술의 발전으로 인해 부족해지기 시작했다. 그래서 클래스에 맞게 쓰지 않고 하나의 큰 네트워크를 여러 개의 작은 네트워크로 나눠서 쓰는 방식인 Classfulless IP 주소가 만들어졌다. Classful IP 주소는 필드 단위를 점으로 구분을 했다면 Classfulless IP 주소는 원하는 어디서든 구분할 수 있게 자를 수 있다. 서브넷 마스크를 통해서 네트워크 대역을 서브(보조)단위로 잘게 쪼개는데, 네트워크 대역을 어디서부터 구분할건지 지정해주는 것이다. 즉, 서브넷 마스크를 통해서 네트워크 구분을 하는 곳이고 네트워크 대역에 속해있는 컴퓨터인지 구분해주는 것이다.

  • 서브넷 마스크 특징 : 네트워크 대역을 나눠주는데 사용하는 값, 2진수로 표기했을 때 1로 시작하고, 1과 1사이에는 0이 올 수 없다. 그래서 1과 0이 바뀌는 그 부분이 네트워크 대역을 구분하는 곳이다.

ex. "11111111.11111111.11111111.11000000" 이면 0부터 63, 64개의 PC가 들어올 수 있다.

서브넷 마크를 이용해 하나의 큰 네트워크 대역을 잘게 쪼개는걸 서브네팅라고 부르고, 다시 합치는걸 슈퍼네팅이라고 부른다.

  • 서브네팅(Subnetting) : IP 주소를 효율적으로 사용하기 위해 네트워크를 나누는 과정으로 자신의 네트워크를 더 작은 서브 네트워크로 나누는 것을 말한다.
  • 슈퍼네팅(Supernetting) : 여러 개의 작은 네트워크를 하나의 커다란 네트워크로 바꾸는 과정으로 여러 네트워크의 공통되는 부분을 정리하여 하나의 네트워크로 묶는 것을 말한다.
1912.168.32.189/26
IP 주소 192.168.32.189
서브넷 마스크 255.255.255.192
네트워크 ID 192.168.32.128
브로드캐스트 주소 192.168.32.191
사용 가능 IP 범위 192.168.32.129 ~ 192.168.32.190

사설 IP/공인 IP

그래도 IP가 부족하게 되어 사설 IP와 공인 IP라는 개념을 도입한다. 지금 이 개념이 현재의 IPv4의 개념이다. 공인 IP 1개당 4,294,967,296(2의 32제곱)개의 사설 IP가 있다.

  • 공인 IP : 인터넷 네트워크 통신망이랑 사용할 때 사용하는 IP 주소
  • 사설 IP : 같은 네트워크 대역에서 사용하는 IP 주소

사설 IP를 사용하고 있는 장비들은 네트워크 통신을 할 때 무조건 공인 IP로 바꿔서 외부와 통신한다. 네트워크 주소를 사설IP에서 공인IP로 바꿔주는 것을 NAT(Network Address Translation)라고 부른다.

외부 네트워크 대역에서는 사설 IP 대역이 보이지 않는다. 공유기는 나갈 때 NAT Table에 기록한다. 그거에 대한 응답이 왔을 때 NAT Table을 보고 그 대상에게 전달해준다.

만약에 나간적이 없는(NAT Table에 기록X) 패킷이 응답으로 들어오면 공유기는 어디 컴퓨터에 전달 하는것이 아니라 그냥 받고 끝낸다. 웹 서버 같은 특정 서버에 요청을 하면 공유기한테 보냈더니 나간적이 없다면, 웹 서버에 전달이 안된다. 그래서 서버는 공인 IP를 사용하거나 공유기에 추가적인 설정을 한다. 이러한 추가적인 설정을 포트 포워딩이라고 한다. 사설 IP는 외부에서 안보이기 때문에 나갔다가 들어오는 것만 통신이 되고 포트 포워딩같은 추가적인 설정없이 바깥에서 바로 안쪽으로 들어올 수 없다.

특수한 IP 주소

(1) 0.0.0.0 : Wildcard 마스크라고 부르고, 나머지 모든 IP를 의미한다.

(2) 127.0.0.1 : 나 자신을 나타내는 주소를 의미한다.

(3) 게이트웨이 주소 : 일반적으로 공유기의 IP를 사용하는데, 공유기를 자세히 보면 WAN이라고 적힌 포트가 있는데 외부에서 들어오는 인터넷 선이다. 다른 포트들은 사설 네트워크 대역에서 사용하는 선들을 연결한다. 그래서 WAN은 공인 IP가 할당되고, 다른 포트들은 각각 IP를 할당받는다. 네트워크 대역에서 쓸 수 있는 가장 작거나 가장 큰 IP를 쓴다. 내부에 있는 사설 IP 장비들은 공유기를 통해 나가게 되는데 여기서 나가는 주소가 게이트웨이다.