독학/[책] 네트워크

[혼공학습단 12기 혼공네트🌐] 혼자 공부하는 네트워크 week3

최연재 2024. 7. 16. 09:03

✏️기본 미션

Ch.03(03-1) 확인 문제 1번(p.147), (03-3) 확인 문제 2번(p.187) 풀고 설명하기

 
Ch.03(03-1) 확인 문제 1번(p.147)

- IP 주소 지정(IP addressing) : IP주소를 바탕으로 송수신 대상으로 지정하는 것
- IP 단편화(IP fragmentation) : 전송하고자 하는 패킷의 크기가 MTU보다 클 경우 패킷을 나눈다.
 
Ch.03 (03-3) 확인 문제 2번(p.187)



✏️선택 미션

본인 컴퓨터의 IP 주소와 MAC 주소 파악해 보기

📜내용 정리

Chap03. 네트워크 계층

3.1 LAN을 넘어서는 네트워크 계층

1) 데이터 링크 계층의 한계

- 물리 계층과 데이터 링크 계층만으로는 타 네트워크까지의 도달 경로를 파악하기 어렵다.

  • 라우팅(routing) : 패킷이 이동할 최적의 경로를 결정
  • 믈리 계층과 데이터 링크 계층의 장비로는 라우팅을 수행할 수 없다.

- MAC 주소만으로는 모든 네트워크에 속한 호스트의 위치를 특정하기 어렵다.

  • 모든 호스트가 모든 네트워크에 속한 모든 호스트의 MAC 주소를 알고 있기 어렵다.
  • 논리 주소인 IP 주소가 필요하다.

 

2) 인터넷 프로토콜(Internet Protocol : IP)

- 네트워크 계층의 핵심 프로토콜
- IPv4, IPv6 두 가지 버전이 있다.
 
(1) IP 주소 형태 (IPv4)
- 4바이트(32비트)로 주소를 표현할 수 있고 숫자당 8비트로 표현되므로 0~255 범위의 10진수(옥텟) 4개로 표현된다.
 
(2) IP의 기능
- IP 주소 지정(IP addressing) : IP주소를 바탕으로 송수신 대상으로 지정하는 것
- IP 단편화(IP fragmentation) : 전송하고자 하는 패킷의 크기가 MTU보다 클 경우 패킷을 나눈다.

  • MTU(Maximum Transmission Unit) : 한 번에 전송 가능한 패킷의 최대 크기
  • IP 패킷의 헤더도 MTU 크기에 포함된다. 

📍 경로 MTU 발견(Path MTU discovery)
: 경로 MTU(IP 단편화 없이 주고받을 수 있는 최대 크기)를 구하고 해당 크기만큼만 송수신해 IP 단편화를 회피하는 기술
 
(3) IPv4

 
- 식별자(identifier) : 패킷의 할당 번호
- 플래그 (flag)

  • 3개의 비트로 구성된 필드
  • 첫 번째 필드(예약된 비트로 현재 미사용) : 0 
  • DF : 1일 경우 IP 단편화를 수행하지 않고, 0일 경우 IP 단편화 수행 가능
  • MF : 1일 경우 쪼개진 패킷이 더 있다는 뜻이고, 0일 경우 마지막 패킷

- 단편화 오프셋 (fragment offset)

  • 패킷이 단편화되기 전에 패킷의 초기 데이터에서 몇 번째로 떨어진 패캣인지를 나타낸다.
  • 수신지가 패킷들을 순서대로 조합하기 위해 필요하다.

- TTL (Time To Live)

  • 패킷이 하나의 라우터를 거칠 때마다(홉) TTL이 1씩 감소한다.
  • TTL 값이 0이 되면 해당 패킷은 폐기된다.

- 프로토콜 (protocol) :상위 계층의 프로토콜이 무엇인지를 나타내는 필드
 
(4) IPv6
- 16바이트로 주소를 표현할 수 있고, 콜론(:)으로 구분된 8개 그룹의 16진수로 표기된다.

- 다음 헤더 (next header)

  • 상위 계층의 프로토콜이나 확장 헤더를 가리킨다.
  • IPv6의 헤더는 기본 헤더
  • 추가적인 헤더 정보가 필요할 경우 기본 헤더와 더불어 확장 헤더(extension header)라는 추가 헤더를 가리킬 수 있다.
  • 확장 헤더는  기본 헤더와 페이로드 데이터 사이에 위치한다.

- IPv6은 단편화 확장 헤더를 통해 단편화가 이루어진다.
 

3) ARP (Address Resolution Protocol)

