5 분 소요

Layer 3 : Network Layer.

  • L3, L4는 모든 기술을 흡수 할 수 있도록 안정적이다.
    • L1 은 1홉에서 1대 1
    • L2 도 mac에서 1대1로
    • L 3 는 다수에게. 전달하는 역할. 모든 노드에서 네트워크 레이어가 동작한다.
  • 1:1이 아닌 여러 구성들이 얽혀있는 네트워크 구조에서 제역할을 하는 layer
  • Network에서의 end-to-end로 packet 전달을 해주는 역할
    • 각 packet이 제 경로를 찾는 역할
  • Forwarding
    • input port로 들어오는 packet을 다른 outport로 전송하는 동작 (경로 상에서의 특정 부분 통과)
    • Data plane(어느 링크를 선택할 것인가), Router-local action
  • Routing
    • path를 파악하기 위한 제어 동작 (경로찾기)
    • Control plane(네트워크가 어떤 네터워크로 가야하는지에 대한 모든 것), network wide process

라우팅을 통해 포워드 테이블 만듦.



Router

  • Packet 생성 혹은 소비하는 일 없이 중간에서 packet 전달

L1, L2가 이더넷, 와이파이 처럼 둘이 다르다면 L3는 같기때문에 전달이 가능하다.

  • Forwarding table (혹은 routing table)
    • Router들이 각각 보유한 것으로, inport로 들어온 packet 에 대해 outport로 내보낼 규칙을 가짐
  • Router는 forwarding을 할 때, Packet의 header 내 정보를 보고, Forwarding table와의 대조를 통해 어느 경로로 packet을 내보낼 지 정함
  • 라우팅 알고리즘
    • 라우팅 프로토콜(라우팅 알고리즘을 모와서 프로토콜)을 통해 이루어짐.
    • 라우터들과 협업을 통해 구축(데이터 주고 받는 것처럼 자주 정보를 주고 받지 않음 약 30초정도)
    • 서브넷을 통해서 몇홉이 있느냐 파악하고 그 정보를 주고 받음. → 업데이트

Centralized(중앙 집중) vs distributed(분산)

  • 정적인 라우팅을 해줘야 할 때(기업)는 중앙 집중
  • 세계적인 라우팅은 분산



Router vs Hub

  • Hub : L1 (Layer 1 domain device)
    • L1입장에서 그대로 전달해준다. ex) usb hub
    • Multiport Repeater라고 불린다.
      • 엘리베이터에 리피터를 달아서(안테나 달아서) 통신을 바로 연결해준다.
  • Switch : L2
    • 같은 이더넷, 와이파이를 사용한다면 전달해준다. MAC address기반. (ip adrress L3 가 없어도 LAN안에서 연결 되어있는 기기간 통신이 가능하다.)
  • Router : L3
    • 서로 다른 네트워크 까지 연결 가능하다.
    • network-wide관점에서 path 결정



Network Service Model

