라우팅
- 패킷을 목적지까지 전달하는 빠른 경로를 찾아주는 작업
- A.B… F는 라우터를 나타내고 라우터를 연결하는 링크에 기록된 숫자는 이 링크를 지나가는데 소요되는 코스트를 의미

- 코스트란 패킷이 이 링크를 지나가는데 걸리는 시간을 의미
- C → F 가장 빨리 전달될 수 있는 경로는 C→ B →E → F
- 하지만 C 라우터에서 모든 경로에 대해서 알고 있는 것이 아니라 인접한 노드 중에서 최적을 찾음
- 이와 같이 라우팅이 이루어 지려면 라우터는 목적지를 찾아가기 위한 최적의 경로를 알고 있어야 하는데, 최적의 경로를 찾아내기 위해서 라우팅 알고리즘 사용
- 패킷이 도착할 때 마다 라우팅 알고리즘을 실행하는 것이 아니라, 어느 경로가 최적인지를 먼저 구해놔야 함
라우팅 알고리즘을 통해 얻은 정보를 정리해 둔 것 ⇒ 라우팅 테이블
라우팅 테이블
- 라우팅 테이블 확인 명령어

- 네트워크 대상 : 패킷의 최종 대상 ip 주소
- 네트워크 마스크 : 패킷의 대상 주소에 네트워크 마스크를 AND연산해서 어떤 네트워크 대상으로 갈지 결정
- 게이트웨이 : 인터페이스를 빠져나간 패킷이 가야할 곳, 자신의 랜카드 주소, 로컬 서브넷의 게이트웨이
- 인터페이스 : 패킷을 전달할 때 장치가 사용해야 하는 발신 네트워크 인터페이스
- 매트릭 : 최종 대상까지의 hop수를 의미
라우팅 테이블을 참고하여 패킷을 목적지와 가장 가까운 인접 노드(next hop)와 연결된 링크로 내보내는 것을 포워딩 이라고 함
포워딩
- 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것
- 라우팅 테이블에서 적절한 인접노드 정보를 찾지 못했으면 해당 패킷을 디폴트 라우터로 보냄
- 디폴트 라우터는 테이블 정보가 없을 경우(한 번도 가보지 못한 곳이라는 의미) 새로운 길을 찾아주는 곳으로 이해하면 됨
Data Plane(제어 평면)
- 실제 데이터를 forwarding하는 곳이다. local forwarding table을 포함한 부분을 말한다.
- input port에 들어온 datagram을 output port 어디로 forwarding 해야할 지 결정
- forwarding에 초점이 맞춰져 있음

Control Plane(제어 평면)
- 네트워크 리소스를 어떻게 end to end path에 할당할지를 결정하는 부분
- 출발지부터 도착지까지의 경로를 결정
- datagram이 router 사이에서 어떻게 routing 되어야 할지를 결정
- routing에 초점이 맞춰져 있음

- 이전에는 각 라우터에 라우팅 알고리즘이 들어가고 각 라우터를 제어
- 라우터간의 소통을 통해 forwading 진행

- SDN은 remote controller와 각 라우터의 Control Agent(CA)와의 소통을 통해 forwarding table을 구성하고 forwarding 진행
- 물리적으로 data plane과 control plane이 나뉘어져 있음
기존에는 각각의 라우터에서 control 역할과 data 전달 역할을 같이 했지만, SDN 방식은 각각의 라우터는 데이터만 전달할 뿐이고 controller를 통한 제어 역할은 logical-centralized routing controller가 수행
SDN(Software-Defined Networking)은 소프트웨어로 네트워크를 구성 및 관리하는 네트워크 기술,

- 각 라우터의 flow table을 계산하고, 라우터로 flow table을 배포 해준다.
위와 같은 SDN 방식은 제어부를 별도의 컴퓨팅 서버로 분리하고, 네트워크 장비는 전송만 담당하도록 만들어 줌

SDN의 장점
1. 비용 절감
- 제어부는 여러 네트워크 장비를 제어할 수 있기 때문에 관리가 간소화 되고 운영비용을 절감할 수 있음
2. 확장성 및 유연성
- SDN 또한 일종의 가상화 개념이기에, 하드웨어를 소프트웨어로 대체하기 때문에 물리적인 리소스에 제약받지 않음
'CS > 네트워크' 카테고리의 다른 글
Network Delay (0) | 2023.05.25 |
---|---|
터널링, VPN 터널링 (0) | 2023.03.26 |
TCP 흐름제어와 혼잡제어 (0) | 2023.02.21 |
ARQ Stop and Wait, Go Back N, SR (0) | 2022.12.31 |
3 Way-Handshake, 4 Way-Handshake (2) | 2022.12.19 |