본문 바로가기
Quality control (Univ. Study)/Computer Network

Network Layer

by 생각하는 이상훈 2023. 10. 27.
728x90

Network Layer

네트워크 계층은 세번째 계층으로 전송중인 호스트로부터 수신 호스트까지의 transport 세그먼트를 다룬다.

송신 측에서는 transport 세그먼트를 데이터그램으로 캡슐화한다. 수신 측에서는 transport 세그먼트를 전송 계층으로 전달한다. 모든 호스트와 라우터에는 네트워크 계층 프로토콜이 있다. 라우터는 그것을 통과하는 모든 IP 데이터그램의 헤더 필드를 검사한다.


Forwarding/Routing

네트워크 계층의 핵심적인 두 function은 forwarding과 routing이다.

라우팅(routing)은 컴퓨터 네트워크에서 데이터 패킷이 소스에서 목적지까지 통과해야 하는 경로를 결정하는 과정이다. 효과적이고 효율적으로 패킷을 목적지까지 전달하기 위해 routing 알고리즘을 이용한다. 위의 그림과 같이 목적지의 위치정보를 담고 있는 header value를 토대로 어느 위치로 보내는 것이 최적의 경로인지 파악 하는 것이다. routing algorithm을 통과하면 local forwarding table 즉 router 내부에서 어떤 output link로 보내줘야하는지 forward에게 방향을 제시해주는 것이다.

포워딩(forwarding)은 네트워크에서 특정 라우터의 입력 포트에서 수신된 패킷을 적절한 출력 포트로 전달하는 과정을 의미한다. 쉽게 말하면, 포워딩은 패킷이 올바른 방향으로 "이동"되도록 하는 것이다. 이때 forwarding을 하기 위해서는 routing이 결정해준 경로가 필요하다. forwarding 해줄 경로를 routing이 결정하기 때문이다.


Connection setup

미리 connection을 setup을 하고 data가 흘러가기전에 두개의 end system 사이에 정해진 경로대로 data를 보내는 방식도 존재한다. 물론 Internet과 같이 connection setup없이 그때 그때 algorithm을 통해 최적의 경로를 찾는것이 일반적이지만 ATM, frame relay, X.25와 같은 케이스는 connection setup을 통해 가상의 connection을 미리 세팅해두고 데이터그램이 흐른다.


Network Layer's service

Transport layer는 굉장히 다양한 service를 제공하며 reliable한 데이터를 제공하기 위한 다양한 기능을 하는 것을 알아 보았었다. 그렇다면 network layer는 어떤 service를 제공할까?

우선 individual한 각각의 datagram에 대해서는 무조건 deliver하도록 guaranteed delivery와 최대 delay시간을 제한하는 guaranteed delivery with less than XXmsec delay와 같은 service를 제공할 수 있다.

다음으로 datagram의 전체적인 측면에서는 datagram delivery를 순서대로 진행하도록하고 flow에서의 minimum bandwidth를 guarantee하고 inter-packet spacing 즉 패킷간의 간격을 일정하게 보장해주는 service를 제공할 수 있다.

Guarantee하는 정도에 따라 모델의 복잡도가 올라갈 것이므로 상황에 맞게 service model을 결정하여 이용한다. Internet의 경우 best effort 즉 할만큼만 한다는 거의 아무것도 guarantee하지 않는 모델을 이용한다. 이때 가격은 매우 저렴해진다. 이때 internet이라고 데이터를 막전송하면 문제가 많이 발생할텐데 이는 transport layer가 굉장히 잘 설계되어있기 때문에 모두 커버가 된다.


Virtual circuit/Datagram networks

Datagram 네트워크는 네트워크 계층에서 연결이 없는(connectionless) 서비스를 제공하는 반면 virtual-circuit 네트워크는 네트워크 계층에서 연결 기반(connection) 서비스를 제공한다는 차이가 있다.

VC network는 call setup하는 과정이 있음을 볼 수 있다. 반면에 아래의 Datagram network는 그러한 과정이 전혀 없다.

