티스토리 뷰
4. Network Layer (App[5] – Transport[4] – Network[3] Layer)
Chapter goals :
- Understanding network layer service models
- Understanding Forwarding VS routing
- Understanding how a router works
- Understanding routing (path selection)
- Understanding broadcast, multicast vs unicast(1 : 1 = sender : receiver)
4.1 Introduction
- Virtual circuit은 connection orientation 개념=>TCP와 비슷, datagram은 UDP와 비슷
- Network Layer 개요
- Sending host와 receiving host 간에 segment를 transport하는 레이어다.
- Sending side에선 segments를 datagrams로 encapsulate한다.
- 라우터의 incoming으론 encapsulation, out going으론 decapsulation이 일어난다.
- 모든 IP datagrams안의
‘Router examines header fields’는 network layer를 통해 패싱된다.
ex) router examines : 1.1.1.1 (IPv4) IP를 검사하고 맞으면, 특정 port로 forwarding한다.
이 예시를 더 깊게 알아보자.
Two key network-layer functions
- Forwarding : 라우터를 통해 들어오는 패킷을 특정 output 포트로 보내는 작업
- Routing : 패킷의 시작지점부터 라우터들을 통해 목적지로 이동시키는 작업
Interplay between routing and forwarding
Connection Setup
- Network와 Transport Layer의 Connection기준 가장 중요한 차이
n Network는 두 호스트 간 연결, Transport는 두 프로세스 간 연결
Network service model
- guaranteed delivery = IP를 사용하기에 가능
4.2 Virtual circuit and datagram networks
Connection, Connection-less service
- network 레이어는 connection, connection-less 2개의 서비스를 제공한다.
- Connection-less는 datagram을 이용하며, udp-like 하다.
- Connection 은 virtual-circuit을 사용하며, tcp-like 하다.
- Transport 레이어와 차이
- 이전에도 말했듯, service의 대상이 다르다.
- Network layer는 network-core에서 구현된다. (TCP는 end-host)
Virtual circuits
- Virtual circuits의 메인구성
- Data를 flow에 담기 전, call setup -> teardown
- 각 패킷은 VC identifier을 갖는다. (도착지의 host 주소는 없음)
- 모든 라우터는 connection에 데이터를 넘기기 위해 ‘state’를 유지한다.
- 라우터는 VC의 ID Number 즉, link를 구성할 수 있어, 라우터와 라우터 간 여러 개의 VC를 관리할 수 있다.
VC implementation
VC forwarding table
Virtual circuits: signaling protocols
Datagram networks
- in-order 네트워크가 아니기에, 다양한 경로를 통해 datagrams이 전송되며, 이에 따라 속도가 일정하지 않을 수 있다.
Datagram forwarding table
=> A : 특정 링크 인터페이스를 찾기 위해 수 많은 address를 뒤적거려야 한다.
Longest prefix matching(Datagram forwarding table 탐색 알고리즘)
Datagram or VC network: why? (왜 두 개의 service로 나누는가?)
4.3 What’s inside a router
Router architecture overview
- 라우터의 두 기능
- Routing algorithms/protocol : RIP, OSRF, BGP
- RIP : 내 다음 이웃이 누구인지를 이용
- OSRF : 모든 노드간 연결 중 가장 빠른 경로 이용
- Forwarding datagrams from incoming to outgoing link
Input port functions
Switching fabrics
- Memory : 메모리의 입출력 속도에 영향을 크게 받는다.
- Bus : 하나의 패킷이 버스를 사용 중 이면, 나머지를 전달할 수 없다.
대신 Memory보다 빠름
- Crossbar : 쨩쨩맨 Generation 기법
Switching via memory
- Input port에서 output port로 스위칭하기 위해 메모리에 데이터를 복사해 옮기는 방법
- 하나의 데이터그램을 크로싱하는데, 메모리를 두 번 참조 => 메모리의 bandwidth가 제한사항이 된다.
Switching via bus
- Shared bus를 통해 datagram을 input port->output port로 크로싱하는 기법
- Bus contention : 스위칭 스피드가 shared bus의 bandwidth에 의존한다.
- 그러나 하나의 shared bus가 사용되면 다른 incoming datagram은 사용 완료까지 기다려야 한다는 단점이 있다.
Switching via interconnection network (Crossbar Design)
Output ports
Output port queuing
How much Buffering?
- RFC 3439 rule of thumb :
평균 버퍼링 delay는 ‘typical’ RTT(250msec) * C(link capacity)와 같다.
ex) C=10Gbps => 2.5Gbit Buffer
- 현재는 N개의 플로우를 활용해 아래와 같은 연산을 사용해 Buffer을 구한다.
Input port queueing
'대학생활 > 컴퓨터네트워크' 카테고리의 다른 글
컴퓨터 네트워크 정리 -13주차- <링크 레이어/5.1 - 5.3> (0) | 2020.12.09 |
---|---|
컴퓨터 네트워크 정리 -12주차- <네트워크 레이어/4.5 - 4.7 > (0) | 2020.12.09 |
컴퓨터 네트워크 정리 -11주차- <네트워크 레이어/4.4 ICMP- 4.5 Routing Algorithm> (0) | 2020.12.09 |
컴퓨터 네트워크 정리 -10주차- <네트워크 레이어/4.4 IP> (0) | 2020.12.09 |
Transport Layer 까지 핵심 수기 요약본 (0) | 2020.11.10 |