[네트워크] 4~5강/ 3계층, ARP

Izodam·2024년 4월 1일

네트워크

목록 보기
2/5
post-thumbnail

해당 자료는 따라하면서 배우는 IT/네트워크 기초 강의를 보고 정리한 것입니다.

3계층

3계층의 기능

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

  • 발신에서 착신까지의 패킷의 경로를 제어
  • 즉 LAN과 LAN을 연결시키는 것이 3계층의 역할
  • LAN과 LAN을 연결위해서는 라우터라는 3계층 장비가 필요

3계층에서 쓰는 주소

IP주소를 사용한다.

  • 멀리 있는 곳과 통신하기 위한 최소한의 설정으로는 IPv4 주소, 서브넷 마스크, 게이트웨이 주소가 필수적!
    • IPv4 주소 : 현재 PC에 할당된 IP 주소
    • 서브넷 마스크 : IP주소에 대한 네트워크의 대역을 규정하는 것
    • 게이트웨이 주소 : 외부와 통신할 때 사용하는 네트워크의 출입구

3계층 프로토콜

  • ARP 프로토콜
    • IP 주소를 이용해 MAC 주소를 알아옴
  • IPv4 프로토콜
    • WAN에서 통신할 때 사용
  • ICMP프로토콜
    • 서로 통신되는지 확인할 때 사용

일반적인 IP 주소

IPv4주소를 의미함

  • 주소는 10진수 & ’.’으로 필드를 나눠서 나타냄
    • 각 필드당 1byte로 표현 = 2진수 8개(8bit)
    • 그렇다면 10진수로는 0~255까지 표현
      ex) 222.112.44.165

Classful IP 주소

초창기에는 클래스 별로 나눠서 사용하였음

  • 필드단위로 나누었음

→ 낭비가 심함!!

  • A클래스는 네트워크 대역을 구분하기에는 좋지 않음
    • 첫번째 필드로 네트워크 대역을 구분하고, 나머지 숫자로 동일 네트워크의 장비들을 구분
    • IP주소가 낭비가 심함 → 하나의 네트워크 대역에 연결되는 장비들이 많기 때문에 하나의 네트워크에 그만큼의 장비를 연결하지 않으면 낭비됨
  • C클래스가 네트워크 대역을 많이 구분하고, 한 네트워크 내에서 장비 구분이 많지 않아서 많이 사용하였음
  • D클래스는 일반 PC가 사용하지는 않았음
  • E클래스는 실험용으로 남겨놓은 것

Classless IP 주소

하나의 큰 네트워크를 여러개의 작은 네트워크로 쪼개서 사용

  • 필드별로 쪼개지 않고 2진수 자리로 쪼갬
  • 서브넷 마스크 필요!!
    • 네트워크 대역을 나눠주는데 사용하는 값
    • 네트워크 대역을 어디서부터 구별할 건지에 대한 것
    • 2진수로 표기했을 때 1로 시작, 1과 1사이에는 0이 올 수 없다는 규칙을 가짐
    • 1하고 0이 나뉘는 부분이 쪼개는 곳임
      • 1이 있는 곳은 네트워크 대역을 구분, 0이 있는 곳은 그 하나의 네트워크 대역에 속해있는 컴퓨터들을 구분하는데 사용

이렇게 사용해도 IP가 부족해짐

사설 IP와 공인 IP

현재는 classless와 사설IP 공인IP를 함께 사용하고 있음

  • 사설 IP
    • 같은 네트워크 대역에서 사용하는 IP 주소
  • 공인 IP
    • 네트워크 통신망과 통신할때 사용하는 IP 주소
  • 사설 IP를 사용하고 있는 장비들이 통신할 때 무조건 공인 IP로 바꿔서 인터넷과 통신함
  • NAT(Network Address Translation) = 사설 IP를 공인 IP로 바꿔주는 기술
  • 외부에서는 사설 IP가 보이지 않는다!!
    • 실제 인터넷 세상에서는 공인 IP로만 통신하기 때문
  • 공유기 처리 방식
    • 공유기를 타고 WAN으로 나갈때 NAT table에 기록을 함
    • 그거에 대한 응답이 왔을 때 NAT table을 보고 그 대상에 전달
    • 나간적이 없는 패킷이 공유기에 응답으로 들어오면 공유기가 받고 끝남
    • 서버는 사설 IP를 사용하지 않음!!!
      • 서버는 보낸 적이 없는데 응답이 들어온다
      • 사설 IP를 사용하면 그에 대한 응답을 안하기 때문에 사용하지 않음

특수한 IP 주소

0.0.0.0

나머지 모든 IP

127.0.0.1

나 자신을 나타내는 주소

게이트웨이 주소

공유기의 IP

네트워크 대역에서 쓸 수 있는 IP중에 가장 작거나 가장 큰 IP를 씀


ARP

ARP 프로토콜

같은 네트워크 대역에서 통신을 하기 위해 필요한 MAC주소를 IP주소를 이용해서 알아오는 프로토콜

  • 같은 네트워크 대역에서 통신을 한다고 하더라도 데이터를 보내기 위해서는 7계층부터 캡슐화를 통해 데이터를 보내기 때문에 IP주소와 MAC주소가 모두 필요

  • 이때 IP주소는 알고 MAC주소는 모르더라도 ARP를 통해 통신이 가능

  • 구조

    • Source hardware address : 출발지 MAC 주소(6byte)
    • Source Protocol Address : IP 주소(4byte → IPv4)
    • Destination ~~ : 도착지의 MAC 주소와 IP주소
    • Hardware type : 2계층에서 사용하는 프로토콜의 타입 → 거의 이더넷 → 0001
    • Protocol type : Protocol Address의 타입 → 거의 IPv4 → 0800
    • Hardware Address Length : MAC주소의 길이 = 6byte → 06
    • Protocol Address Length : IPv4주소의 길이 = 4byte → 04
    • opcode : 어떻게 동작하는지를 나타내는 코드
      • 물어볼 때는 0001, 응답할 때는 0002

ARP 프로토콜의 통신 과정

  1. 출발지에서 ARP요청을 보냄

    • 목적지 MAC주소 모르니까 00000000으로 보냄
  2. 이더넷 프로토콜을 encapsulation함

    • 목적지 MAC주소 모르니까 FFFFFFFF로
  3. 프로토콜을 같은 대역대에 있는 모두에게 보냄 (모르기 때문)

  4. 가운데에 있는 switch라는 2계층 장비가 2계층 프로토콜까지만 확인해서 decapsulation

  5. 모두가 받아서 2계층 프로토콜 확인했을 때 모두이기 때문에 해당되서 3계층까지 까봄

  6. 그렇다면 IP주소를 확인해서 일치하지 않으면 패킷 버리고 일치하는 애는 응답 프로토콜을 만들어서 줌

  7. 응답을 받은 출발지에서 ARP캐시 테이블에 목적지의 MAC주소를 등록

ARP 테이블

통신했던 컴퓨터들의 주소를 저장한 테이블

  • 일정 시간이 지나면 없어짐
profile
dog foot (Developer)

0개의 댓글