코딩성장스토리

컴퓨터 네트워크 개념 정리(CH.4 Network Layer:Data Plane) 본문

CS

컴퓨터 네트워크 개념 정리(CH.4 Network Layer:Data Plane)

까르르꿍꿍 2022. 11. 26. 21:28

네트워크 계층

Network Layer: Data Plane

 

3계층은 네트워크 코어에도 다 들어있음

forwarding:input link → outputlink

routing: 패킷을 목적지에 갈 길 결정해주는 것

1. data plane

-local

-input link에서 받은 데이터그램을 어떤 output link 로 결정해줌

-알고리즘으로 받은 값 테이블로 저장후 데이터 이동

2.control plane

-네트워크 전반적

-라우터 사이에서 목적지까지 길을 정해줌

-라우터 각자 개개인 라우팅 알고리즘 공유함 (알고리즘으로 길 정함)

SDN control plane

알고리즘이 라우터에 없고 remote controller에서 알고리즘 값을 라우터에 내려줌

라우터 아키텍쳐

  1. 프로세서-control plane
  2. 스위칭 fabric -data plane하드웨어)
  3. router input port -data plane하드웨어)
  4. router output port-data plane하드웨어)

 

input port

  1. line terminal
  2. link layer protocol
  3. decentralized switching

-테이블을 찾아본다

  • 목적지(ip)보고 포워딩
  • 헤더에 다른 필드 참조 포워딩

 

switching fabrics

-input port를 어느 output port에 연결할지 결정

-속도가 중요하다 (input n개 r개의 q를 가지고 있으면 최소 nr 속도를 내야함)

첫번째 generetion 라우터 -병목현상, 더 느림

swithcing bus -버스가 주소지로 데려다 주는 느낌 but bus contention 대역폭에 속도 제한 , 각 포트 별 영향을 받음

swithcing via interconnection network - 회선 수를 늘림 서로 영향을 안받음,multiprocessor , multistage swith 로 데이터를 더 쪼개고 보냄으로 더 속도 빠름 (동시성 적용)

input port queing

- Head of the line (HOL) blocking - 갈 수 있는데 앞에 있는 애 때문에 못감

 

 

output port

  1. buffering - 혼잡이나 버퍼 공간 부족하면 데이터 손실
  2. scheduling discipline -네트워크 최우선 스케줄림 선택

-너무큰 버퍼는 딜레이가 증가할 수 있다

-어느정도 버퍼크기를 유지해야하나 : (RTT*c)/루트(n) ,

buffer management:

  1. drop: 버려도 어떤걸 버려야 효율적인가 1.tail drop 2.priority
  2. marking: 어느 패킷에 혼잡신호를 마킹하나

packet scheduling

FCFS - 먼저 온 녀석 먼저 보내기, 우선순위, round robin(일부일부 뺴서 기다리는거 방지-문제점 우선수순위를 정해서 먼저들어왔음에도 밀릴 수 있음), weighted fair queueing(가중치에 의거해서 골고루 보내기)

 

 

망 중립성(Network Neutrality)

누구나 공평하게 망 사용하자

IP address: 32bit host or router interface(host/router 와 물리적 link 사이의 연결)에 할당

subnets- router를 통과하지 않고 갈 수 있는 범위

서브넷

서브넷 마스크 -어디까지가 네트워크 범위인지 체크 and 연산후 subnet part host part 구분지음

라우터-라우터 사이도 subnet

ip addressing :CIDR (Classless InterDomain Routing) (클래스방식을 없앰)

a.b.c.d/x - a클래스 .b클래스 등 구분지음 그리고 x만큼 서브넷 부분

-그럼 클래스 방식이란? 원래 ip는 a.b.c.d 로 a클래스 b 클래스 구분지음 즉 host는 고정적으로 주어짐- ip 낭비 또는 부족

CIDR

DHCP(Dynamic Host Configuration Protocol) 자동으로 ip 를 받아옴

 

route aggregation - 서로 다른 subnet을 알려주기 위해 상위 Provider ISP router에게 메시지를 보내 줘야 함. 이를 활용해서 관리 하는 라우터 범위 변경가능

 

 

NAT

private IP address는 인터넷에 나가지 못 하는 non-routable address. 이를 routable한 Public IP address로 convert해주는 것을 NAT라고 한다.

10/8~ , 172.16/12~ , 192.168/16.~. 인건 다 사설 ip

이점: 호스트의 주소가 바뀌어도 사설 주소는 안 바뀌어도 됨 , 보안적으로도 오름

단점

  1. 라우터는 원래 3계층임 근데 NAT를 사용하려면 port까지 가야해서 4계층까지 가야함 즉 규약을 어길 수 밖에 없음
  2. NAT 뒤에 서버가 존재하면 클라이언트는 들어오기 힘듬

IPv6

주소 부족 문제 해결 하지만 갑자기 모든 것을 바꾸기 힘듬

checksum 없음

fragmentation/reassembly 없음

옵션 없음

 

IPv4 에서 IPv6로 어떻게 이동하나

tunneling - IPv6 datagram 위에 IPv4의 헤더를 붙인다

Generalized forwarding : 패킷을 핸들링 할 수 있는 간단한 룰 (match : 똑같은 애를 받아서 → action : 이런이런 행동을 한다.)

flow: 헤더 필드 값들을 정의하는 것 (link , network, transport-layer 필드)

OpenFlow

router switch firewall nat — match , action 이용해서 처리

Middleboxes :서로 통신하는 두 개의 최종 호스트 사이의 경로에 있는 네트워크 내 디바이스

  • 하드 웨서 솔루선 → 소프트웨어 쪽으로 이동