네트워크 레이어
전송 호스트로부터 수신 호스트로 세그먼트 전송
- 전송측에서 세그먼트를 데이터그램으로 캡슐화
- 수신측에서 세그먼트를 transport layher로 전달
모든 호스트, 라우터에 네트워크 계층 프로토콜 구현
라우터는 통과하는 모든 IP 데이터그램의 헤더 필드를 조사
핵심 네트워크 기능들
forwarding
라우터의 입력 링크에서 적절한 출력링크로 패킷을 이동시키는 것
routing
소스로부터 목적지까지의 패킷의 경로를 결정
출발지에서 목적지까지 어떻게 갈 것인지 경로를 결정하는 것이 라우팅이고 포워딩은 출발지에서 차를 타고 이동하다보면 중간중간에 교차로를 만날 때 여기서 어디로 갈지에 대한 포워딩의 과정입니다.
라우팅과 포워딩 사이 간섭
라우팅과 포워딩의 출력을 보고 어디로 보낼지 3개의 출력링크에서 목적지까지 전달하기 위한 결정 작업을 포워딩 작업이라고 하고 각각의 라우터는 포워딩 테이블을 가지고 있습니다.
포워딩 테이블은 헤더에 있는 필드 값에 따라서 출력 링크의 쌍으로 결정이 됩니다. 헤더에 있는 쌍을 보고서 전달을 합니다. 라우팅 알고리즘에 의해서 포워딩 테이블이 만들어지게 됩니다.
네트워크 계층 - data plane, control plane
Data plane
라우터마다 수행하는 기능으로 라우터의 입력 포트에서 라우터의 출력 포트로 데이터그램을 포워딩하는 것을 결정하는 것입니다. 라우터가 입력포트로 패킷이 도착했다면 패킷을 어느 출력포트로 보낼 것인지를 결정하는 것이 데이터 plane해서 해야하는 것입니다.
Control plane
네트워크 전체적으로 동작하는 로직입니다. 데이터그램이 출발지에서 도착지까지 라우터 방법을 결정하는 것이며 출발지에서 목적지까지 전달할지 결정하는 것으로 control plane은 두가지를 사용합니다.
- 전통적인 라우팅 알고리즘을 이용하는 형태
- software defined networking (SDN) 원격 서버에서 구현되는 방식
Control Plane 동작 과정
- 라우터의 역할
- 패킷이 목적지에 도달할 수 있도록 **포워딩 테이블(Forwarding Table)**에 기반하여 패킷을 적절한 출력 포트로 전송합니다.
- 이를 위해 각 라우터는 라우팅 알고리즘을 사용하여 네트워크 상태를 이해하고 경로를 계산합니다.
- 라우팅 알고리즘의 상호작용
- 네트워크에 있는 모든 라우터들은 독립적으로 라우팅 알고리즘을 실행합니다.
- 각 라우터의 라우팅 알고리즘은 다른 라우터들과 정보를 교환하며 상호작용합니다.
- 결과적으로, 라우터들은 네트워크 전반의 경로 정보를 수집하고 이를 바탕으로 포워딩 테이블을 생성하거나 갱신합니다.
- 포워딩 테이블 계산
- 라우팅 알고리즘의 목적은 각 목적지까지의 최적 경로를 계산하여 포워딩 테이블을 작성하는 것입니다.
- 포워딩 테이블은 입력된 패킷의 목적지 주소를 기반으로 해당 패킷이 전달될 출력 포트를 결정합니다.
- 패킷 포워딩
- 데이터 플레인(Data Plane)에서 목적지를 가진 패킷이 라우터에 도착하면, 라우터는 포워딩 테이블을 참조하여 적절한 출력 포트로 패킷을 전송합니다.
- 이 과정은 빠르게 이루어지며, 주어진 포워딩 규칙에 따라 효율적으로 처리됩니다.
SDN control plane
SDN의 Control Plane 역할
- SDN의 구성
- SDN은 네트워크 아키텍처를 다음과 같이 데이터 플레인(Data Plane)과 컨트롤 플레인(Control Plane)으로 분리합니다.
- Data Plane: 실제 패킷 포워딩을 담당 (네트워크 스위치/라우터 등).
- Control Plane: 네트워크 제어 논리를 구현하며, 경로 설정 및 정책 관리 등을 담당.
- SDN Controller (Remote Controller)
- SDN Controller는 중앙에서 네트워크 상태를 관리하고 제어하는 역할을 합니다.
- SDN Controller가 Control Plane의 중심이며, 네트워크의 모든 장치와 상호작용합니다.
전송측에서 수신측까지 패킷 전송 채널 서비스 모델
개별 데이터그램에 대한 서비스의 예
- 보장된 전달
- 제한 지연 이내의 보장된 전달
데이터그램 흐름에 대한 서비스의 예
- 순서화 데이터그램 전달
- 보장된 최소 대역폭
- 보장된 최대 jitter
Virtual Circuit
데이터그램 네트워크는 네트워크 계층에서 connectionless service를 제공합니다.
virtual circuit network는 connection service를 제공합니다. 이 connection service는 전송계층의 connection oriented service와 유사한 부분은 있지만 차이점도 있습니다.
서비스 관점에서
- 네트워크 계층 : host - to - host
- 트랜스포트 계층 : process to process
No choice : network provides one or the other
Implementation
- 트랜스포트 계층 연결형 서비스 : 종단시스템의 네트워크의 끝에서 구현
- 네트워크의 계층 연결 서비스 : 네트워크 코어의 라우터와 종단시스템에서 구현
souece-to-dest 경로는 전화 회선과 같이 동작
1. 가상 회선 설정 : 데이터 전송 이전의 호 설정. 패킷이 이동하는 일련의 링크와 라우터를 결정
- 각 패킷은 VC identifier 가짐
- source-dest 경로 상의 모든 라우터는 각 연결을 위한 state를 유지
- 링크, 라우터 지원이 vc에 할당됨
2. 데이터 전송
3. 가상 회선 해제
VC 구현
VC consists of
- Path from source to destination
- 경로 상의 각 링크마다 부여되는 변호인 VC numbers
- 경로 상에 있는 라우터의 포워딩 테이블에서 엔트리
VC에 속하는 패킷은 헤더 안에 VC number를 가짐
VC 넘버는 각 링크에서 변경되어야 함
\
Virtual circuits : signaling protocols
ATM, frame-drelay, X.25에서 사용됩니다.
Virtual circuits를 위해서
데이터그램 네트워크는 네트워크 계층에서 호(call) 설정이 없습니다. 데이터그램 네트워크는 라우터들이 종단간 연결에 대한 state를 유지하지 않습니다. connectionless 서비스에 해당합니다. 이것이 수업에서 다루는 Datagram network입니다.
데이터그램 네트워크는 패킷을 전달하기 위해서 패킷 헤더의 목적지 주소를 포함해서 패킷을 전달합니다. 동일한 source-dest 쌍 사이에 전달되는 패킷들이 다른 경로를 통해 전달될 수 있습니다.
이것이 각각 네트워크 상황에 따라서 패킷이 목적지에 전달되는 것이 달라질 수 있습니다.
Datagram Forwarding table
패킷의 헤더에 목적지 주소가 있고 기본적으로 IP 주소가 패킷 헤더에 포함이 됩니다. 라우터는 패킷을 받았으면 헤더에 목적지 IP주소를 보고 자신이 가지고 있는 포워딩 테이블에서 해당 IP 목적지에 일치하는 주소를 찾아서 거기에 해당하는 출력 링크로 전송을 하면 됩니다.
이것이 패킷의 목적지 주소를 이용해서 forwarding을 하게 됩니다. 이 IP 주소는 32비트의 IP주소를 사용합니다. 현재 사용하는 IP 프로토콜 버전이 현재 ipv4 프로토콜에서는 32비트를 사용하고 있습니다.
따라서 포워딩 테이블이 32비트 ip주소에 대한 정보를 유지하려고 하면 포워딩 테이블의 크기가 엄청나게 커져야 합니다. 40억개의 ip주소를 포함하는 테이블이 만들어져야 합니다. 그렇기에 각 라우터들이 저장해야하는 포워딩 테이블의 크기가 너무 커집니다.
따라서 이것을 줄이기 위한 방법을 찾아야 합니다.
SDN에서는 각각의 개별 IP 주소를 포워딩 테이블에 저장하는 대신 주소 범위를 포함함으로써 테이블의 크기를 줄일 수 있습니다. 패킷의 헤더에 포함된 목적지 IP 주소를 확인하고, 해당 주소가 포워딩 테이블의 어느 주소 범위에 속하는지 판단하여 적절한 출력 포트로 전송합니다. 이렇게 함으로써 포워딩 테이블의 효율성이 증가하고, 라우팅 및 패킷 포워딩 과정이 더 빠르게 처리될 수 있습니다. IP 주소를 범위로 관리하면 테이블 검색 및 매칭 과정에서 효율성이 높아지며, 대규모 네트워크 환경에서도 적은 리소스로 높은 성능을 유지할 수 있습니다.
포워딩 테이블
Longest prefix matching
수신된 패킷의 헤더에 목적지 주소가 주어졌으면 포워딩 테이블에 일치하는 prefix를 찾을 때 항상 가장 긴 패턴을 찾아서 포워딩을 하겠다는 것입니다.
빨간 네모의 하위 비트들은 어떤 값이 오는지 상관하지 않고 상위의 비트가 이 패턴을 가진다면 0번 인터페이스로 보내겠다는 것인비다.
이 prefix의 패턴을 이용해서 포워딩을 하는 방식입니다.
라우터
라우터의 2가지 핵심 기능
- 라우팅 알고리즘/프로토콜 수행
- 데이터그램을 입력 링크로부터 출력 링크로 교환 (switching)
라우터의 구조를 간략하게 도식화시키면 다음 그림과 같이 표현을 할 수 있습니다.
decentralized switching
- 중앙 라우팅 프로세스 호출 없이 각 입력 포트에서 결정
- 데이터그램 목적지가 주어지면, 입력 포트 메모리의 라우팅 테이블 사용 출력 포트 검색
- goal : line speed로 완전히 입력 포드 처리
- queuing: 스위치 구조로 전달 속도보다 더 빠르게 데이터그램이 전달하는 경우
Switching fabrics
입력 포트로 출력 포트로 전달할 때 입력 포트의 버퍼에서 출력 포트의 버퍼로 전달하는 과정입니다.
switching을 하기 위한 유형은 크게 3가지로 분류할 수 있습니다.
- memory
- bus
- corssbar
메모리 방식 switching
1세대 라우터에 사용되는 방식으로
- 패킷이 도착하면 입력 포트는 CPU에게 인터럽트를 보내어 메모리에 복사됨
- 속도는 메모리 대역폭에 의해 제한됨
버스 기반 switching
입력 포트 메모리로부터 데이터그램이 공유버스를 통해 출력 포트 메모리로 직접 전달됨
- 버스 경쟁 : 스위칭 속도는 버스 대역폭에 의해 제한됨
Interconnected방식 switching
- 버스 대역폭 제한을 극복
- 멀티프로세서 컴퓨터 구조에서 프로세서 연결을 위해 Banyan networks등의 interconnection networks 들이 개발됨
- Advanced design : 가변 길이 데이터그램을 고정 길이 셀로 단편화하고 셀에 태그를 붙여 스위칭한 후, 출력 포트에서 셀을 원래 데이터그램으로 재결합
출력포트는 데이터그램이 출력 버퍼에 저장되고 저장된 데이터그램을 링크 계층을 통해서 전송을 하면 됩니다. 출력 포트는 기본적으로 데이터그램이 전송 속도보다 더 빠르게 switching 구조로 도착하게 되면 버퍼에 저장이 됩니다.
따라서 출력 포트에서도 큐잉지원이 발생할 수 있고 출력포트의 버퍼에서 어떤 순서로 전달되는지는 Scheduling discipline이 전송을 위해 큐된 데이터그램들 중에서 선택됩니다.
Input Port Queuing
- 출력 포트가 결정되면 스위치 구조에 전달되지만, 임시적 블로킹 가능 -> 큐잉은 입력 큐에서 발생할 수 있음
- Head-of-the-Line(HOL) blocking : 큐의 앞쪽에 큐된 데이터그램은 큐에서 다른 데이터그램들이 전달되는 것 방해
- queueing delay와 loss는 입력 버퍼 오버플로우 때문
Output port Queueing
- 스위치를 통한 도착 속도가 출력 링크 속도를 초과하면 버퍼링 발생
- queueing and loss는 출력 포트 버퍼 오버플로우로 인해 발생
'IT 프로그래밍 > 컴퓨터네트워크' 카테고리의 다른 글
[컴퓨터네트워크] Control Plane (0) | 2024.12.05 |
---|---|
[컴퓨터네트워크] network address translation , IPV6 (0) | 2024.12.05 |
[컴퓨터네트워크] Congestion control (1) | 2024.12.04 |
[컴퓨터네트워크] Flow control (0) | 2024.12.03 |
[컴퓨터네트워크] TCP - (1) | 2024.12.03 |