[CS, 네트워크] IP주소

Sieun Dorothy Lee·2024년 4월 13일
0

영상: [따라學 IT] 04. 실제로 컴퓨터끼리는 IP주소를 사용해 데이터를 주고받는다

  • 컴퓨터끼리는 IP주소로 통신한다
  • IP주소는 3계층에서 쓰는 주소 체계, 논리적 주소
  • MAC주소는 2계층에서 쓰는 주소 체계, 물리적 주소

3계층의 기능

  • 멀리 떨어진 곳에 존재하는 네트워크(다른 네트워크 대역)까지 어떻게 데이터를 전달할지 제어하는 일을 담당

  • 가까운 네트워크 대역: LAN

  • LAN —— (WAN) —— LAN

  • 대표적인 장비: 라우터 (2계층 대표적인 장비: 스위치)

  • 발신에서 착신까지의 패킷의 경로를 제어함

  • powershell에서 Ipconfig 쳐보면 현재 IP 주소를 확인할 수 있음

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

3계층 프로토콜

  • ARP 프로토콜
  • IPv4 프로토콜 (IPv6와 완전히 다른 프로토콜)
  • ICMP 프로토콜

일반적인 IP 주소 (=IPv4 주소)

Classful IP 주소

  • 필드 4개, 콤마(.) 으로 구분
  • 내부는 이진수이지만 십진수로 기재
  • 한 필드당 1byte(=8bit) ⇒ 한 필드당 0 ~ 255까지 가능)
  • 옛날, 초창기 방식임
클래스네트워크 구분시작 주소마지막 주소
A클래스0XXXXXXX(첫번째 필드를 이진수로 바꿨을 때)0.0.0.0127.255.255.255
B클래스10XXXXXX(첫번째 필드를 이진수로 바꿨을 때 = 128)128.0.0.0191.255.255.255
C클래스110XXXXX(첫번째 필드를 이진수로 바꿨을 때 = 192)192.0.0.0223.255.255.255
D클래스1110XXXX224.0.0.0239.255.255.255
E클래스1111XXXX240.0.0.0255.255.255.255
  • A 클래스
    • 첫번째 필드만 네트워크 대역 구분에 쓰임(=> A 클래스의 네트워크 대역은 128가지 있을 수 있음)
    • 두번째~네번째 필드는 하나의 네트워크 대역 내의 PC 종류를 구분하는데 쓰임 (=> 0.0.0 -> 255.255.255 : 256256256 개의 PC 구분 가능함)
    • 구분 가능한 네트워크 대역 수 << 구분 가능한 PC 수 => 엄청나게 규모가 큰 네트워크 대역에서 사용하는 IP 주소체계
  • B 클래스
    • 두번째 필드까지 네트워크 대역 구분에 쓰임 (=> A클래스보다 구분 가능한 네트워크 대역이 늘어남)
    • 세번째, 네번째 필드는 하나의 네트워크 대역 내의 PC 종류를 구분하는데 쓰임 (=> 256*256 개의 PC 구분 가능함)
  • C 클래스
    • 세번째 필드까지 네트워크 대역 구분에 쓰임 (=> A클래스보다 구분 가능한 네트워크 대역이 훨씬 늘어남)
    • 네번째 필드는 하나의 네트워크 대역 내의 PC 종류를 구분하는데 쓰임 (=> 256개의 PC 구분 가능함)
    • 일반적으로 가장 많이 사용됨
  • D 클래스
    • 멀티캐스트용으로 남겨둔 주소
  • E클래스
    • 실험용으로 남겨둔 IP주소

⇒ 문제점: 낭비가 심하다

ex) A클래스를 한 장소에서 사용한다고 하면, 하나의 네크워크 대역을 차지할텐데, 해당 네트워크 대역에 연결된 컴퓨터가 10대라고 하면, (256256256 – 10)개의 IP주소가 쓰이지 못하고 낭비된다.

Classless IP주소

  • 하나의 큰 네트워크를 여러 개의 작은 네트워크로 쪼개서 쓰자.
  • 서브넷 마스크로 (어디까지가 네트워크 대역에 대한 구분)이고 (어디서부터가 PC(=호스트) 구분)을 위한 IP 주소인지 알 수 있음
  • 규칙
    • 8bit * 4로 이루어져 있음
    • 2진수로 표기했을 때 1로 시작해야함
    • 1과 1 사이에는 0이 올 수 없음
    • 1의 위치 = 네트워크 대역 구분에 쓰이는 IP 주소 위치
    • 0의 위치 = PC 구분에 쓰이는 IP 주소 위치
      ex) 255.255.255.192 => 1111111.11111111.11111111.11000000
  • 예시
    • IP 주소에서 1111111.11111111.11111111.11000000 => 이 부분은 네트워크 대역 구분에 쓰임 (256256256*4가지)
    • IP 주소에서 1111111.11111111.11111111.11000000 => 이 부분은 PC 구분에 쓰임 (64가지)
    • 서브넷마스크가 255.255.255.0(=1111111.11111111.11111111.00000000)이면 C 클래스를 의미함

⇒ 이렇게 해도 이진수 기준이라서 낭비가 됨

ex) 20대 PC가 있는데 255.255.255.224 (=1111111.11111111.11111111.11100000) 서브넷마스크를 쓰면 32대 구분이 가능해서 12개의 IP주소가 낭비된다

  • 한 필드에 16bit를 담을 수 있는 IPv6를 쓰자는 이야기가 나왔다.

사설 IP와 공인 IP

  • 현재 사용하는 IPv4의 개념
  • 공인IP 1개당 256256256*256개의 사설IP가 생길 수 있다
  • 공인 IP : 인터넷 세상, 즉, 네트워크 통신망과 통신할 때 사용하는 IP 주소. 인터넷과 통신할 때 같은 네트워크 대역에 있으면 하나의 IP 사용
  • 사설 IP : 같은 네트워크 대역에서 사용하는 IP 주소
  • NAT(Netword Address Translation) : 특정 IP를 특정 IP로 변환하는 기술 ⇒ 공유기
  • 집에 인터넷 설치하는건 공유 IP 하나를 돈 주고 사는 개념임

  • 실제 인터넷 세상에서는 공인 IP로만 통신 ⇒ 외부 네트워크 대역에서 사설 IP 대역은 보이지 않음

  • 개인 PC에서 어떠한 요청을 보내면(사설IP → 공인IP → 바깥 세상) 공유기가 NAT 테이블에 기록
  • 응답이 오면, NAT 테이블을 보고 요청 보냈던 사설 IP로 응답 보내줌
  • 응답이 왔는데, NAT 테이블에 기록된 요청이 없으면 공유기가 응답을 받음(안 보내줌)
  • 요청이 있어야만 응답이 외부에서 내부로 들어올 수 있어서 서버는 사설 IP를 잘 쓰지 않는다 ⇒ 포트포워딩이라는 추가적인 설정을 하면 가능

특수한 IP 주소

  • 0.0.0.0 : 나머지 모든 IP
    • IPv4 경로 테이블에서 네트워크 대상에 적힌 IP 주소들 외의 모든 IP
  • 127.0.0.1 : 나 자신을 나타내는 주소 (localhost)
  • 게이트웨이 : 일반적으로 공유기의 주소, 외부랑 통신할 때 쓰는 기본 IP
profile
성장하는 중!

0개의 댓글