네티워크의 선택 사항은 다음과 같다.

  • Guaranteed delivery(전달 보장) : packet이 상대방에게 전달
  • Guaranteed delivery with bounded delay : 상대방에게 전달될 뿐 아니라 특정 지연시간 기준 내에 반드시 전달
  • In-order packet delivery : packet이 순서대로 전달
  • Guaranteed minimal bandwidth : 최소한의 전송률 보장
  • Guaranteed maximum jitter(떨림) : packet의 inter-arrival이 일정하게 들어오는 수준 보장 (최대 inter-arrival time 제한)
  • Datagram networks
    • Connectionless service를 제공하는 L3
    • Datagram (=packet)을 기준으로 전달
    • L3 입장에서는 connection을 맺지 않고 각각을 따로따로 보낸다.( = 패킷은 여러 방면으로 간다.
      • 반대는 sercuit switch network


  • 우리에게 익숙한 internet이 IP를 layer 3 protocol로 사용
  • 거의 대부분의 통신 시스템/네트워크가 IP를 사용하므로, 오늘날 network 상에서 통신을 하려면 반드시 필요한 protocol임


  • Connectionless operation

    • 상대방 entity와 연결을 맺는 개념이 없고, 그때그때 도달하는 packet을 기준으로 동작
    • Flexible하면서도 동작 측면에서 overhead가 덜함

    L1, L2 가 다르지만 L3는 같기때문에 호환 가능.

    L2층을 살펴보면 LAN1 , MAC - WAN, LAPF


Routing protocol : forwarding table 형성

IP protocol : datagram 전달

ICMP protocol : 관리를 위한 부가적 절차

가 묶여서 L3에 속한다.


Datagram Format

32bits = 4bytes

데이터는 32bit가 아니라 밑으로 쭉 더 커질 수 도 있음.

32 bit 헤더 5개가 있으니깐(Options 제외) 헤더는 총 20bytes

Version number IPv4 or IPv6
Header length • option 부분을 포함한 header 길이 보통 20 bytes를 쓰긴함.
Type of Service (TOS) Network Service Model의 서비스 종류가 들어있음. ex)Guaranteed delivery, Guaranteed maximum jitter
Datagram length data를 포함한 길이 (데이터그램은 2^16 까지 표현 가능하다. = 65000 65kb)
16 - bit - Identifier 순서대로 데이터 전송을 위해 몇번째 패킷인지 정의
flag / fragmentation offset 잘라진 패킷이 있는지 / 데이터 자를 때 파편이 어디서 부터 시작하는지
Time-to-live(TTL) 데이터 전달시 몇 홉까지 전달할건지(L1, L2 는 1홉만 가능하지만, L3 는 다 가능) 하지만 너무 많은 홉은 불가능하기때문에
Protocol 상위 protocol의 종류
Header checksum 헤더의 패리티.
Source IP address 어디서 출발해서 어디까지 가느냐
Destination IP address 경로



IP address

  • ip protocol에서 사용하는 주소
  • Source IP address : 보내는 end-node의 주소
  • Destination IP address : 받는 end-node의 주소
  • Domain Name Server(DNS)에 의해 전환되는 주소



IPv4 Addressing

  • IP에서 사용하는 32bit (4 bytes) 주소
  • Dotted-decimal notation
    • x.y.z.w 형태이며, 각 숫자는 8bit, 0 ~ 255
  • LTE, 와이파이, 이더넷 다 ip address 가 다르다.
    • 2^32, 40억개가 존재.(너무 적다) → NAT 기술로 해결.
  • NAT 우리가 사용하는 기기의 ip는 사설망에서만 동작, 공인 IP가 아니다.



subnet

  • network 관점에서 그룹으로 묶이는 주변의 host 그룹 (L1, L2를 공유하는 그룹을 의미함)
    • 물리적으로 비슷한 위치에 있고 L1/L2 수준에서 같은 영역에 있음
  • IP 주소의 상위 부분을 공유한다. ex) 223.1.1 , 223.1.2,



Subnet : IP 주소 앞부분(prefix)로 지칭

  • 223.1.1.0/24 : 앞부분 24bit의 IP가 subnet 주소에 해당
    • Subnet에 속하는 host들의 IP 주소 앞부분은 subnet IP 주소와 동일
    • Subnet간 routing은 이 subnet prefix로만 판단될수 있음

문제

223.1.1.0/24 다. 이 서브넷이 없는 호스트는?

  1. 223.1.1
  2. 223.1.2

이때 24가 prefix이다. 빨간 부분을 의미한다. (서브넷이 공유하는 값)

223.1.1.0 을

11011111000000010000000000000

값이 23으로 바뀌면 2번이 정답이다.


kt를 이용하면 ip를 4개 준다했을때. 32비트중 30개를 주면 4개의 host를 줄 수 있다.

[ 30개 ]00 01 10 11 → 4개의 Host

이렇게 주면 효율적이다.

[ 29개 ]000 001 010 ….. 111 →8개의 Host

8개를 줄 수 있는 것같지만 브로드 캐스트 채널 111 (모든 host가 다 들어야함) 이다.



223.1.1.0/30

223.1.1.4 0100

223.1.1.3 0011

223.1.1.4/30

223.1.1.7 [정답]

