[네트워크] IPv4, IPv6

DEV_HOYA·2023년 11월 7일
0

CS

목록 보기
30/55
post-thumbnail
post-custom-banner

📌 IPv4

  • 32비트로 표현되는 주소체계
  • 2^32개의 주소를 표현가능(42억 9천만개)
  • 8비트를 10진수로 표현해서 사용
  • 이 주소체계만으로는 부족하기 때문에 NAT, 서브네팅 같은 부가적인 기술들이 필요

✅ 8비트 = 1옥텟

📌 IPv6

  • 128비트로 표현되는 주소체계
  • 2^128개의 주소를 표현 가능(NAT, 서브네팅이 필요없음)
  • 16비트씩 8개로 구분하며 16진수로 콜론으로 구분하여 표시
  • 앞의 64비트는 네트워크 주소를 말하며 뒤 64비트는 인터페이스 주소로 이루어짐

⭐ IPv6의 특징

✅ IPSec이 내장됨

  • 데이터 패킷을 암호화하는 보안 네트워크 프로토콜

✅ 단순해진 헤더포맷

  • IPv4헤더의 불필요한 필드를 제거하여 보다 빠른 처리 가능

✅ 체크섬이 없다

  • IPv4에는 CRC를 통해 손상된 패킷을 확인하고 폐기하는 체크섬필드가 있다(Header Checksum 필드)
  • 상위 프로토콜(TCP, UDP)에 체크섬필드가 있기때문에 헤더의 효율화를 위해 IPv6에는 존재하지 않는다.


  • 만일, IPv6 + UDP를 사용할 경우, UDP헤더의 체크섬필드를 사용한다고 설정해야 함

✅ 인터넷 헤더길이에 대한 정보가 없다.

  • IPv4는 가변길이지만 IPv6는 고정길이(40바이트)이다.
  • 따라서 인터넷헤더길이에 대한 정보, 식별, 플래그 등이 삭제됨

⭐ CRC(Cyclic Redundancy Check)

  • 순환중복검사로 네트워크상에서 데이터에 오류가 있는지 확인하기 위한 체크값을 결정하는 방식
  • 데이터를 전송하기 전에 주어진 데이터의 값에 따라 CRC 값을 계산하여 데이터에 붙여 전송하고, 데이터 전송이 끝난 후 받은 데이터의 값으로 다시 CRC값을 계산한다. 이어서 두 값을 비교하고, 다르면 데이터 전송과정에서 잡음 등에 의해 오류가 덧붙여 전송된 것임을 알 수 있다.

⭐ TTL(Time to Live)

  • TTL필드는 패킷이 네트워크에서 무한순환하지 않도록 하는 변수
  • 패킷이 네트워크에서 라우터를 거칠때마다 TTL값이 1씩 감소
  • 값이 0이되면 패킷이 폐기됨
  • IPv6에서는 HOP Limit으로 대체됨

✅ IPv4 vs IPv6 뭐가 더 빠르죠?

  • IPv6는 더 많은 주소를 표현할 수 있다(주소 커버리지가 넓다)
  • 불필요한 헤더가 삭제되어서 빠르고 기본적으로 IPSec 네트워크 보안제품군이 포함되어 보안적인 측면에서도 우수하다
  • 보통은 IPv6가 IPv4보다 속도가 빠르지만 IPv6에서 사용하는 더 큰 패킷 크기로 인해 일부 사용사례에서 느린경우도 존재

📌 클래스풀(Classful IP Addressing)

  • IP주소는 인터넷주소로 네트워크주소, 호스트 주소로 나뉨
  • 네트워크 주소가 동일 = 같은 로컬 네트워크
  • 호스트 주소 : 호스트를 구분하기 위한 주소


