공부기록

Network Layer 본문

CS/Network

Network Layer

코타쿠 2021. 5. 25. 16:34

Network Layer?

송신 호스트에서 수신 호스트로 세그먼트를 전송한다.

송신측에서는 세그멘트를 데이터그램으로 캡슐화한다.

수신측에서는 세그먼트를 transport 층으로 보낸다.

네트워크 층의 프로토콜들은 모든 호스트와 라우터에 있다.

라우터는 자신이 보내는 모든 IP 데이터그램안에 있는 헤더 필드를 검사한다.

네트워크 층의 주요 기능

Forwarding

패킷을 라우터의 입력에서 적절한 라우터의 출력으로 보낸다.

하나의 경로로 보내는 행위이다.

Routing

패킷의 출발지에서 목적지까지의 적절한 경로를 결정한다. 라우팅 알고리즘을 이용한다.

패킷의 경로를 계획하는 행위이다.

연결 성립 (VC)

데이터그램이 흐르기 전에, 말단의 호스트들과 그 사이의 라우터들은 Virtual Connection을 수립한다.

네트워크층의 연결은 두 호스트 간의 연결이다.

Virtual Circuit and Datagram Networks

datagram 네트워크는 네트워크층에서 비연결 서비스를 제공하고, VC 네트워크는 연결 서비스를 제공한다.

Virtual Circuits

데이터가 흐를 수 있기 전에 각 call마다 셋업과 분해가 이뤄진다.

각 패킷은 VC 식별자를 운반한다.

출발지에서 목적지 사이의 모든 라우터는 각각의 지나가는 연결을 위한 상태를 유지한다.

link, router의 자원들은 VC에 할당되어질 수 있다. (점유된 자원은 예측가능한 서비스를 의미한다.)

VC는 src 부터 dst까지의 경로, 각 경로의 번호를 의미하는 VC 번호, 경로에 있는 라우터들에 있는 포워딩 테이블의 항목들을 가지고 있다.

VC를 흐르는 패킷은 VC 번호를 운반한다.

VC 번호는 각 링크에서 바뀔 수 있다.

Datagram Network

네트워크 층에서 연결이 성립되지 않는다.

라우터들은 말단의 연결에 대한 어떤 상태도 가지지 않는다. 즉 연결 상태를 가지지 않는다.

패킷들은 목적지의 호스트 주소를 가지고 포워딩 된다. 이 때문에 같은 목적지를 가지는 패킷이라 해도 경로가 다를 수 있다.

VC vs Internet (Datagram)

Internet

데이터는 컴퓨터에 의해 교환된다. 탄력적인 서비스이며 엄격한 시간 요구조건을 가지지 않는다.

똑똑한 말단 시스템이다. 적응하고, 네트워크 제어와 오류 회복을 할 수 있다. 네트워크는 간단하고 말단에서 복잡성을 가지게 된다.

여러가지 연결 유형을 가지게 된다. 서로 다른 특징을 가지며 통일된 서비스를 제공하는 것이 어려울 수 있따.

VC

엄격하고 신뢰성 있는 요구조건을 가진다.

보장된 서비스를 제공하는데 필요하다.

말단 시스템이 멍청하다. 네트워크의 내부가 복잡하다.

Network Layer : data plane, control plane

Data Plane (데이터 영역)

라우터 단위의 기능이며 어떻게 라우터의 입력으로 들어온 패킷이 라우터의 출력으로 나갈지 결정한다. 포워딩 기능을 한다.

Control Plane (컨트롤 영역)

네트워크 단위의 개념이며 어떻게 데이터그램을 라우터들 사이의 경로로 라우팅할지 결정한다.

라우터에서 구현되는 traditional routing algorithm이 있고, 외부의 서버에 의해 구현되는 SDN 방식이 있다.

라우터 단위 컨트롤 영역에서 각 라우터에 있는 라우팅 알고리즘 요소들은 서로 상호작용하여 경로를 만든다.

Locally Centralized 컨트롤 영역에서 컨트롤러가 각 라우터의 Control Agent와 상호작용하여 경로를 만든다.

What's inside a router

라우터는 라우팅 알고리즘 / 프로토콜 (RIP, OSPF, BGP)을 실행하고, 들어온 데이터그램을 포워딩하는 두 가지 핵심적인 기능을 가진다.

라우터 내부에서 들어온 데이터그램을 올바른 output으로 포워딩하는 것을 switching 한다고 한다.

올바른 fabric으로 switching하는 것을 switching fabrics라고 하는데 memory, bus, crossbar을 이용한 방식이 있다.

들어온 데이터그램을 ouput별 큐에 넣어 buffering 한다. 버퍼에 있는 데이터그램들을 스케줄링 알고리즘을 통해 내보낸다.

IP : Internet Protocol

IP Fragmentation & Reassembly

네트워크 링크는 각기 다른 Max Transfer Size를 가지기에 하나의 데이터그램이 나눠져 전송되고, 나눠진 데이터그램들이 종착지에서 단 한번 합쳐질 수 있다. IP header bit가 관련된 파편들을 식별하고 정렬하기 위해 사용된다.