223.1.1.8

prefix 로 서브넷 마스크 로 바꿀 수 있다.



  • Gateway : subnet에서의 대문 역할
    • subnet에 유입되는 packet을 가장 먼저 받아서 처리
    • subnet에서 생성된 packet이 최종적으로 나가는 관문
    • 보통IP끝자리가1 (굳이 지키지 않음)

ip주소와 기본 게이트 주소는 다르지만 같은 서브넷에 있다.


IP Assignment

  • 한 subnet 안에 포함될 수 있는 host 수
    • prefix를 제외한 나머지 IP 주소 bit가 표현 가능한 개수
  • Block of address에 대한 할당
    • ISP가 가진 IP를 기관이 할당받음 (isp는 prefix가 짧은 ip를 갖고 있어서 ip address를 나눠준다)

  • 각 host가 IP 주소를 받는 방식
    • 기관 담당자에게 직접 신청해서 수동으로 설정
    • Dynamic Host Configuration Protocol (DHCP)에 의해 자동으로 할당 받음



IP Datagram Fragmentation

L1-L2 방식에 따라 기본 전송 단위 bit수가 다를 수 있음

  • L2별로 서로 다른 Maximum Transmission Unit (MTU) 존재
  • IP datagram은 MTU보다 작아야 L2 전송이 가능해짐
  • 필요 시 Router는 IP datagram을 쪼갬
    • 여러개의 fragment로 나눔
  • Destination의 IP의 service 계층으로 올리기 전에 reassemble이 되어야 함 (protocol transparency)
    • Destination host측 IP layer는 fragment를 모두 수신해서 original datagram으로 복구해야 함
    • IP header의 Identification, flag, fragmentation offset field 이용



L3입장에서는 헤더가 20바이트(옵션제외) 가 있고, mtu가 1500바이트면 1480바이트가 들어갈 수있음.

전체 데이터가 4000바이트

3980byte의 데이터 + 20 byte의 헤더

Fragementation

3980 = 1480 + 1480 +1020

first datagram(packet) : flag 1, offset = 0,

2nd : flag(다음 데이터가 남아있는지) = 1, offset(다음 시작 번호에다가 8로 나누기) = 1480 / 8 = 185

16비트중 13-bit를 offset이 쓰는데 3비트가 남으니깐 8바이트로 나타내야함

3nd : flag = 0, offset = 2960/8 = 370

나머지 1020은 Datagram length에 적혀있음.



Internet Control Message Protocol (ICMP)

  • Layer 3 수준에서 message를 주고받게 하는 프로토콜, 데이터 전달 용도는 아님.
  • 실제 data를 전달하는 용도가 아닌, network 관리 측면에서 주로 활용됨
    • 주로 network layer 관점에서의 IP 연결성 상태를 확인해보기 위해 활용
    • e.g.) application이 network 문제로 인해 동작을 안하는 것처럼 보이는 경우
  • ICMP를 이용해서 IP 단에서 packet 송수신이 되는지 확인 가능
  • ICMP message : 일반 IP datagram 형태의 payload 부분에 담겨 있음
  • e.g.) Ping : echo
    • Type 8/0, code 0



IPv6

  • Address space exhaustion : IP 주소가 턱없이 모자름
    • 2 level addressing (network / host)은 비효율적임
    • 연결되지 않은 IP는 사용 못함
    • IP를 사용하고자 하는 host가 점점 많아짐
  • Requirements for new types of service
    • 다양한 service에 대한 Quality of Service (QoS) 지원 필요
    • e.g.) voice, video streaming
  • Expanded addressing capabilities
    • IP 주소가 32bit -> 128bit로 확장
  • 40bit 고정 크기의 header로 정의 : option mechanism 개선
  • Flow labeling and priority
    • Flow 별 quality of service 관리
  • Fragmentation : source/destination에서만 가능
  • Header checksum 없음

너무 커지다보니깐 iot에 적합하지않다?

많이 안쓰이는 이유는 호환성이 많이 떨어진다.(헤더가 다르기 때문에)

따라서 NAT로 해결한다.

댓글남기기