데이터 망 CH4. Network Layer

Alpha, Orderly·2023년 3월 15일
0

데이터 망

목록 보기
4/8

Network Layer

  • 세그먼트를 송신 호스트 에서 수신 호스트 로 보낸다.
    • Sender : 세그먼트를 데이터그램으로 캡슐화(Encapsulation).
      Link layer로 보낸다.
    • Receiver : 세그먼트를 받아 Transport layer로 보낸다.
  • 네트워크 레이어는 모든 인터넷 장치에 존재한다 : host / router

주요 기능

1. Forwarding

  • 패킷을 Router input link에서 올바른 Router output link로 보낸다.

2. Routing

  • 패킷이 Source에서 Destination까지 가는 경유지를 정한다.
  • Routing algorithm 사용

분류

1. Data plane

  • 로컬 기능
  • 데이터그램이 Input port에 도착하고 Output port로 전달(Forward) 되는 방법을 정한다.

2. Control plane

  • 네트워크 기능
  • 데이터그램이 source에서 destination까지 가기 위해 라우터끼리 거치는 경로를 정한다.
  1. Traditional routing algorithm : 라우터에 내장
    • 모든 라우터에 내장되어 Control plane에서 상호작용한다.
  2. Software-defined networking < SDN > : 원격 서버에 내장
    • 원격 서버(Remote server)에서 테이블을 만들고, 이를 라우터에 설치한다.

Network service model

단일 패킷에 대한 서비스 예시

  • 전송 보장
  • 40ms 지연 내에 전송

패킷 흐름에 대한 서비스 예시

  • 데이터 그램의 순서 보장
  • 흐름을 위한 최소한의 대역폭 보장
  • 패킷간 거리 차이의 제한

인터넷 Best Effort Service 는 아래를 보장하지 못함

  • 목적지까지 성공적인 패킷 전송
  • 전송의 타이밍 혹은 순서
  • End-End 흐름의 사용 가능한 대역폭

Router architecture

High-level view

Input port

  • Line Termination : Physical Layer
    • 비트 단위송신
  • Link Layer Protocol : Link Layer
    • 이더넷
  • Lookup / Forwarding / Queueing
    • Decentralized Switching
      • 헤더값과 Input port memory의 Forwarding Table을 토대로 Output port를 찾는다.
      • Input port queueing : Forwarding 속도보다 Datagram이 들어오는 속도가 빠르면 저장해 놓는다.

Destination-Based Forwarding

IP 기반 포워딩의 라우팅 테이블

범위가 적혀있다

  • 입력 IP 주소의 목록과 출구 Link가 적혀있다.
  • Longest Prefix matching
    • 목적지 주소를 찾을때, 일치하는 Prefix가 가장 긴 Link interface를 사용한다.

    • 1 - 0번 Link interface로 이동한다.
    • 2 - 1번 Link interface로 이동한다.
    • Ternary content addressable memory 를 통해 작동
    • 세개 전부 match 되지 않을시 3번 Link interface로 연결된다.
TCAM < Ternary content addresable memories > 와 같은 기술을 통해 빠르게 찾아낼수 있다.

Switching Fabric

  • Input link에 들어온 패킷을 올바른 output link로 전송한다.
  • Switching rate : 패킷이 input에서 output으로 전송되는 속도

Switching Fabric 세가지 종류

  1. 메모리 스위칭 : 1세대 라우터
  • CPU의 직접 통제 하에 스위칭
  • 패킷이 Input에서 메모리로 복사된다, 이후 메모리에서 Output으로 복사된다.
  • 속도가 메모리 대역폭에 제한된다.

  1. 버스 스위칭
  • 데이터그램이 Input port memory에서 Output port memory로 공유버스를 통해 간다.
  • 버스 경합이 일어나 속도가 제한될수 있다.

  1. Interconnection network 스위칭
  • n * n 스위치가 여러 작은 스위치로 이루어진다.
  • fabric을 지나 출구에서 데이터그램이 재조립된다.
  • 병렬화를 통해 빠른 스위칭이 가능해진다.


병렬화

  • 보내고자 하는 데이터가 길면, 이를 잘라서 다른 통로를 통해 동일한곳으로 보낼수 있다.
    • 병렬화.

Input port Queueing

  • Switch fabric의 속도가 Input port보다 느릴때, Input queue에 대기열이 생긴다.
  • 버퍼 오버플로우로 인해 지연 혹은 손실이 생긴다.

