네트워크

[03] 네트워크 계층

BGK97 2024. 5. 29. 13:45
  • LAN을 넘어서는 다른 네트워크와 통신을 하려면 네트워크 계층의 역할이 필수적

데이터 링크 계층의 한계

  1. 물리, 데이터 링크 계층만으로는 다른 네트워크 까지의 도달경로 파악이 어려움
    • 거리가 먼 사용자들 끼리 통신을 할 때, 패킷이 이동을 해야하는데, 이를 라우팅이라 함
    • 하지만 물리와 데이터 링크 계층에는 라우팅이 수행 불가
  2. MAC 주소만으로는 모든 네트워크에 속한 호스트의 위치 특정이 어려움
    • 호스트가 모든 네트워크에 속한 호스트의 MAC주소를 알기는 어려움
    • 네트워크 계층에서는 이를 대신해 IP 주소를 사용
    • 이 때 MAC 주소를 물리주소, IP를 논리 주소라고 함
    • IP는 호스트에 직접 할당하는데, DHCP를 통해 자동할당을 받거나 사용자가 임의 할당

인터넷 프로토콜(IP)

  • 네트워크 계층의 가장 핵심적인 프로토콜
  • IP에는 4버전과 6버전이 존재, 일반저긍로 4버전을 의미

IP 주소의 형태

  • IP 주소는 4바이트 형태로 주소 표현 가능, 숫자당 8비트
  • 점으로 구분되는 8비트를 옥텟이라고 함

IP의 기능

  • IP 주소 지정, IP 단편화

  • IP 주소 지정은 IP 주소를 바탕으로 송수신 대상을 지정
  • IP 단편화는 전송하고자 하는 패킷의 크기가 MTU(최대 전송 단위)보다 클 경우, 이를 MTU 이하의 복수 패킷으로 나누는 것을 의미
    • 일반적으로 MTU는 1500바이트 크기

IPv4

  • IPv4패킷은 다음과 같이 표현
  • 가장 중요한 부분은 7가지로, 식별자 부터 수신지 IP 주소까지 중 헤더 체크섬을 제외한 부분

식별자

  • 패킷에 할당된 번호
  • 패킷이 분할되어 전송됐을 시에, 이를 마지막에 재조합 할 때에 사용

플래그

  • 총 세 개의 비트로 구성된 필드
  • 처음은 0으로 예약된 비트로 사용 x
  • 사용되는 나머지 두 개의 비트 중 하나는 DF (단편화 수행 여부 결정, 0이면 수행, 1이면 X)
  • 나머지 하나난 MF (단편화된 패킷이 더 있는지 확인하는 비트로, 0이면 없다, 1이면 더 있다)

단편화 오프셋

  • 패킷이 단편화 되기 전, 패킷의 초기 데이터에서 몇 번째로  떨어진 패킷인지 나타냄

TTL

  • Time To Live의 약어로, 패킷의 수명을 의미
  • 라우터를 거치면서 1씩 감소하며, 0으로 된 패킷은 폐기
  • 패킷이 호스트나 라우터에 한 번 전달되는 것을 홉이라 함
    • 홉마다 1씩 감소한다는 얘기임
  • 무의미한 패킷이 네트워크상에 지속되어 남아있는 것을 방지하기 위함

프로토콜

  • 상위 계층의 프로토콜이 무엇인지 나타내는 필드
  • TCP는 6번, UDP는 17번...

송신지, 수신지 IP주소

  • 송수신지의 IPv4 주소를 알 수 있음

IPv6

  • IPv4의 용량 부족을 이유로 등장
  • 16바이트로 주소 표현이 가능, 콜론으로 구분된 8개 그룹의 16진수로 표기
  • 사실상 무한에 가까운 개수로 할당 가능함
  • IPv6 패킷의 기본 헤더는 다음 헤더, 홉 제한, 송신지 IP 주소, 수신지 IP주소로 구성

다음 헤더

  • 다음 상위 계층의 프로토콜이나 확장 헤더를 가리킴
    • 확장 헤더란, 다음과 같음

홉 제한

  • 홉 제한은 패킷의 수명을 나타내는 필드

송신지, 수신지 IP 주소

  • IPv6 주소 지정이 가능 
IPv4의 헤더는 옵션, 패딩 필드가 선택적으로 길이가 가변적이다
IPv6의 헤더는 40바이트로 고정적이다.

ARP

  • IP주소를 통해 MAC 주소를 알아내는 프로토콜
  • 다음과 같은 과정으로 MAC주소를 알아냄
    1. ARP 요청
    2. ARP 응답
    3. ARP 테이블 갱신

1. ARP 요청

 

  • 호스트A 가 모든 호스트에게 브로드 캐스트 메세지를 보냄
    • 여기서 브로드캐스트란, 자신을 제외한 모든 네트워크의 호스트에게 전송하는 방식임

2. ARP 응답

  • 아닌 사람들은 모두 무시하고, 해당 통신매체만 응답을 함
  • 이 때 자신의 MAC주소를 담은 메세지를 전송함

3. ARP 테이블 갱신

  • ARP 테이블이라는 정보를유지 하는데, MAC 주소 테이블과 같다고 보면 될 듯함
  • 응답을 받았으면 이 정보를 ARP 테이블에 갱신을 하고, 연관관계를 테이블에 추가함
  • ARP는 동일 네트워크에 있는 호스트의 IP주소를 통해 MAC주소를 알아낸다!!
  • 만약 다르다면?
    • 라우터를 활용

라우터를 활용한 타 네트워크간 통신

  • 라우터 A가 B에게 패킷을 전달해야함, 이 때 요청과 응답과정을 거쳐 B의 MAC주소를 가져옴

  • 이제 라우터 B는 호스트 B에게 전달해야하므로 똑같은 과정을 거쳐 전달함