- IP주소를 통해 MAC 주소를 알아내는 프로토콜
- 동작 과정 (A에서 B로 패킷을 보내며, IP주소만 아는 경우)
 
(1) ARP 요청 (ARP Request)

  • A는 네트워크 내의 모든 호스트에 브로드캐스트 메시지를 보낸다.

(2) ARP 응답 (ARP Reply)

  • 네트워크 내의 모든 호스트는 ARP 요청 메시지를 수신한다.
  • 본인이 아닐 경우 무시하고, 본인일 경우 본인의 MAC 주소를 유니캐스트 메시지로 A에게 전송한다.

(3) ARP 테이블 갱신

  • ARP 테이블(ARP Table) : ARP를 활용할 수 있는 모든 호스트가 가진 표로 IP주소와 MAC주소를 대응해서 기록

- 다른 네트워크에 속한 호스트에게 패킷을 보내야 할 경우 라우터의 MAC 주소를 알아내서 패킷을 전송한다.
 
 

3.2 IP 주소

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

- 네트워크 주소 : 호스트가 속한 특정 네트워크를 식별
- 호스트 주소 : 네트워크 내에서 특정 호스트를 식별
 

2) 클래스풀 주소 체계

- 클래스 : 네트워크 크기에 따라 IP주소를 분류하는 기준
- 클래스풀 주소 체계 : 클래스를 기반으로 IP주소를 관리한다.

  • A 클래스
    • 네트워크 주소는 비트 0으로 시작하고 1옥텟으로 구성
    • 호스트 주소는 3옥텟으로 구성
    • 0.0.0.0. ~ 127.255.255.255.
  • B 클래스
    • 네트워크 주소는 비트 10으로 시작하고 2옥텟으로 구상
    • 호스트 주소는 2옥텟으로 구성
    • 128.0.0.0. ~ 191.255.255.255
  • C 클래스
    • 네트워크 주소는 비트 110으로 시작하고 3옥텟으로 구상
    • 호스트 주소는 1옥텟으로 구성
    • 192.0.0.0. ~ 223.255.255.255.

- 호스트 주소가 모두 0인 IP주소는 해당 네트워크 자체를 의미하는 네트워크 주소로 사용된다.
- 호스트 주소가 모두 1인 IP주소는 브로드캐스를 위한 주소로 사용된다.
- 따라서 실제로 할당 가능한 주소의 개수는 이론상 가능한 주소 개수 - 2이다.
- 클래스별 네트워크의 크기가 고정되어 있기 때문에 다수의 IP주소가 낭비될 가능성이 크다.
 

3) 클래스리스 주소 체계

- 클래스 개념 없이 클래스에 구애받지 않고 네트워크의 영역을 나눠 호스트에게 IP주소 공간을 할당하는 방식
 
(1) 서브넷 마스크
- 클래스리스 주소 체계에서 네트워크와 호스트를 구분 짓는 수단
- 서브넷 마스크 : IP주소 상에서 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열
- 서브네팅 : 서브넷 마스크를 이용해서 클래스를 원하는 크기로 더 잘게 쪼개어 사용하는 것
- A, B, C 클래스의 기본 서브넷 마스크

  • A 클래스 : 255.0.0.0
  • B 클래스 : 255.255.0.0
  • C 클래스 : 255.255.255.0

(2) 서브네팅 : 비트 AND 연산
- 서브넷 마스크를 이용하여 네트워크와 호스트 주소를 구분짓기 위해 IP 주소와 서브넷 마스크를 비트 AND 연산한다.
- 서브넷 마스크 표기 : CIDF 표기법

  • IP주소/서브넷 마스크 상의 1의 개수 형식으로 표기

 

4) 공인 IP주소와 사설 IP주소

- 공인 IP주소 : 전 세계에서 고유한 IP주소
- 사설 IP주소 : 사설 네트워크에서 사용하기 위한 IP주소

  • 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
  • 사설 IP주소의 할당 주체는 일반적으로 라우터
  • 사설 IP주소를 사용하는 호스트가 외부 네트워크와 통신하기 위해서는 NAT 기술을 이용한다.
  • NAT(Network Address Translation) : IP 주소를 변환하는 기

 

5) 정적 IP주소와 동적 IP주소

- 정적 할당

  • 호스트에 직접 수작업으로 IP주소를 부여한다.

