▪︎ 4-1: 네트워크 계층 개요
학습 목표 : 네트워크 계층 서비스의 원리를 데이터 평면에 초점을 맞추어 이해한다
- 네트워크 계층 서비스 모델
- forarding과 routing
- 라우터의 동작 원리
- 일반적인 포워딩
▫︎ 네트워크 계층
네트워크 계층은 IP주소를 관리한다.
- 세그먼트에 출발지 IP 주소, 목적지 IP 주소가 들어있다.
- 송신측에서 segment를 datagram으로 캡슐화
- 수신측은 transport 계층에 segement를 전달
- 네트워크 계층은 모든, 호스트, 라우터에 존재한다
- IP 주소를 보고 어디로 fowaring 할지 정해야하기 떄문
- 라우터는 지나가는 모든 IP datagram의 헤더를 검사한다
▫︎ 두가지 주요 기능
- `포워딩(forwarding)`: 라우터의 입력으로 들어오는 패킷을 적절한 라우터로 보냄
- 비유 : 계획한 것에 따라 한 교차로를 지나는 과정
- `라우팅(routing)`: 패킷이 출발지에서 목적지까지 거칠 경로를 결정
- 비유 : 출발지에서 목적지까지의 여행을 계획하는 과정
▫︎ 데이터 영역, 제어 영역
`데이터 영역`
- fowarding 기능 - 보통 물리적
- 라우터의 입력 포트에 도착한 datagram이 출력 포트에 전달된 방법을 결정
`제어 영역`
- routing logic - 보통 SW적
- 출발 호스트에서 목적 호스트까지 라우터들에서 datagram이 어떤 경로 거칠지 결정
- 두 접근법
- 전통적 라우팅 알고리즘 : 라우터 내부에 구현
- 소프트웨어 정의 네트워크(SDN): 원격 서버에 구현
▫︎ 개별 라우터의 제어 영역
각각의 모든 라우터들에 위치한 라우팅 알고리즘 요소들이 제어 영역에서 상호작용함
- 각각의 라우터들은 `포워딩 테이블`이 있음
- 또한 `라우팅 알고리즘`을 탑재하고 있어, 라우터간 서로 제어 메시지를 주고 받으며 포워딩 테이블을 결정함
- 포워딩 테이블에는 IP 헤더(IP 주소)에 따라 어느 라우터로 갈지 결정되어 있음
▪︎ 4-2: 라우터의 내부
▫︎ 라우터 개요
두 개의 층으로 분리
- `라우팅 프로세서` : 라우팅 제어 영역으로 경로 결정, SW
- `스위칭` : 포워딩 담당, HW
역할
- 빠르게 적절한 라우터를 찾아주고, 빠르게 스위칭을 해주어서 전달해야함
- 라우팅 프로세서에서 라우팅 테이블을 만듦
▫︎ 입력 포트의 기능
해당 포트는 TCP/IP에서 사용하는 포트개념과는 아예 다름, 네트워크와 연결된 라인을 뜻함
구조는 차례대로 물리계층, 데이터 링크 계층, 네트워크(큐) 계층으로 구성됨
- 라인 종단을 통해 물리적 신호가 들어옴
- 링크 계층으로 이더넷, 와이파이 등로 전달 받음
- 빨간색 부분에서 헤더의 값(목적 주소)를 이용하여 출력 포트를 검색
- 목적지 기반 전송 : 목적지 IP 주소에 기반(전통적)
- 일반적인 전송 : 헤더 필드의 여러가지 값을 조합
▫︎ 목적지 기반 전송
다음과 같은 포워딩 테이블이 각 라우터마다 존재함.
최장 프리릭스 대응(longest prefix matching)
💡주어진 목적지 주소에 대해서 forwaind table을 검색할 때 가장 길게 매치된 주소를 사용한다.
▫︎ 스위치 구조
목적 : 입력 버퍼의 패킷을 적절한 출력 버퍼로 전달
종류 : memory, bus, crossbar, 하이퍼큐브, 다단계 스위칭 등
1. 메모리 통한 스위칭
- 메모리에 저장됐다가 내보내기 때문에 속도가 느림
- 초창기 이용
2. 버스를 통한 스위칭
- 동시 전달할 수 없는 것이 한계점
- 속도는 버스 대역폭에 의해 제약을 받음
3. Crossbar 스위칭
- 버스가 여러개인 개념, 버스 대역폭 제한을 그복
- 동시 전달이 가능
- 발전된 개념 : datagram을 고정 길이의 cell로 단편화하여 스위칭
▫︎ 큐잉
입력 포트 큐잉
스위치 구조가 입력 포트보다 느리면 → 입력 큐에 큐잉 발생, 손실 발생
- Head-of-the-line(HOL) 차단을 겪게됨
- 큐 앞쪽의 다른 데이터 그램때문에 뒤에 들어온 데이터그램이 전달되지 못함
출력 포트 큐잉
스위치로부터의 도착 속도가 출력 링크 속도를 넘으면 버퍼링(임시 저장소에 저장) 필요
- 출력 포트 버퍼가 넘치면 큐잉(지연)과 손실 발생
- 스케줄링 정책으로 무엇으로 먼저 처리할지, 어떤 패킷을 폐기할지 구분 필요
▫︎ 스케줄링 정책
FIFO 사용
폐기 정책
- tail drop : 새로 도착하는 패킷 버림, 꼬리 버리기
- priority : 우선순위 처리, 큐를 여러개 두어서 우선순위로 받음
- random : 무작위 버림. 은근 동작을 잘해서 많이 사용
▫︎ 우선순위 정책
- 큐를 여러 개 두어서, 우선순위 높은 큐부터 처리
- 한계 : 우선순위가 낮은 큐는 굶어 죽을 수 있음
- Round Robin : 번갈아가며 실행
- 공평하게 처리기회를 줌
- 한계 : 우선순위 큐를 두는 의미가 없음
- Weighted Fair Queuing(WFQ)
- 각 클래스마다 가중치를 두어서 높은 것을 더 많이 처리
- 빨간색은 3번, 녹색은 2번 등 처리개수를 다르게 처리
'CS' 카테고리의 다른 글
[네트워크] 네트워크 기초 용어 정리 (0) | 2025.02.27 |
---|