[네트워크] Ch 20

은개·2025년 5월 31일

[CS] 네트워크

목록 보기
3/8
post-thumbnail

20.0 Network layer (4계층)의 Protocols

IGMP

  • 그룹 생성/제거 프로토콜
  • 멀티 캐스팅 용도
  • Class D - 멀티 캐스트 그룹

ICMP

  • 인터넷 관리 용도 (제한적) 프로토콜
  • 핵공격에도 버티게 하기 위해서 중앙집권화가 안 되도록 네트워크가 설계되어 있기 때문에 라우터는 멍청함
  • End system에서 오류를 검출함

ARP

  • IP 주소로 MAC 주소 찾기

RARP

  • MAC 주소로 IP 주소 찾기

20.1 ARP

IP 주소 — MAC 주소 매핑

  • MAC 주소: Layer 2 주소 ex) 이더넷 주소
    • Ethernet: Layer 2의 대표 protocol
      • End system(호스트)과 스위치(또는 같은 LAN의 라우터) 간 물리적인 데이터 전송에 사용
  • Network 카드마다 고유 번호를 가짐 ⇒ 이더넷 주소
  • IP 주소와 매핑됨
  • packet을 받으면 누가 보냈는지 찾기 가능
  • 즉, IP 주소를 보내면 이더넷 주소를 주고 (ARP) 이더넷 주소를 주면 IP 주소를 주는 (RARP) protocol

ARP operation

  1. broad cast로 전송됨
  • 해당 IP가 아닌 시스템들은 이 broad cast를 무시
  1. 해당되는 IP가 자기 MAC 주소를 전달

    ⇒ 이 때는 unicast!

  • ARP를 Ethernet에 담아서 보냄

20.2 IP

IP datagram

  • Header: 가변적 크기 (20 ~ 60 byte)
  • Total length: Header 포함한 전체 크기
    • IP 패킷 최대 크기 ⇒ 2162^{16} = 64kb

Fragmentation

: Packet을 MTU이 최소인 크기만큼 쪼개서 Router에 전달하는 것

  • MTU (Maximum Transmission Unit) : Router로 패킷을 보낼 때 허용 가능한 최대 패킷 크기
  • Router 입장에서 Fragmentation은 부담
    • 쪼개기 하는 오버헤드 발생 (시간 ↑, 속도 ↓)
    • 안 일어나게 하는 것이 최선
  • 패킷을 너무 작게 보내면 효율 ↓
  • 쪼개지지 않는 선에서 최대크기가 best
  • 마지막 destination에서 reassembly가 일어남

IP Fragmentation and Reassembly

Fragmentation과 연관된 Header 필드

+-----------------------+--------+-----------------+
|    Identification     | Flags  | Fragment Offset |
+-----------------------+--------+-----------------+
|        16 bits        | 3 bits |     13 bits     |
+-----------------------+--------+-----------------+

