전공/데이터 통신

8-2강 [Network Layer] DHCP ,IP Datagram Format, IP Addressing, NAT

뜨거운 개발자 2024. 5. 3. 13:21

Network Layer

  • Transport segment from sending to receiving host

 (4계층으로부터 packet을 내려 받아야한다.)

  • On sending side encapsulates segments into datagrams

 2계층으로 세그먼트를 datagram으로 만들어서 내려줘야만 한다.(받을때는 반대)

  • Network layer protocols in every host, route
  • 4계층은 세그먼트 3계층은 datagram

Network Layer의 기능

  • Network layer functions

  (라우팅 알고리즘)

항상 프로토콜을 정의할 때는 2가지로 나뉘는데 Data plane과 Control plane으로 나눕니다.

Data plane

라우팅 알고리즘을 구성하는건 data packet과 관련이 없고 forwarding table을 미리 만들어 놔야 한다.

즉 실제 데이터가 직접 관여되는 동작을 Data plane이라고 부른다.

  • Local, per-router function

 하나의 라우터는 포워딩 태이블을 참조하여 어떤 태이블로 갈 지 결정한다.

  • Determines how datagram arriving on router input port is forwarded to router output port
  • Forwarding function

Control plane

전체적인 동작을 위해서 제어정보들만 주고 받는 것을 말한다.

데이터와 상관없음

  • Network-wide logic

 전체적인 라우터를 보고 구조를 살핀다.

예시 : 라우팅 알고리즘

  • Determines how datagram is routed among routers along end-end path from source host to destination host

라우터 전용 장비가 있어서 하드웨어로 구현됩니다. → 다만 최근에는 소프트웨어로도 많이 구현됩니다.

그게 바로 NFV와 SDN입니다.

Software-defined networking (SDN): implemented in (remote) servers

여기서 control plane은 두가지 방법으로 구현 할 수 있다.

그것이 Per-router Control Plane(물리적 구현) 과 Logically Centralized Control Plane (논리적 구현 remote controller 사용)이다.

The Internet Network Layer

ping을 사용해서 응답을 막아 놓은 경우가 많지만, 라우터를 통해서 얼마나 빠르냐를 볼 수 있고 ICMP 프로토콜을 따르고 있습니다.

IP Datagram Format

  • ver: IP 버전 (v4 v6 등등)
  • 항상 header 와 data와 track으로 구성되어 있는데
  • header size가 가변이기 때문에 헤더의 크기를 명시해줘야만 합니다.
  • data의 크기도 가변이라서 data의 크기도 알려줘야합니다.
  • 너무 긴 패킷 같은 경우 잘라줘야만 합니다.
  • 16-bit-identifier : 잘라주면 번호를 붙혀줘야 하는데 그것이 16-bit-identifier입니다.
  • 이렇게 자르고 합치는 것을 reassembly라고 부릅니다.
  • 그 다음으로 source 주소, dest 주소가 나옵니다.(2계층과 달리 source가 먼저 나옴)
  • data가 payload에 해당합니다.

IP Fragmentation, Reassembly

  • Network links 는 MTU(max.transfer size)를 가집니다.
  • 따라서 wifi냐 이더넷이냐에 따라서 MTU의 값이 달라질 수 있다.
  • 잘린 것을 다시 합쳐주는 것을 우리는 Reassembly라고 부릅니다.

IP Addressing

  • IP address : v4는 기본적으로 32 bit이다.
  • Interface: connection between host/router and physical link
  • 라우터는 여러개의 link layer 의 port 즉 여러개의 interface를 가지고 있다.

 Router’s typically have multiple interfaces

  • 쉽게 말해서 여러 갈래 길로 보내는 것을 말하고 각 길들을 interface라고 부릅니다.
  • 각 스위치 port 에는 별도의 ip 주소가 할당되어있습니다.

이 그림에서 파란색으로 묶어놓은 것이 직접 통신이 가능한 부분이고 이것들을 서브넷이라고 부릅니다.

  • 흔히 이더넷이나 wife로 연결이 됩니다. (이건 추후에 다시 배우도록 합니다.)

Subnets

  • IP 주소를 나누는 것
  • 서브넷이란
  • 이 서브넷의 주소 3개를 사용하면 Class C, 서브넷 주소 2개 Class B, 서브넷 주소 1개는 Class A 입니다.

CIDR(Classless InterDomain Routing)

  • 단 이렇게 클래스로 표현하게 되면 비효율적이기 때문에 자유롭게 서브넷을 할 수 있도록 합니다.
  • 이 마스킹을 보면 23비트까지는 서브넷 주소로 하고 남은 부분을 호스트로 표현합니다.
  • 대부분 이 방식을 사용합니다.
  • 즉 /23 의 서브넷 마스크는 255.255.254.0 이런식으로 나옵니다.
  • IP 주소와 서브넷 마스크를 통해서 합니다.

IP 주소를 어떻게 얻을 수 있는가?

  1. Hard-coded by system admin in a file
  2. DHCP (Dynamic Host Configuration Protocol)를 사용해서 서버를 통해서 동적으로 IP 를 얻습니다.

 이건 영구적인 IP를 받는게 아니라, 동적으로 받는 것 입니다.

 임시로 IP로 얻습니다.

공유기에 이더넷, 와이파이, ARP, DHCP 모두 들어있다.

DHCP

  • Can renew its lease on address in use
  • Allows reuse of addresses (only hold address while connected/“on”)
  • Support for mobile users who want to join network (more shortly)

DHCP 작동

  1. Host broadcasts “DHCP discover” msg
  2. DHCP server responds with “DHCP offer” msg
  3. Host requests IP address: “DHCP request” msg
  4. DHCP server sends address: “DHCP ack” msg

만약 DHCP IP주소를 직접 입력 한 경우 1번과 2번 과정은 필요가 없습니다.

  • 새로운 유저가 들어오는 시나리오

NAT: Network Address Translation

이제 공유기 이야기를 해보겠습니다.

  • 기본적으로 DHCP서버도 ip주소가 부족하기 때문에 사용하는 것 입니다.
  • NAT는 집에서 인터넷에 가입한 경우 IP주소를 10개정도 DHCP를 통해서 배정해줍니다.
  • 그런데 실제로 사용하는 디바이스가 10개 보다 더 많이 사용하는 경우가 발생합니다.

구조를 public IP주소를 외부에서는 사용하고 내부에서는 private IP를 사용합니다.

이렇게 하면 밖으로 보낼 때 port 번호를 보내주는 방식으로 하나의 IP 주소로 사용할 수 있게 합니다. (TCP 4계층)

이것은 라우터에서 사용하는 방식이라고 보면 됩니다.

여기서 NAT를 보면 IP 주소랑 포트번호가 같이 있는데 태이블을 잘 보면 나갈 때 보낸 포트번호랑 실제로 나가는 포트번호랑 IP 주소까지 달라진 모습을 볼 수 있다.

IPv6: Motivation

결국 IP 주소가 부족하기 때문에 32bit ip주소를 128 bit ip 주소를 사용합니다.

즉 16바이트를 사용합니다.

Header changes to facilitate QoS

  • QoS는 멀티미디어를 더 효율적으로 할 수 있습니다.(단 최적화 형태는 아니고 ipv4와 비교해서 더 좋은 성능을 보이는 것 뿐이다.)
 
728x90
반응형