컴퓨터 네트워킹: 하향식 접근(7판) ch.05 네트워크 계층: 제어 평면 요약
교재 스크린샷:
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) 제어 평면
이제는 따로따로 분리해서 관리하더라...
기존에는 경로를 여러개 설정하는게 불가했다..
어떤 데이터는 절로 어떤 데이터는 일로 보내고 이런거 잘 안되더라..
근데 소프트웨어 정의 네트워크 만든 뒤로는 괜찮더라..
컨트롤러는 ..
configure, modift-state, packet-out, feature 등의 명령을 스위치로 보냄
스위치에서는 packet-in, flow-removed, port status등의 명령을 컨트롤러로 올려보냄
3.6 ICMP
호스트와 라우터가 서로 간에 네트워크 계층 정보를 주고받기 위해 사용되는 프로토콜
IP위에서 작동한다.
tracetoure(tracert)가 ICMP를 사용함.
어떤 길을 타고 얼마나 걸렸는지 볼 수 있음.
5.7. 네트워크 관리와 SNMP
관리 서버와 그 관리 서버를 대표하여 실행되고 있는 에이전트 사이에서 네트워크 관리 제어 및 정보 메세지를 전달하기 위 해 사용
명령어를 주고받는다..