3계층 [네트워크 계층] part 1 포워딩과 라우팅

이름이름·2023년 8월 9일
0

컴퓨터 네트워크

목록 보기
9/11
post-thumbnail

포워딩과 라우팅

네트워크 계층의 근본적인 역할은 매우 단순합니다.
출발지 호스트에서 도착지 호스트로 패킷을 전달하는 것입니다.

이를 위한 네트워크 계층의 중요한 기능 두 가지를 정의하겠습니다.

포워딩

포워딩(전달) : 라우터에는 패킷을 받는 곳인 입력 포트와 패킷을 보내는 곳인 출력 포트가 있습니다. 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것을 말합니다.
위의 사진으로 보면 왼쪽에서 패킷을 받고 오른쪽에 1번,2번,3번 링크 중에 하나로 포워딩 한다고 보시면 됩니다.
근데 라우터가 뭘 어떻게 알고 패킷을 1번으로 보낼지, 2번으로 보낼지를 결정할까요?

정답은 '포워딩 테이블이라는 것을 보고 결정한다' 입니다.
포워딩 테이블 또는 라우팅 테이블이라고 불리는데
포워딩 테이블을 참고하여 포워딩을 해서 포워딩 테이블이라고 불리기도 하고
포워딩 테이블라우팅 알고리즘을 통해 만들어지기 때문에 라우팅 테이블이라고 불리기도 합니다.

그래서 포워딩 테이블이 뭐냐? 하면 아래와 같이 생겼습니다.

도착한 패킷의 헤더값을 보고 테이블을 참고해 그 테이블에 맞는 방향에 포워딩을 하는 것입니다.

라우팅

그럼 저희는 라우팅 을 이렇게 정의할 수 있겠습니다.
라우팅이란 라우팅 알고리즘을 이용하여 포워딩 테이블을 만드는 작업이다

라우터의 구조


1. 입력 포트
2. 스위치 구조 -> 입력 포트와 출력 포트를 연결한다.
3. 출력 포트
4. 라우팅 프로세서

1. 입력 포트 -> 스위치

입력 포트에서의 처리


패킷이 오면 목적지를 보고 포워딩을 해야합니다.
근데 32비트 IP주소일 경우 위와 같이 40억개의 경우의 수가 생깁니다..
그거에 맞춰서 하나하나 링크를 만들 수는 없겠죠?
그래서 어디부터 어디까지는 0번으로 가고 어디부터 어디까지는 1번으로 가게끔 했습니다

이렇게 공통되는 앞부분까지 보고 포워딩을 해준다고 합니다!

  • 근데 만약에 앞의 21자리까지 보니 2번으로 보내야 할 것 같고 24자리까지를 보니 3번으로 보내야할 것 같다면?
    -> 최장 프리픽스 매치 규칙이 적용되어서 더 긴 것에 맞는 쪽으로 갑니다!
    -> 따라서 24자리까지 맞았던 3번으로 포워딩하게 됩니다!

2. 스위칭

스위치 구조는 패킷이 입력 포트에서 출력 포트로 실제로 스위칭(포워딩)되는 구조를 통과하므로 라우터의 핵심입니다.


메모리 / 버스/ 상호연결 네트워크 등 여러가지 방법으로 스위칭을 수행할 수 있습니다.

3. 출력 포트

출력 포트에서의 처리

큐잉

입력 큐잉

HOL blocking


input buffer에서 queue의 앞에 있는 녀석이 자기 차례 기다리느라 뒤에있는 친구가 못감 -> delay 발생

  • 위의 사진을 보면 초록패킷은 출력 버퍼로 가는 놈이 아무도 없어서 자기 혼자만 바로 들어가버리면 되는데 초록패킷 앞에 있는 빨간패킷이 못가고 있어서 초록놈도 기다리고 있는 상황 = HOL blocking

출력 큐잉

큐의 공간이 충분하지 않을 때, 즉 메모리가 충분하지 않을 때 방금 온 패킷을 제거 하거나 이미 출력 큐에서 대기하고 있는 패킷을 제거해야하는데
패킷 스케줄러가 전송 대기중인 패킷 중 하나의 패킷을 선택하여 큐에서 제거한다

패킷 스케줄러

대기 패킷들을 처리하는 방법들

FIFO

우선순위 큐잉

라운드 로빈과 WFQ

참고

https://nenunena.tistory.com/52

profile
공부 정리

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

좋은 글 잘 보고 갑니다! 파이팅이에요 :)

답글 달기