HOL/Head-Of-The-Line Blocking

  • 먼저 온 데이터그램으로 인해 뒤에 온 데이터그램이 대기중인것.

Output port Queueing

  • 데이터그램이 Fabric에서 오는 속도보다 Link transmission 속도가 느릴 경우 버퍼링이 필요하다.

Buffer management

  • Drop Policy
    • 버퍼가 가득 찼을때 어떤 데이터그램을 버려야 하나
  • Scheduling discipline 이 대기중인 데이터그램중 전송할것을 고른다.

Buffer

Buffer Management

  • Drop : 버퍼가 가득 찼을때 어떤 패킷을 버릴지 결정한다.
    • Tail drop : 지금 들어오고 있는 패킷을 버린다.
    • Priority : 우선순위에 기반하여 결정한다.
  • Marking
    • 어떤 패킷을 혼잡 신호 마킹 할지
    • ECN / RED algorithm : E 플래그 설정해 송신에 보내고, C 플래그로 다시 보내주는것.

Packet Scheduling

  • 어떤 패킷을 링크로 보낼지 결정한다.

FCFS \cdot First come First serve

  • 먼저 도착한 패킷이 먼저 나간다.

Priority

  • 도착하는 트래픽이 분류되어, 종류에 따라 대기한다.
    • 모든 헤더/필드가 분류에 사용될수 있다.
  • 높은 우선순위 대기열에 있는 패킷을 먼저 보낸다.
    • 우선순위 클래스 내부에는 FCFS로 작동한다.
  • 몇몇 패킷은 전송되지 못하고 버퍼에 계속 남을 수도 있다.

Round robin

  • 트래픽이 분류되어 종류에 따라 대기
  • 서버가 이들 대기열에서 패킷을 하나씩 돌려가며 보낸다.

Weighted fair queueing

  • Round robin의 일반화된 방식
  • 각각의 분류가 가중치를 가지며, 이 가중치에 의거해 선택된다.
    • 가중치 : wiΣjwj\frac{w_i}{\Sigma_{j} w_j}
    • 전체 가중치의 합 중 자신의 가중치의 비율

  • Path selection algorithm : 라우팅 테이블 / 경로 설정
  • ICMP : 에러 리포트 / 라우터 신호

Internet

IP 데이터그램 포맷

  • ver : 인터넷 프로토콜의 버전
    • IPv4 / IPv6
  • header length : IP 패킷 헤더의 길이
  • type of service : IP 데이터그램의 서비스 형태
    • Low Delay : 설정 될 시 지연시간이 낮게 라우팅 됨
    • Throughput : 설정 될 시 최대한의 처리량을 갖도록 라우팅 됨
    • Reliability : 설정 될 시 신뢰성을 갖는 네트워크로 라우팅 됨
    • Low cost : 설정 될 시 최소한의 비용으로 라우팅 됨
  • length : 패킷의 전체 길이
  • 16-bit identifier : 분리된 패킷들이 한 패킷에 속해있으면 이 값이 같다.
  • flgs
    • 0번 비트 : Reserved
    • 1번 비트 : Don't fragment - 이 패킷은 단편화 되지 않음, 만약 패킷이 너무 크다면 바로 drop 됨.
    • 2번 비트 : More fragment - 이 패킷이 설정되어 있다는 것은, 자신이 단편화 된 패킷들의 마지막이 아니라는것.
  • fragment offset
    • 패킷이 몇번째 위치에 있는것인지를 나타낸다.
  • time to live
    • 패킷이 거칠수 있는 라우터의 갯수를 나타낸다.
    • 라우터를 거칠때마다 1씩 줄어들며, 0에 도달 할 시 패킷이 drop 된다.
  • upper layer
    • Transport layer에서 사용되는 프로토콜을 적는다.
  • header checksum
    • 헤더만의 체크섬
  • options
    • 라우팅 되는 경로를 적어둘수 있다.
    • Source routing
      • Strict source routing : 반드시 options에 적힌 순서대로 라우팅을 한다.
      • Loose source routing : options에 적힌 라우팅을 거치되, 중간에 다른 라우터를 거쳐도 된다.