⭐ 클래스 A (0)

  • 1.0.0.0 ~ 126.255.255.255
  • 한 네트워크당 2^24 - 2 개의 호스트 ID(16,777,214)
  • 0과 127은 각각 임시주소와 루프백주소(본인IP)로 특수주소이기 때문에 포함하지 않음(클래스A의 특징)(127.0.0.1 or localhost)
  • 네트워크 주소 1옥텟, 호스트 주소 3옥텟
    ex) 124.0.32.52와 124.23.54.63는 같은 네트워크
    ex) 124.0.32.52와 125.0.12.45는 다른 네트워크

⭐ 클래스 B (10)

  • 128.0.0.0 ~ 191.255.255.255
  • 한 네트워크당 2^16 - 2개의 호스트 ID(65,534)
  • 네트워크 주소 2옥텟, 호스트 주소 2옥텟
    ex) 134.0.32.52와 134.0.54.63는 같은 네트워크
    ex) 134.0.32.52와 134.23.12.45는 다른 네트워크

⭐ 클래스 C (110)

  • 192.0.0.0 ~ 223.255.255.255
  • 한 네트워크당 2^8 - 2개의 호스트 ID(254)
  • 네트워크 주소 3옥텟, 호스트 주소 1옥텟
    ex) 192.0.0.3과 192.0.0.13은 같은 네트워크
    ex) 192.0.0.1과 192.0.1.7은 다른 네트워크

✅ 주소당 2개씩 빼는 이유

  • 맨 앞자리는 네트워크 주소로 남겨둠
  • 네트워크 주소 : 전체 네트워크에서 작은 네트워크를 식별하는데 사용
    ex) 192.0.0.0
  • 맨 뒷자리는 브로드캐스팅 주소로 남겨둠
  • 브로드캐스트 주소 : 네트워크에 있는 컴퓨터나 장비 모두에게 한번에 데이터를 전송하는 데 사용되는 전용 IP주소
    ex) 192.0.0.255

⭐ 클래스풀의 문제점

  • 세세한 조절이 어려움

ex1) 네트워크의 크기가 작은 경우 큰 네트워크를 필요로 하는 조직은 여러개를 확보해야 한다. 네트워크의 수가 많아짐

ex2) 작은 네트워크가 필요한 조직의 경우 너무 많은 IP를 가져가므로 IP가 낭비됨

📌 클래스리스

  • 클래스풀의 단점을 해결하기 위해 등장
  • 클래스로 나누는 것이 아닌 서브넷마스크를 중심으로 나눔
  • 현대 주소체계

✅ 서브네팅

  • 네트워크를 나눈다는 의미

✅ 서브넷

  • 서브 네트워크(쪼개진 네트워크)

✅ 서브넷마스크

  • 서브 네트워크를 위한 비트마스크
  • 네트워크 주소는 모두 1, 호스트 주소는 모두 0으로 표기

  • IP주소와 서브넷마스크를 AND 연산을 한다

  • CIDR : 왼쪽에서부터 1의 개수

  • 10000000 : 2^7 = 128개 호스트주소 사용가능(255.255.255.128)

  • 11000000 : 2^6 = 64개 호스트주소 사용가능(255.255.255.192)

  • 11100000 : 2^5 = 32개 호스트주소 사용가능(255.255.255.224)

  • 11110000 : 2^4 = 16개 호스트주소 사용가능(255.255.255.240)
    => 세분화가 된다

  • 클래스 A는 255.0.0.0

  • 클래스 B는 255.255.0.0

  • 클래스 C는 255.255.255.0

ex) 12개의 IP를 할당해야할 때 올바른 서브넷마스크?

  • 255.255.255.240(11111111.11111111.11111111.11110000)
ipconfig


⭐ NAT(Network Address Translation)

  • 패킷이 트래픽 라우터 장치를 통해 전송되는 동안 패킷의 IP주소를 변경하여 다른 IP주소로 매핑하는 방법
  • 외부와의 통신할때는 공인 IP, 네트워크내에서는 사설IP 사용
  • 내부 네트워크IP가 노출이 안되 보안적으로 좋음
    ex) Wi-Fi
  • IP주소의 부족 문제를 해결(Public IP / Private IP)
post-custom-banner

0개의 댓글