IP 주소

  • 네트워크 주소와 호스트 주소로 이루어짐

네트워크 주소와 호스트 주소

  • 네트워크 주소는 네트워크 ID, 네트워크 식별자 등으로 불리기도 함
  • 호스트 주소는 똑같이 ID와 식별자로 불림
  • 형태는 네트워크 주소 16비트, 호스트 주소 16비트로 구성
    • 고정은 아니며, 옥텟의 구성 여부에 따라 달라짐

클래스풀 주소 체계

  • 호스트, 네트워크 주소 공간을 효율적으로 할당하기 위해 생겨난 개념
  • 네트워크 크기에 따라 IP 주소를 분류
  • 필요한 호스트 IP 개수에 따라 네트워크 크기를 가변적으로 조정해, 네트워크와 호스트 주소를 구획
  • 클래스를 기반으로 IP주소를 관리하는 체계를 클래스풀 주소 체계라고 함

  • 그림에서 보면 A클래스가 할당 가능한 호스트가 가장 많음
  • 네트워크 주소는 0으로 시작하고, 1옥텟으로 구성, 호스트는 3옥텟 구성
  • 네트워크는 2의7승, 호스트는 2의 24승 구성이 가능
클래스풀 주소 체계에서, 호스트의 주소공간이 모두 0이거나 1인 경우는 사용할 수 없다
-> 0은 네트워크 주소로 사용, 1은 브로드캐스트 주소로 사용하기 때문

클래스리스 주소 체계

  • 클래스풀 주소 체계보다 더 유동적이고 정교하게 네트워크를 구획할 수 있는 방법
  • 개념 없이 클래스에 구애받지않고, 네트워크 영역을 나누어 호스트에게 IP주소 공간을 할당하는 방식
  • 오늘날 주로 사용

서브넷 마스크

  • IP 주소상에서 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열을 의미
  • 네트워크 내의 부분적인 네트워크를 구분 짓는 비트열
  • 서브넷 마스크를 이용해 클래스를 원하는 크기로 더 잘게 쪼개어 사용하는 것을 서브네팅

서브네팅 : 비트 AND 연산

  • 네트워크와 호스트 주소를 구분짓는 방법

  • 서브넷 마스크의 0이 8개이므로 호스트 주소도 8비트로 표현 가능!
    • 여기서 네트워크 주소인 0과 브로드캐스트인 255를 제외한 이 사이 값을 이용 가능

서브넷 마스크 표기: CIDR 표기법

  • 서브넷 마스크 표현에는 두가지 방식이 있음
    • 10진법으로 표현
    • IP 주소/서브넷 마스크 상의 1의 개수로 표기
  • 여기서, IP 주소/서브넷 마스크 상의 1의 개수로 표기하는 형식을 CIDR 표기법이라 함

  • 서브넷 마스크에서의 1의 개수를  / 뒤에 표현함

공인 IP와 사설 IP 주소

공인 IP 주소

  • 전 세계에서 고유한 IP 주소
  • 네트워크 간의 통신, 인터넷을 이용시 사용하는 IP 주소 등...
  • ISP나 공인 IP 주소 할당 기관을 통해 발급 가능

사설 IP 주소와 NAT

  • 사설 네트워크에서 사용하기 위한 IP주소
  • 외부 네트워크에 공개되지 않은 네트워크
    • 사설 네트워크로 사용하도록 예약된 주소 공간

  • 사설 IP주소의 할당 주체는 일반적으로 라우터임
  • 해당 호스트 상의 네트워크에서만 유효하기 때문에, 다른 네트워크상의 사설 IP 주소와 중복 가능
  • 외부와 통신하고 싶을 땐 NAT를 사용( Network Address Translation )
    • 네트워크 내부에서 사용하는 사설 IP와 외부에서 사용되는 공인 IP주소를 변환 시에 사용
    • 대부분의 라우터와 공유기는 NAT 기능을 내장
      1. 사설 네트워크의 패킷 속 사설 IP 주소는 공유기를 통해 공인 IP로 변경 후 외부 네트워크 전송
      2. 외부 네트워크로 받은 패킷 속 공인 IP 주소는 공유기를 거쳐 사설 IP 로 변경 후사설 네트워크 속 호스트에게 전달

정적 Ip 주소와 동적 Ip 주소

  • 정적 할당
    • 수작업으로 IP 주소를 부여
  • 동적 할당과 DHCP
    • 수작업으로 잘못된 IP나 중복된 IP주소 입력을 방지하기 위함
    • 사용하지 않을 경우 회수
    • 이 때 사용되는 프로토콜이 DHCP( Dynamic Host Configuration Protocol)
      • DHCP 서버 간 메세지를 통해, 할당 가능한 ip주소 목록을 관리하여 클라이언트 요청시마다 주소를 할당하는 방식을 사용
      • 이 때 사용기간이 정해져 있어, 기간이 지나면 다시 DHCP 서버로 반납
      • 그래서 임대로 표현하기도 한다...

DHCP Discover(클라이언트 -> DHCP 서버)

  • 클라이언트에서 DHCP 서버를 찾는 메세지

DHCP Offer(DHCP 서버 -> 클라이언트)

  • 클라이언트에게 ip주소를 제안하는 메세지

DHCP Request(클라이언트 -> DHCP 서버)

  • Offer메세지에 대한 응답으로, 브로드 캐스트에 전송하여 주소 사용 가능 여부를 되물어봄

DHCP ACK(DHCP 서버 -> 클라이언트)

  • 최종 승인 메세지로, 해당 메세지 이후 ip주소를 사용하여 임대기간 동안 사용
더 사용하고 싶으면,  임대갱신으로 기간 연장 가능!!