IPv4 addressing

IP 주소는 라우터 인터페이스와 호스트를 위한 32비트의 식별자이다.

인터페이스는 host와 router 사이의 연결과 물리적인 연결을 의미한다. 라우터는 보통 여러 개의 연결을 가지고 있다. 호스트는 보통 하나의 인터페이스를 가진다.

IP주소는 각 인터페이스와 연관된다.

Subnet

IP주소는 subnet 부분과 host 부분으로 나뉜다.

서브넷은 같은 서브넷 부분을 가지는 장비들의 인터페이스이다.

라우터를 거치지 않고도 서로 물리적으로 연결될 수 있다.

IP 주소를 얻는 법

하드코딩, 또는 DHCP에 의함

DHCP (Dynamic Host Configuration Protocol) 는 서버로 부터 동적으로 주소를 얻는 것을 말한다.

DHCP

DHCP는 호스트가 네트워크에 참여했을 때, 서버로부터 동적으로 IP 주소를 얻는 것을 목표로 한다.

호스트가 DHCP 발견 메세지를 방송한다.

DHCP서버가 DHCP 제공 메세지로 반응한다.

호스트가 DHCP request 메세지로 IP 주소를 요청한다.

DHCP 서버는 DHCP ack 메세지로 주소를 전송한다.

NAT : Network Address Translation

외부 주소를 서브넷의 내부주소로 바꾼다.

ICMP : Internet Control Message Protocol

호스트와 라우터가 네트워크 레벨의 정보를 주고 받기 위해 사용된다.

ICMP는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.

ICMP는 해당 호스트가 없거나, 해당 포트에 대기중에 서버 프로그램이 없는 등의 에러 상황이 발생할 경우 IP헤더에 기록되어 있는 출발지 호스트로 이러한 에러에 대한 상황을 보내주는 역할을 수행하게 된다.

IPv6

32비트의 주소는 곧 모두 할당되게 된다. 따라서 정보의 공간을 늘린다.

헤더 포멧이 빠른 프로세싱, 포워딩을 돕는다.

헤더가 QoS를 사용할 수 있도록 바뀐다.

40 바이트 길이의 헤더를 가진다.

파편화를 허용치 않는다.

Tunneling : IPv6의 데이터그램은 IPv4 데이터그램의 payload 부분에 담겨 IPv4 라우터들에 호환될 수 있다.

Routing Algorithm

라우팅 알고리즘은 최적의 경로를 결정한다.

Link State

Global하다. 모든 라우터들이 전체 경로와 연결 비용 정보를 알고있다. 이는 link state boradcast로 이루어지며 모든 노드들은 같은 정보를 가지고 있다.

Static하다. 경로는 시간에 따라 천천히 바뀐다.

다이직스트라 알고리즘을 쓴다.

Distance Vector

분산되어있다. 라우터들은 물리적으로 연결된 이웃과 이웃으로의 연결 비용을 알고있다. 한 노드로부터 다른 노드로의 최적의 경로 비용을 계산한다. 계산을 반복적으로 하고, 이웃과 정보를 교환한다.

동적이다. 경로는 링크 상태 알고리즘보다 더 자주 바뀌게 된다. 주기적으로 바뀌거나, 연결 비용의 변화에 의해 바뀌게 된다. 비동기적이다.

벨만 포드 알고리즘을 사용한다.

Hierarchical routing

실제 라우터들은 모여있다. 이 모여진 라우터들을 하나의 그룹으로 부르는 것을 autonomous system이라고 한다.

as에 대한 라우팅은 intra-as와 inter-as로 나눌 수 있다.

Intra-AS

같은 AS 안의 호스트들 사이의 라우팅

한 AS 안의 모든 라우터들은 같은 intra-domain 프로토콜을 사용해야한다.

다른 AS의 라우터들은 다른 AS와 다른 라우팅 프로토콜을 사용할 수 있다.

한 AS 내의 edge에 있는 라우터를 gateway router라고 하며, 다른 AS와의 연결을 가진다.

Inter-AS

AS 간의 라우팅을 한다.

gateway가 inter-domain 라우팅을 한다.

Routing in the Internet

Intra-AS

RIP (Routing Information Protocol)

distance vector 알고리즘을 사용한다. 15hop이 max-hop이다.

30초 마다 respone message를 통해서 정보를 교환한다.

OSPF (Open Shortest Path First)

link state 알고리즘을 사용한다.

라우터는 AS의 다른 모든 라우터들에게 advertisement를 뿌린다.

IGRP (Interior Gateway Routing Protocol)

Inter-AS

BGP (Border Gateway Protocol)

사실상 표준이다.

'CS > Network' 카테고리의 다른 글

Application Layer  (0) 2021.05.26
Link Layer  (0) 2021.05.26
Transport Layer  (0) 2021.05.25
Web and HTTP  (0) 2021.05.19
Protocol Layers  (0) 2021.05.19