이때, 그때 그때 최적경로를 조사해야하는데 전세계의 모든 IP주소를 방문할 수는 없다. 다행히도 IP주소는 hierarchical하기 때문에 range에 따라 적절하게 조사할 address의 범위가 정해져있다.

위와 같이 범위에 따라 번호를 지정해주면 찾는 범위가 굉장히 좁아져서 IP주소를 찾기 쉬울 것이다. 다만 이 range가 제대로 나눠져있지 않을 수도 있다.

예를 들어 어떤 대학교의 모든 IP 주소는 165.35.으로 시작을 하는데 어떤 research center가 신설되었는데 이곳은 국가에서 지원을 받아 특별히 고속 네트워크를 165.25.으로 설정이 되었다면 문제가 발생할 것이다. 이럴때는 longest prefix matching방식을 이용한다.

어떤 range사이에 갑자기 다른 곳에 있는 IP가 들어오면 해당 range는 따로 빼서 range를 더 잘게 나눠서 어느 위치인지 지정을 해주는 것이다.


Router

Router는 routing과 forwarding의 핵심기능을 수행하는 기기이다. 아래 그림과 같이 routing은 software적으로 processor의 연산을 통해 진행되고 forwarding은 일단 port가 결정되면 router 내부에서 hardware적으로 아주 빠른속도로 전송해주는 기능임을 알 수 있다.

이를 자세히 살펴보면 아래와 같이 physical layer, data link layer, switching fabrics로 나눠져서 계층적으로 데이터가 처리되는 것을 알 수 있다.

이때 내부의 line speed와 network speed는 line speed가 압도적으로 빠르기 때문에 router의 output부분에서 지연이 발생할 수밖에없고 queuing이 필수적이다.


Switching fabrics

input buffer를 적절한 output buffer로 전송시키는 중앙 시스템을 의미한다.

다양한 방식의 시스템이 존재한다.

초기 형식인 메모리 방식의 switching은 packet이 시스템 메모리에 copy되고 그것을 다시 보내주는 방식이다. 이때 memory의 bandwidth 때문에 속도에 제한이 생긴다.

 

Bus 방식은 데이터그램이 공유 버스를 통해 입력포트 메모리에서 출력 포트 메모리로 전송된다. 이때 발생하는 문제가 있는데 버스는 용량이 정해있어서 너무 많은 데이터가 input으로 들어오면 각 input에서 먼저 데이터를 태워보내려는 bus contention이 발생한다. 따라서 버스의 대역폭에 의해 스위칭 속도가 제한된다.

Interconnection network는 버스의 대역폭 제한을 극복하기 위한 방식이다. 위에 나와있는 crossbar 방식이 자주 사용되고 이외에도 banyan network등과 같은 방식도 존재한다.


Output ports

Fabric의 속도가 transmission rate보다 훨씬 빠르기 때문에 datagram은 output port에 쌓을 수 밖에 없다. 이 때문에 buffer는 필수적이고 이에 추가적으로 scheduling discipline을 설정하여 효과적으로 output port에서 데이터그램을 내보내준다. 기본적으로는 FIFO(First In First Out)방식인데 scheduling discipline을 통해서 더 중요한 데이터를 먼저 보내는 priority first 방식을 이용하기도한다.

RFC 3439에서 정한 규칙에 따르면 권장되는 버퍼 크기는 RTT와 링크용량 C의 곱으로 계산된다. 예를 들어 RTT가 250msec이고 link가 10Gbps인 경우 버퍼의 크기는 2.5Gbits이상이 권장되는 것이다. 최근에는 동시에 활성화된 flow의 수 N까지 포함하여 아래와 같이 권장한다.


 

728x90

'Quality control (Univ. Study) > Computer Network' 카테고리의 다른 글

Internet Protocol(2)  (0) 2023.11.02
Internet Protocol(1)  (0) 2023.11.01
TCP  (0) 2023.10.12
Pipelined protocols  (1) 2023.10.10
Reliable data transfer design  (0) 2023.10.06