Terminology

  • IP주소
    - Host/Router interface의 32비트 식별자
    - 네트워크를 구분하는 Network ID 와 Host ID 로 구분된다.
  • Interface
    • Host/Router간 연결과 Physical link
    • 라우터는 보통 여러 interface를 가지고 있다.
    • 호스트는 하나 혹은 두개의 인터페이스를 가진다.
  • 패킷 분리
    • IPv4는 보낼때 MTU가 적어 보내지 못할경우 나누어 보낸다.
      • 나뉘어진 패킷 마다 헤더가 붙는다.
      • 이후 조립이 필요하다.
      • 16-bit identifier : 각 조각이 동일한 데이터그램에 속하면 같은 일련번호를 공유한다.
      • fragment offset : 조각의 순서가 들어간다.
      • 이미 분리된 패킷의 경우 목적지에 도착할때까지 유지되어 목적지에서 새로 조립된다.

중간고사 시험범위

Subnet

  • 서브넷은 IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크를 뜻한다.
  • 라우터 사이를 지나지 않고 기기간 서로 물리적으로 연결될수 있는 Device interface
  • 일종의 섬과 같은 네트워크

Subnet mask

  • IP 주소 체계의 Network ID와 Host ID를 분리하는 역할을 한다.
  • /24 Subnet mask : 앞의 24비트가 IP주소의 Subnet 부분이다.
  • 255.255.255.0 과 같이도 작성 가능 < == .../24 >

Subnetting

  • IP 주소 낭비를 방지하기 위해 원본 네트워크를 여러개의 서브넷으로 분리하는 과정
  • 전부 0이나 1로 채워진 Host ID는 사용할수 없다는것만 명심하면 된다.

IP 주소의 구조

  • Subnet part : 동일한 서브넷에 위치한 기기들이 가지는 동일한 IP
  • Host part : 남은 우측 IP 부분

CIDR - Classesless Interdomain Routing

  • 주소의 Subnet 부분이 임의의 길이를 가진다.
  • 주소 포맷 : a.b.c.d/x, x는 주소에서 subnet이 차지하는 비트의 갯수를 의미한다.

Get IP Address

HOST IP 얻는법

  1. 설정 파일 내에 하드코딩되어있음
  2. DHCP 사용 < Dynamic Host Configuration Protocol >

DHCP

  • 네트워크에 접속시 IP주소를 Host가 동적으로 받아오기
  • 사용중인 주소의 갱신
  • 주소 재사용 가능케함, 호스트 사용시에만 할당 가능
  • 모바일 사용자 지원 / 자유로운 출입

Broadcast

  • 특정 네트워크에 있는 모든 호스트가 받는 패킷
  • Host ID가 다 1로 되어 있는 주소로 보낸다. < Broadcast IP/Address >
  • 무조건 누구나 받을수 있는 패킷

작동법

  1. Host가 DHCP discover 메시지를 Broadcast 한다.
    • DHCP 서버를 찾는다.
    • DHCP 서버가 하나만 있지 않을수 있다.
  2. DHCP 서버 가 DHCP offer 메시지를 Broadcast 한다.
    • Host가 사용 가능한 IP 주소를 알려준다.
    • yiaddrr : 사용 가능한 주소
    • lifetime : IP를 사용가능한 시간
      • 시간이 끝날시 재요청한다.
  3. Host가 DHCP request를 통해 IP주소를 요청한다.
    • Broadcast를 통해 DHCP서버에 그 주소를 쓰겠다고 알린다, 또한 Broadcast를 사용한다.
  4. DHCP 서버 가 DHCP Ack로 응답한다.


    DHCP는 subnet의 IP 주소를 할당하는것 외에 다른정보도 제공한다.
  • 직접 연결된 라우터의 주소 : Gateway, 외부망으로 나가기 위해 필요한 주소기도 하다.
  • DNS 서버의 이름과 IP주소
  • 네트워크 마스크
    • 네트워크 주소 부분의 비트를 1로 치환한 것, IP 주소와 넷마스크를 AND연산을 하면 네트워크 주소를 얻을수 있다.
    • 이를 통해 송수신시 같은 네트워크 내에서 일어나는것인지 확인해 직접 보내거나 라우터를 통해 전송할수 있다.

네트워크의 Subnet ip 얻는법

  • ISP의 주소공간에서 할당받음

계층적 할당 ( Hierarchical addressing ) / Route aggregation

  • 라우팅 할때, ISP와 하위 Organization에 네트워크 ID 부분이 점진적으로 커지는것을 이용
  • 인터넷에서 ISP 네트워크 ID를 요청하면, ISP에서는 Organization의 네트워크 ID를 요청하는 식으로 라우팅 됨.
  • 간략하고 직관적 라우팅이 가능하다.