# Flags Field
+-----------+
|   Flags   |
+-----------+
| R | D | M |
+-----------+
  -   -   -
  |   |   └→ MF (More Fragments)
  |   └→ DF (Don't Fragment)
  └→ Reserved (항상 0)
  • More Fragments flag가 1이면 계속 fragment, 0이면 fragment 끝
  • Don’t Fragments flag가 1이면 reassembly, 0이면 그냥 보냄
  • Identification field는 Fragmentation을 해도 그대로

Offset

: 원래 Data로부터 얼마나 떨어져있는지

  • 시작 패킷의 Offset은 0, 이후 패킷은 MTU 크기만큼 누적됨
  • Offset 필드는 13bit인데, Total Length 필드는 16bit → 추가적으로 3을 shift left 연산해서 맨 오른쪽에 3bit 000을 추가하여 16bit를 만듦 다시 Reaseembly 할 때는 232^3(= 8)만큼 나누어서 Offset을 구함

20.3 ICMP

  • ICMP : 항상 에러메세지를 출발 IP에 보내주는 프로토콜

등장 배경

  • 네트워크는 핵 공격에도 무너지지 않게 만들어졌기 때문에 라우터들은 패킷이 오면 라우팅 테이블을 보고 스위칭을 하는 게 전부임
  • IP 자체에는 Error reporting이나 Error correcting이 없음
  • 그래서 end system(Host)에서 트래픽을 관리
  • 즉, 인터넷의 제어를 위한 부분이 미약하기 때문에 이를 위해 만든 프로토콜이 ICMP

도착 IP가 잘못되어 라우터가 패킷을 전송할 수 없는 경우

  • 도착 IP가 잘못되면 해당 패킷을 버리기도 하고 다시 패킷을 생성해서 출발 IP에 보내주기도 함
  • but, 라우터의 정보가 유출되어 보안 위험 ↑
    • 즉, ICMP를 보내도 되고 안 보내도 됨 (라우터가 보낼지 말지 결정)

20.4 IPv6 (IPnextgeneration)

  • IPv4는 미국이 주도해서 만들었기 때문에 미국이 IPv6 전환을 주도해야 IPv6를 사용할 수 있음
  • 미국에게는 늦추는 것이 이득이라 전환이 이루어지지 않음
    • But 언제라도 IPv6로 전환은 가능 (이미 하드웨어 기술이 다 완성됨)

장점

  • 주소공간이 매우 큼, 128bit
    • IPv4는 32bit의 주소공간
    • 즉, IPv4의 2962^{96}
  • IP Header 포맷을 더 단순화 함
  • 자원 할당을 지원해줌 (Quality of Service를 제공)

    자원 할당을 지원?

    • 우선, 인터넷은 data를 옮기기 위해 만들어진 것임
    • 음성이나 비디오는 전화망을 통해 제공됨
    • 전화망은 Circuit Switching이기 때문에 리소스를 경로상에 예약을 먼저 해서 퀄리티가 보장됨
    • 인터넷 망으로는 음성이나 비디오 서비스의 퀄리티가 떨어짐 (Packet Switching이기 때문)

    즉, 자원 할당을 지원한다는 것은

    • Circuit Switching에서 Connection Oriented로 연결을 먼저 했던 것처럼, 라우터 자원을 할당할 수 있도록 하여 QoS를 지원하겠다는 것
      • Qos (Quality of Service): 끊김 없이 data 전송
    • 인터넷으로 음성, 전화, 비디오를 다 서비스 하겠다는 것
      • Qos를 위해 Flow라는 개념을 만들어 이 Flow 보장해줌
      → 전화, 음성, 비디오 등의 data를 끊김 없이 전송 가능
      
      → 전화망이 필요 없게 됨
      
  • 보안 강화

왜 IPv6로 전환이 되지 않고 있냐?

→ IPv4 시스템도 문제가 없기 때문 (기존 문제도 이미 해결 가능)

  • 주소 부족 문제 → private IP를 할당 받고 NAT를 통해 인터넷 접근 하여 해결 가능
  • Qos 보장 문제 → BackBone 네트워크의 대역폭을 늘리면 해결 가능
    • QoS 보장은 경부고속도로로 비유 가능
    • 차 막힘 = 퀄리티 보장 X
    • 이 차 막힘 문제는 다음 두 가지 방법 중 하나로 해결 가능
      1. 버스전용차로 = 자원이 한정적이면 일정 자원을 예약해서 걔만 쓸 수 있도록 함 (자원 할당 - IPv6)
      2. 도로를 넓힘 = WDM 장비로 하드웨어의 성능을 올려 QoS를 구축할 필요 없게 만듦 (현재 IPv4)
        • WDM은 물리 계층에서 대역폭을 충분히 분리해주기 때문에, 상위 계층에서 복잡한 QoS 제어가 필요 없어지는 효과를 줌
  • 라우터를 IPv6를 지원하는 라우터로 전부 교체해야 함

IPv6 address

  • 16진법 표기 (Hexadecimal colon notation) 사용
  • Abbreviated(축약) 가능

IPv6 datagram format

  • IPv4보다 간단해짐
  • Flow label이 생김

Flow Label

: 네트워크에서 일관된 QoS 처리나 빠른 패킷 분류를 위해, 같은 Flow의 패킷을 식별하는 데 쓰이는 20비트 필드

Flow

: 한 송신자와 수신자 사이에서, 동일한 처리 방식(QoS 등)이 적용되어야 하는 일련의 패킷들

  • 음성, 비디오, 데이터를 모두 서비스 할 수 있도록 디자인
  • 라우터들이 플로우 당 자원을 예약할 수 있도록 해줌
    • 리소스가 할당이 되니까 QoS 보장

문제

IPv4 → IPv6로 전환하는 방법 3가지

1. Dual Stack

  • 라우터가 IPv4와 IPv6 둘 다 지원할 때
  • header에서 version 필드를 보고 IPv4인지 IPv6인지 확인
  • 같은 버전끼리 데이터 송수신 가능
  • 문제점
    • IPv4와 IPv6끼리는 데이터를 주고 받을 수 없음

2. Tunneling

: IPv4만 지원하는 라우터에서 IPv6 패킷을 전송하기 위한 개념

  • IPv4 라우터가 IPv6 패킷을 전송할 때 IPv6도 지원하는 라우터를 소스 라우터와 목적지 목적지 라우터로 설정하고, IPv4 헤더를 붙여서 패킷을 전송
  • IPv6를 지원하는 라우터는 이 IPv4 헤더를 제거하고 Host에게 전달

3. Header translation

  • IPv6 host와 IPv4 host끼리 통신하는 유일한 방법
  • 하지만 매우 제한된 경우에만 사용 가능 (파일 데이터 전송) 왜? → 가장 큰 문제: Flow Label
    • Flow Label은 v4에는 없는 컨셉이기 때문에 v6 → v4로 갈 때는 Flow Label을 뭉개야 함
    • Flow Label은 QoS가 중요한 응용 (ex. 실시간 음성, 영상 스트리밍)에서 핵심적인 역할 → translation 시 Flow Label이 사라지면 QoS 정보 손실오디오/비디오 품질 저하, 연결 불안정 등 문제 발생

0개의 댓글