Search

Network

Data Plane
각 라우터 내부에서 포트 선택을 해서 전송하는 방식
개별 패킷에 대해서 적용되고, 포워딩이다
Control Plane
네트워크 전체를 고려하는 것이고, 경로를 결정하고 테이블을 생성하는 것임

Inside Router

input → switch → output으로 이동을 함
어떤 데이터가 들어오고 어디로 나가려고 하냐에 따라서 다양한 문제 발생
1.
HOL
input queue가 생겨버림. 이 때, 초록색은 갈 수 있음에도 불구하고 빨간색 때문에 못 간다.
2.
buffer overflow
그럼 어떻게 해야하나
scheduling을 해야함
queue에 대해서 FIFO, priority, round robin, weighted fair queueing 등이 있음

IP Datagram

각 링크는 MTU가 있음. max.transmission size (가능한 가장 큰 크기)
→ 넘으면 분할됨

IP

어떻게 얻냐?
Manual setting 하거나 DHCP
Dynamically get address from as server
DHCP
DHCP를 찾는다는 메시지를 broadcast
DHCP가 응답
IP Request하고 응답 줌
여러 가지 정보를 추가로 제공함
기본 게이트웨이: 거치는 첫 번째 라우터의 IP 주소
DNS 서버의 IP 주소랑 이름
서브넷 마스크

NAT

사설 IP랑 공인 IP를 매핑함
각기 다른 곳에서 온 곳은 같은 IP에 다른 포트로 매핑됨.
NAT는 포트를 보고 알아서 전달함.
16-bit 포트 넘버가 있음
약 6만개 정도 가능하다
라우터는 원래 3계층만 처리해야하는데 NAT는 포트번호까지 건드린다.
NAT Traversal 문제가 있을 수 있다.
NAT Traversal 문제
직접 연결하고 싶은데, 뭔지 모름
port fowarding
그리고 이 포트포워딩을 자동으로 하는게 UPnP
릴레이 서버가 중계해주는 식

Control Plane

Routing Algorithm

Global
모든 라우터가 네트워크 전체 토폴로지와 링크 비용을 알고 있음
전체 지도를 보고 최적 경로 계산
Link-State Algorithm (Dijkstra)
전체 노드에서, 링크에 대해서 가장 작은거 빼면서 거리 업데이트 해가는 방식임
Decentralized
직접 연결된 이웃만 알고 있음
이웃과 정보 교환하며 점진적으로 최적 경로 계산
Distance Vector Algorithm (Bellman-Ford 알고리즘)
자기 이웃에 대한 정보를 가지고 있고, 이웃 외에 다른 것들에 대한 정보도 가지고 있음
자신들의 이웃이 라우팅 거리 테이블이 바뀌었다고 말하면 그걸 기반으로 자기꺼를 업데이트하는 식임.
Static
라우팅 경로가 거의 변화가 없다
Dynamic
경로가 변할 수 있음
RIP, OSPF, BGP 등

Distance Vector Infinity Count

엄청 많이 왔다갔다 할 수 있음
기존에 알고 있던 정보가, 나에게 업데이트하라고 알려준 친구에게 의존하기 때문임.
poisoned reverse로 y가 z에게 의존하지 못하도록 함.

AS(Autonomous System)

Intra-AS
AS 안에서 라우팅을 어떻게 하냐
RIP, OSPF, IGRP 등이 있다.
link-state 알고리즘을 쓴다.
자신이 알고 있는 링크 상태 정보를 직접 전달함. 이 때 IP 패킷 위에 직접 전송됨
링크 상태 패킷을 배포하면 각 라우터에서 토폴로지 맵을 구성하는 것임
Inter-AS
AS 끼리 어떻게 하냐, BGP 같은 거
각 AS에 대해서 도달 가능한 목적지를 알아야함
이 정보를 자기 AS 안에 전파해야함.

BGP

eBGP
다른 AS로부터 서브넷의 도달 가능성 정보를 받아온다.
iBGP
자기 AS 내부 라우터들에게 도달 가능성 정보를 전달함.
라우팅 정책에 따라 좋은 경로를 선택하는 기능도 수행한다.
기본적으로 BGP에 참여하는 친구들은 TCP 위에 반영구적인 커넥션을 맺고 있다.
그리고 어떠 ㄴ경로를 통해 어떤 목적지에 도달할 수 있는지 광고해야함
BGP는 경로 벡터 기반 프로토콜
prefix + attributes = “route”
AS-PATH: 거쳐온 ASes
NEXT-HOP: 그 다음 AS 내부 라우터의 IP 주소
경로 선택 기준이 존재
Local Preference (로컬 우선순위)
정책 설정 값 (값이 클수록 우선순위 높음)
고객이 아닌 애들한테는 광고를 안 한다.
Shortest AS-PATH
거쳐가는 AS의 수가 가장 적은 경로 선택
Closest NEXT-HOP (Hot Potato Routing)
내부 네트워크 내에서 가장 가까운 출구 (gateway) 사용
멀지만 내부만 생각해서 가장 가까운 게이트웨이로 보내버린다.
기타 세부 기준들
예: router ID, MED 값 등

ICMP

hosts&routers에서 사용하는 것들임
네트워크 수준의 오류나 상태 정보를 주고받기 위해 사용하는 프로토콜
type, code에다가 IP 데이터그램의 첫 8바이트를 사용함.
IP 위에서 동작하는 프로토콜, 전송 계층 아닌 네트워크 계층
traceroute
TTL을 1씩 올려가면서 홉 추적
목적지 도달 시 열려있지 않은 포트 때문에 unreachable 반환, 이걸로 경로 추적 가능

SDN

각 라우터가 통신하는게 control plane인데 이걸 가상화한것이다.
그래서 중앙화가 가능하고, 관리가 쉽다. 프로그래밍이 가능하다.
Open Flow로 된다.