- 동적 할당

  • 호스트에 IP주소가 동적으로 할당
  • 동적 IP 주소는 사용되지 않을 경우 회수된다.
  • DHCP : IP 동적 할당에 사용되는 대표적인 프로토콜
  • DHCP를 통한 IP 주소 할당은 IP주소를 할당받고자 하는 호스트와 해당 호스트에게 IP주소를 제공하는 DHCP 서버 간 메시지를 주고받으며 이루어진다.
    1. DHCP Discover
      • 클라이언트 -> DHCP 서버
      • 클라이언트는 DHCP Discover 메시지를 통해  DHCP 서버를 찾는다.
      • 송신지 IP 주소는 0.0.0.0으로 설정
    2. DHCP Offer
      • DHCP 서버 -> 클라이언트 
      • DHCP 서버는 DHCP Discover 메시지를 받은 뒤 클라이언트에게 DHCP Offer 메시지를 보낸다.
      • 클라이언트에게 할당해 줄 IP주소를 제안하는 메시지
    3. DHCP Request
      • 클라이언트  -> DHCP 서버 
      • DHCP Offer 메시지애 대한 응답으로, 브로드캐스트로 전송된다.
    4. DHCP ACK
      • DHCP 서버 ->  클라이언트  
      • 해당 메시지를 받은 클라이언트는 할당받은 IP주소를 자신의 IP주소로 설정한 뒤 임대 기간 동안 IP주소를 이용한다.

 

3.3 라우팅

1) 라우터

- 라우팅 : 패킷이 이동할 최적의 경로를 설정한 뒤 해당 경로로 패킷을 이동시킨다.
 

2) 라우팅 테이블

- 라우팅 테이블 : 특정 수신지까지 도달하기 위한 정보를 명시한 일종의 표
- 라우터는 라우팅 테이블을 참고해서 수신지까지의 도달 경로를 판단한다.
- 주요 정보

  • 수신지 IP주소와 서브넷 마스크 : 최종적으로 패킷을 전달할 대상
  • 다음 홉 (게이트웨이) : 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP주소나 인터페이스
  • 네트워크 인터페이스 : 패킷을 내보낼 통로
  • 메트릭 : 해당 경로로 이동하는 데 드는 비용

- 디폴트 라우트 

  • 라우팅 테이블에 없는 경로로 패킷을 전송해야 할 경우에 기본적으로 패킷을 내보낼 경로
  • 모든 IP주소를 의미하는 0.0.0.0/0으로 명시

 

3) 정적 라우팅과 동적 라우팅

- 정적 라우팅

  • 사용자가 수동으로 직접 채운 라우팅 테이블의 항목을 토대로 라우팅하는 방식

- 동적 라우팅

  • 자동으로 라우팅 테이블 항목을 만들고 이를 이용해 라우팅

 

4) 라우팅 프로토콜

- 라우터끼리 자신의 정보를 교환하여 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜
- AS : 한 회사나 단체에서 관리하는 라우터 집단
- AS 내부에서 수행되는 라우팅 프로토콜 : IGP
- AS 외부에서 수행되는 라우팅 프로토콜 : EGP
 
(1) IGP (Interior Gateway Protocol)
- RIP (Routing Information Protocol)

  • 최적의 경로를 선정하는 과정에서 거리 벡터를 사용한다.
  • 거리는 패킷이 경유한 라우터의 수, 즉 홉의 수
  • 주기적으로 라우팅 테이블 갱신

- OSPF (Open Shortest Path First)

  • 최적의 경로를 선정하는 과정에서 링크 상태를 사용한다.
  • 현재 네트워크의 상태를 그래플의 형태로 링크 상태 데이터베이스(LSDB)에 저장한다.
  • 대역폭이 높은 링크일수록 메트릭이 낮은 경로로 인식
  • 네트워크의 구성이 변경되었을 떄 라우팅 테이블 갱신
  • AS를 에어리어라는 단위로 나누고, 에어리어 내에서만 링크 상태를 공유
  • 에어리어 경계에 있는 ABR이라는 라우터가 에어리어 간의 연결을 담당한다.

(2) EGP (Exterior Gateway Protocol)
- BGP (Border Gateway Protocol)

  • AS 간의 통신이 가능한 대표적인 프로토콜
  • eBGP : AS 간의 통신을 위한 BGP
  • iBGP : AS 내의 통신을 위한 BGP
  • 피어링 : 다른  AS와의 BGP 연결을 유지하기 위해 BGP 라우터끼리 피어 관계가 되도록 연결되는 과정
  • BGP 속성
    • AS-PATH :메시지가 수신지에 이르는 과정에서 통과하는 AS의 목록
    • NEXT-HOP : 다음으로 거칠 라우터의 IP주소
    • LOCAL-PREF : 지역 선호도

 

🤔느낀 점

이번 주도 그림이 많아서 내용을 이해하기 쉬웠습니다! 벌써 절반이 지났네요. 끝까지 힘내보겠습니다.