네트워크 계층과 라우팅
네트워크 계층
- OSI모델에서의 라우팅 등의 기능을 수행
라우터
- 네트워크 계층의 핵심 장비
- 둘 혹은 그 이상의 네트워크 간 데이터 전송을 위해 최적 경로를 설정해주는 인터넷 접속장비
- 네트워크를 통해 정보를 주고 받을 때 데이터에 포함된 수신측의 주소를 읽고 가장 적절한 통신통로를 이용해 다른 통신망으로 전송하는 장치
- 전화국의 교환기와 비슷한 개념
- 다른 기종 간의 네트워크를 연결하는 기능 : 여러 가지 프로토콜에서 전송되는 패킷을 수신할 수 있어야함
- 수신된 패킷을 여러 경로 중 가장 효율적인 경로를 선택하여 전송
- 패킷(Packet) : 통신망에서 주고받는 데이터 단위, 데이터 뿐만 아니라 목적지 주소 까지 포함
- 라우팅 테이블 : 경로를 설정해주는 가장 기본적인 단위, 정보 주고받으면서 가장 최신의 정보를 유지. (RIP,OSPF 등이 대표적)
네트워크 계층의 주요 기능
- 경로 설정 : 라우팅 알고리즘
- 스위칭 : 라우터에 도착한 패킷을 적절한 포트로 보냄
- 연결 설정 : 경우에 따라 데이터 전송 전에 연결 설정 필요
네트워크 계층 관련 프로토콜
- IP프로토콜 : 네트워크 계층 핵심프로토콜
- TCP 프로토콜 : 트랜스포트 계층 핵심 프로토콜
라우팅 알고리즘
- 정적 알고리즘
- 라우팅을 결정할 때 현재의 트래픽과 토폴로지에 대한 측정과 변화를 기준으로 삼지않음
- 장점 : 단순성으로 적당한 부하를 가진 네트워크에서는 적절히 동작
- 단점 : 유연성의 결여로 트래픽 부하나 장애에 잘 대응할 수가 없다.
- 동적 알고리즘
- 토폴로지와 현재 트래픽에서의 변화를 라우팅 결정에 반영
- 많은 유연성을 제공하지만 효율적으로 구현하는 것은 어렵다
- 라우터들은 네트워크의 상황변화를 이웃라우터의 보고에 의해서 유지
- 이러한 보고는 네트워크 트래픽 증가 야기, 더 많은 네트워크의 상황변화를 일으킴
- 대부분의 컴퓨터 네트워크들은 동적 라우팅 알고리즘 사용
- 대표적인 동적 라우팅 알고리즘 : Distance Vector(거리벡터), Link State(링크상태)
Distance Vector(거리벡터) 라우팅 알고리즘
- Distance Vector 라우팅
- 모든 라우터는 네트워크의 라우터에 대한 엔트리를 갖는 거리벡터(전체 네트워크에 포함된 개별 라우터까지의 지연시간) 유지
- 모든 라우터는 자신과 직접 연결된 이웃(Neighbor) 라우터와 거리 벡터를 교환
- 라우팅 테이블은 이웃라우터(B,F,H)가 측정한 값, 지연시간은 G가 측정한 값
- G -> C까지 경로 B,F,H거치는 경우 중 가장 효율적인 경로 선택
- 최상의 경로는 지연시간 7의 H를 경유
Link State 라우팅 알고리즘
- autonomous systems (AS, 독립적인 네트워크 자율시스템) 내에서 많이 사용
* 학교 내의 망도 하나의 AS
- OSPF(Open Shortest Path First, 최단 경로 우선 프로토콜) 라우팅 프로토콜에서 사용
- Dijkstra algorithm을 사용 (single source 하나의 출발지에서 나머지 노드들까지의 최단거리를 찾아주는 알고리즘)
- 5step으로 동작
- 각 라우터는 이웃 라우터를 인지하고 그들의 네트워크 주소를 숙지
- 업(up)상태에 있는 네트워크 인터페이스 인지
- 이웃라우터에 대한 지연시간 또는 비용 측정
- HELLO 패킷을 주고받아 왕복지연시간 측정하여 2로 나눈 값 = 지연시간
- HELLO패킷 : 두 이웃 라우터 간 인접관계설정하고 유지하는 기능 수행
- Link State를 모든 라우터에게 알려주기 위한 링크-상태패킷(LSP)을 생성
- 이 LSP를 다른 라우터에게 분배
- 패킷 분배하는 방법으로 플러딩(Flooding)알고리즘 사용
- 플러딩알고리즘 : 어떤 노드에서 온 하나의 패킷을 라우터에 접속되어 있는 다른 모든 노드로 전달
- 각 라우터는 도착한 LSP가 새로운 것이면 방금 도착한 링크를 제외한 모든 링크로 이 LSP를 전송
- 다른 라우터로의 최단 경로 계산
- 각 라우터가 네트워크의 모든 LSP를 수집하였으면 모든 링크가 표현되는 완전한 네트워크 그래프를 만들 수 있음
- 각 라우터는 다른 라우터까지의 최단 경로를 알기위해 Dijkstra알고리즘 사용
예제) 모든 네트워크 노드까지 최단 경로를 계산하기 위해 Dijkstra알고리즘을 사용하여 계산하시오
풀이)
'CS > Network' 카테고리의 다른 글
5-3. 네트워크 계층과 라우팅 : 비클래스 주소방식 (0) | 2022.12.27 |
---|---|
5-2. 네트워크 계층과 라우팅 : 인터넷 주소 기법 (0) | 2022.12.23 |
4-3. 데이터링크 계층과 LAN : 토큰 버스(Token Bus) (0) | 2022.12.21 |
4-2. 데이터링크 계층과 LAN : 이더넷 (1) | 2022.12.21 |
4-1. 데이터링크 계층과 LAN (0) | 2022.12.16 |