Computer Science/Computer Network

컴퓨터 네트워킹: 하향식 접근(7판) ch.05 네트워크 계층: 제어 평면 요약

bassy 2022. 6. 13. 23:43

교재 스크린샷:

Chapter_5_V7.01.pdf
16.44MB

5.1 개요

네트워크 3계층의 핵심 역할: 패킷 전송

목적지로 가기위해선 포워딩과 라우팅이 필요

fowarding은 data plane에서, routing은 control plane 에서 

control plane에서 라우팅 테이블 생성 후 data plane에서 fowarding

라우팅 성능을 높이기 위해 라우팅 테이블 생성과 포워딩을 따로 하는 것

 

5.2 라우팅 알고리즘

라우팅 알고리즘의 목표: 가장 좋은 경로를 결정하는 것( 일반 적으로 "좋은" 경로란 최소 비용 경로)

 

#GRAPH

그래프 G = (Node와 Edge로 구분)

N= 라우터들(u,v,x,w,y,z)

E= 링크들(선)

c(x,x') : x에서 x'로 가는 비용(cost)

p(v): v의 앞전 노드(previous node)

N': 최소 비용 거리를 가진 노드들의 집합

# 라우팅 알고리즘을 나누는 기준

- 전체를 다 보고 하는지, 이웃만 보고 하는지: link state, distance vector

- 변하는지, 안변하는지: 정적, 동적

정적이라고 아예 변하지 않는건 아님. 천천히 변해도 정적이라 할 수도 있음.

 

#Link state

: 전체 그래프의 모양을 알고 시작함.

디엑스트라 알고리즘 사용

1. N'에 u를 넣는다. [N'={u}]

2. u에 붙어있는 링크들의 거리 값을 설정한다.

3. u에 붙어있지 않은 링크들은 일단 무한대로 초기화 한다.

루프(모든 노드가 N'에 들어갈 때 까지) 

4.

- N'에 있지 않은 것중 D(w)가 가장 작은 것을 찾고 N'에 넣는다.

- D(v)도 찾고 N'에 넣는다. D(v)가 더 작은지 D(w)+c(w,v)가 더 작은지 찾는다.

- D(x)도 같은 방식으로 N'에 넣는다.

 

5. D(y)가 가장 작은 루트를 찾는다.

x를 통해서 가는 루트, y를 통해서 가는 루트를 N'에 넣는다.

둘중 더 작은걸 찾는다.

 

6. y에 붙어있는 노드중 N'에 없는 것을 넣는다.

z까지의 거리 구하기.

 

시간 복잡도 O(n^2) :모든 노드를 전부 다 조사함.

 

# 생길 수 있는 문제

어떤 길로 들어갔는데 그 길이 과부하가 걸려 코스트가 많이 든다.

그러면 다시 새로운 길로 데이터가 우르르 옮겨감

그게 반복되면 문제가 생길 수도..

 

# distance vector

: 벨만포드 알고리즘 사용

 

 y,x,w까지 가는 비용 각각 구하기 => 각각에서 z까지 가는 거리 구해서 더하기

=> 가장 작은 거리 찾기.

 

노드가 자신의 이웃에게 길이 정보를 알려줌.

이웃의 정보를 기다리고

수정되면 다시 구하고

자신의 정보가 바뀌면 알려주기도 함.

 

# Link state 와 DV 비교

1. 시간 복잡도: 

- LS: 노드와 링크 갯수에 비례 O(nE)

- DV: 때에 따라 다름

2. 라우팅 테이블을 만드는 속도

- LS: 링크의 제곱에 비례

- DV: 상황에 따라 다른데 어떨 떄는 무한대에 가까울 수도

3. 라우팅에 문제가 있을때 견고한가?

- LS: 잘못되었다는 정보를 알려줄 수 있다.

- DV: 바로 옆에 정보만 알아서 문제가 생긴 사실을 잘 알지 못한다.

 

5. 3. 인터넷에서의 AS내부 라우팅: OSFP

라우터들이 이제 역할들이 많이 달라지고 규모가 커졌다 => 한 곳에서 관리해주는 나름의 전략이 필요하다.

하나의 조그마한 네트워크를 AS(autonomous system)으로 나눔(지역, 건물별로 나눔)

- intra-AS: AS 내부

- inter-AS: AS 외부

1c,3a,1b.. 게이트웨이

어디로 보낼지는 intra- AS 

AS 끼리 어디로 보낼지는 inter- AS

 

내부에서 돌아가는 알고리즘을 IGP라고 함

- RIP프로토콜

- OSPF 프로토콜

- IGRP 프로토콜

 

#OSFP

계층적인 구조 지원

다익스트라 알고리즘을 사용하는 링크 상태 알고리즘

3계층 IP바로 위에 있는 프로토콜(TCP,UDP와 비슷한 위치)

- 보안

- 여러개의 루트 지원

 

5.4 인터넷 서비스 제공업자(ISP)간의 라우팅: BGP

: Border Gateway protocol: 게이트웨이 라우터의 프로토콜

꼭 외부만을 위한 프로토콜은 아님

eBGP: 바깥과 정보를 주고받음

iBGP: 내부와 정보를 주고받음

BGP프로토콜은 자신이 여기 있다고 지속적으로 알려줌.

각 라우터들이 무엇을 거쳐가는지의 대한 정보를 알려줌

BGP는 4계층 프로토콜을 사용

OPEN: TCP 연결 시도

UPDATE: 새로준 정보로 정보 업데이트 요청

KEEPALIVE: 기다리라

NOTIFICATION

 

라우터 내부에선 OSFP, 외부에선 BGP를 사용해 어디로 보낼지 정하도록 설계가 되어있음.

 

BGP루트 선택 방법:
1. 우선적인 값을 선택 해놓음.

2. 가장 짧은 거리

3. 가장 가까운 NEXT-HOP ROUTER 에 보낸다. :  뜨거운 감자(hot poatato) 라우팅

: 손에 뜨거운 감자를 두면 얼른 내려놓듯이 일단 냅다 보내는 것.

4.

 

inter-AS: 나름의 정책이 필요하다. (ISP 회사끼리 협의..)

intra-AS: 일반적인 라우팅 프로토콜을 사용

Q. 왜 나누나요?

A .계층적인 구조를 가지게 함. 자율적으로 동작하게함

 

5.5. 소프트웨어 정의 네트워크(SDN) 제어 평면

이제는 따로따로 분리해서 관리하더라...

기존에는 경로를 여러개 설정하는게 불가했다..

어떤 데이터는 절로 어떤 데이터는 일로 보내고 이런거 잘 안되더라..

근데 소프트웨어 정의 네트워크 만든 뒤로는 괜찮더라..

SDN 컨트롤러 내부

컨트롤러는 ..

configure, modift-state, packet-out, feature 등의 명령을 스위치로 보냄

스위치에서는 packet-in, flow-removed, port status등의 명령을 컨트롤러로 올려보냄

 

3.6 ICMP

호스트와 라우터가 서로 간에 네트워크 계층 정보를 주고받기 위해 사용되는 프로토콜

IP위에서 작동한다.

tracetoure(tracert)가 ICMP를 사용함.

어떤 길을 타고 얼마나 걸렸는지 볼 수 있음. 

 

5.7. 네트워크 관리와 SNMP

관리 서버와 그 관리 서버를 대표하여 실행되고 있는 에이전트 사이에서 네트워크 관리 제어 및 정보 메세지를 전달하기 위 해 사용 

명령어를 주고받는다..