ISP가 IP 할당 받는법

  • ICANN으로부터 IP 블록을 할당받는다.

NAT / Network Address Translation

  • 모든 로컬 네트워크 내의 장치가 외부에서 봤을때는 하나의 IP를 사용한다.
- 로컬 네트워크 상의 모든 장치들은 "사설/Private" IP 공간에서 로컬 네트워크에서만 사용가능한 IP주소를 부여받는다.
  • 장점
    • 모든 장치를 사용하는데 ISP로부터 부여받은 하나의 IP만 사용함
    • 바깥과는 상관없이 내부의 IP주소를 변경할수 있다.
    • 로컬 주소의 변경 없이 ISP를 바꿀수 있다.
    • 로컬 기기의 주소가 직접 보이지 않아 안전하다.

구현

전송

  • 보내는쪽 주소를 자신의 사설 IP + 임의의 포트로 해 보내면, 라우터가 이를 공인 IP + 임의의 포트로 보내주고 테이블에 작성

수신

  • 받을때 테이블을 확인해 보낼때 썼던 공인 IP + 포트 조합을 찾아 다시 호스트 IP + 포트 로 바꾸어 네트워크 상 호스트에 전송

즉, 임의의 포트가 2번 설정되며, 각각의 포트 및 주소의 매핑은 NAT Translation table에 저장된다.

NAT Table

  • 오고가는 주소와 포트의 기록이 담겨있다.

NAT은 논란이 많다

  • 라우터는 Network layer까지만 프로세스 해야함
  • IPv6을 사용해야함
  • 양 끝단 연결을 위배함
  • NAT 뒤의 서버에 접속하려면?
    • 포트포워딩을 이용해 특정 포트는 특정 호스트에게 바로 직결하도록 할수 있다.

IPv6

  • 고속화 및 서비스 품질에 많은 신경씀.

  • 32비트 IPv4 주소가 전부 할당될때를 대비해 사용한다.

  • ver : 버전

    • IPv4인지 IPv6인지 표기
  • pri : priority, 우선순위

    • 동시접속시 패킷 우선순위 규정, IPv4의 TOS와 유사
    • 민감한 실시간 응용 및 긴급하지 않은 데이터 패킷 간의 차별적 구분 가능
  • flow label

    • IP를 연결지향적 프로토콜로 사용할 수 있게 함, 실시간 서비스 등 같이 우선권을 주기위하여 특정 트래픽 Flow에 대한 라벨링
  • payload length

    • payload 길이
  • next header

    • 기본헤더 다음에 위치하는 확장 헤더의 종류를 표시
    • IPv6는 기본 고정 헤더 뒤에 선택적인 확장 헤더들이 뒤따라올 수 있음
    • 기본헤더 만 라우터에서 처리하고, 확장헤더는 종류에 따라 처리 방식이 다름
  • hop limit

    • IPv4일때의 TTL과 같은 역할
  • IPV4랑 비교하면

    • 체크섬 없음
    • 분할/재조립 없음
    • 옵션 없음

ICN

  • 통신을 원하는 개체가 통신 대상 호스트(host)의 주소에 기반한 통신이 아니라 정보 식별자를 기반으로 하는 통신 방법이다.

IPv4 <> IPv6 변환

  • Tunneling : IPv6의 데이터그램이 IPv4의 페이로드로서 IPv4 로도 전송된다.

Generalized forwarding

  • IP주소 뿐 아니라 헤더에 있는 다른 필드들을 가지고 어떤 액션을 할지 결정한다.

Flow table

  • 라우팅 테이블과 유사하나 추가적인 정보들을 가지고 판단한다.
  • match되는 조건과 그 조건에 맞을시 어떤 action을 취할지가 적혀있다.
  • match
    • 헤더의 필드를 보고 값이 패턴에 맞는지 확인한다.
  • action
    • match 조건 만족시 drop / forwarding / modify / 감싸서 특정 컨트롤러로 보낼지 결정한다.

      * 와일드카드
  • 패턴이 겹칠 경우를 대비, 우선순위가 지정되어 있어야 한다.
  • 어떤 조건에 만족해 어떤 액션을 취할때 마다 어떤 조건-액션이 있었는지, 만족한 바이트의 전체 양은 얼마였는지 저장하는
    카운터 또한 필요하다.

헤더 필드

  • 링크, 네트워크, 트랜스포트 레이어를 모두 포함한다.

오픈플로우 추상화

profile
만능 컴덕후 겸 번지 팬

0개의 댓글