Computer Science/네트워크

[컴퓨터네트워크] 02. (1)Network Layer(네트워크 계층) - 네트워크 계층 서비스 / 성능, 패킷 스위칭

lumana 2024. 4. 7. 01:10

(1) Network Layer(네트워크 계층) - 네트워크 계층 서비스 / 성능, 패킷 스위칭


네트워크 계층 서비스

  • 패킷화(packetizing)
  • 포워딩(fowarding)과 라우팅(routing)
  • 흐름제어, 오류제어, 혼잡제어

패킷화(packetizing)

  • 출발지에서 유료부하(payload)를 네트워크 계층 패킷에 캡슐화
    • 캡슐화란 헤더와 푸터(Trailer, 트레일러)를 추가하는 것
    • TCP segment(TCP header + Application data) --> IP packet(IP header  + TCP segment)
    • 헤더(IP)는 바뀔 수 있음
    • 네트워크 특정 구간에서 MTU가 작으면, 데이터를 잘라서 보냄
      • Stream은 앞 뒤 데이터에 연관성이 있고, Datagram은 연관성이 없음(독립적인 패킷임)
    • IP packet을 캡슐화를 하는 경우, Ethernet header와 Ethernet footer가 추가됨
  • 목적지에서 네트워크 계층 패킷으로부터 유료부하를 역캡슐화(decapsulating)
  • 네트워크 계층은 출발지에서 목적지까지 Payload를 바꾸거나 이용하지 않고, 목적지까지 날라주는 임무를 수행함

라우팅과 포워딩

  • GPT / 라우팅 : 데이터 패킷이 최적의 경로를 통해 목적지까지 도달할 수 있도록 경로를 결정하는 과정입니다
  • 라우팅 테이블을 만들고 유지하는 세 가지 프로세스
    • 다양한 라우팅 프로세스
      • RIP, OSPF, BGP, IS-IS 등의 라우팅 프로토콜을 동작시키는 프로세스
    • GPT : 위 프로토콜을 실행하여 네트워크의 다른 라우터들과 정보를 교환함
    • 라우팅 테이블
      • 라우팅 프로세스의 입력을 받고, 포워딩 프로세스의 정보 요청에 응답하는 프로세스
      • GPT : 라우팅 프로세스의 결과는 라우팅 테이블에 저장됩니다.
      • GPT : 라우팅 테이블은 목적지 네트워크, 다음 홉 라우터, 해당 경로의 메트릭(비용) 등의 정보를 포함합니다
    • 패킷 전송 결정을 위해 테이블 정보 요청을 하는 프로세스
    • (1) 라우팅 프로세스를 통해서 (2) 라우팅 테이블이 유지되고, (3) 패킷 전송이 결정된다
  • 포워딩 결정 프로세스
    • Routing process --> Routing table --> longest prefix match를 찾아 fowarding process 진행 (packet flow)
  • 포워딩 프로세스
    • 포워딩 테이블에서 Forwarding value를 보고 Output interface를 결정
    • 들어온 packet을 내보내지 않는 것을 Blocking이라고 함

패킷 스위칭(Packet Switching)

  • GPT : 패킷 스위칭은 패킷을 개별적으로 독립된 단위로 취급하고, 각 패킷을 최적의 경로로 동적으로 전송하는 방식
  • 라우터는 입력 포트와 출력 포트(들) 간에 연결을 제공하는 스위치
    • 전시 스위치는 입력과 출력을 연결시켜 전기를 흐르게 함
  • 2가지 접근 방식
    • 데이터그램(datagram) 방식
      • Connectionless(비연결지향)
    • 가상회선(virtual-circuit) 방식
      • Connection-oriented(연결지향)
      • ex) 전화 : 전화 연결 후, 데이터 전송 후, 연결 종료되는 대표적인 연결지향 방식

데이터그램 방식

  • GPT : 데이터그램 방식은 네트워크 계층에서 사용되는 비연결형(Connectionless) 프로토콜을 기반으로 한 통신 방법
  • 네트워크 계층은 비연결형 프로토콜
  • 각각의 패킷은 서로 독립적으로 처리됨
    • 각각의 패킷은 다른 패킷과 관련이 없다
  • 따라서 하나의 메시지가 패킷으로 나누어 목적지로 전달될 때,각각의 패킷은 동일 경로, 혹은 다른 경로를 통해 전달 될 수 있다 (도착 순서도 다를 수 있음)

Connectionless Packet Switch Network

  • GPT : 데이터 전송 시 사전에 설정된 경로나 연결 없이 각각의 패킷을 독립적으로 전송하는 네트워크 아키텍처. 대표적으로 IP(인터넷 프로토콜)이 있음
  • GPT : 각 데이터 패킷이 네트워크를 통해 개별적으로 라우팅되며, 패킷마다 다른 경로를 통해 목적지에 도달할 수 있음.

비연결형 네트워크 방식의 라우터 Fowarding process

  • 패킷 (SA + DA + Data) 수신
  • DA를 보고 포워딩 결정
  • 결정된 인터페이스를 통해 다음 홉으로 전송

 

 

가상회선 방식

  • 연결지향 서비스(가상회선 방식)에서는, 하나의 메시지에 속하는 모든 패킷은 서로 연관이 있음
  • 메시지의 데이터그램을 보내기 전에, 데이터 그램 경로를 위한 가상 연결 경로를 설정해야 함
    • GPT : 이 경로는 데이터 전송 세션 동안 유지됩니다.
  • 연결 설정 이후, 데이터그램은 동일 경로로 전달
    • 데이터그램의 도착 순서도 유지됨
  • 이런 유형의 서비스에서는, 패킷은 SA/DA 뿐만 아니라, 패킷이 흐르는 가상 회선을 정의하는 가상 회선 식별자(VCI)인 흐름 레이블이 필요함

가상회선 방식에서 라우터의 Forwarding process

  • 라우터는 Label이 지정된 Packet을 수신하고, Forwarding table을 조회한다
    • 이 테이블은 Incoming label, Outgoing label, 출력 Port 등의 매핑 정보를 포함
      • label의 수가 적으면 access 속도가 빨라진다
  • 포워딩 테이블에서 적절한 매핑을 찾으면, 라우터는 패킷의 기존 입력 레이블을 새로운 출력 레이블로 교체한다
    • 이 과정에서 패킷의 레이블은 목적지 또는 다음 홉으로의 전송을 위해 업데이트됨
  • 레이블이 교체된 패킷은 결정된 출력 인터페이스를 통해 다음 라우터로 전송되고, 다음 라우터에서도 같은 과정이 반복된다
  • 가상회선이 많지 않으면 Label을 고정하기도 함
    • Label을 변경하면서 사용하면 가상회선의 개수가 증가함
  • 데이터의 전송 확인을 위해 확인 응답(acknowledgements)을 보냄

 

 

네트워크 계층 성능

  • 네트워크의 성능은 지연(delay), 수율(throughput), 그리고 패킷 손실(loss)로 측정
  • 혼잡제어(체증제어)는 성능을 개선하는 큰 이슈
  • jitter : 패킷 간의 지연 시간 차이가 얼마나 변동하는지를 의미

지연

  • 전송(Transmission) 지연 : 패킷을 보내는데 걸리는 시간
    • 패킷길이 / 전송속도
  • 전파(Propagation) 지연 : 신호가 목적지까지 가는 시간
    • 거리 / 전파속도(20만km/초)
  • 처리(Processing) 지연 : 라우터와 목적지에서 처리시간
  • 큐잉(Queuing) 지연 : 입력 또는 출력 큐에서 전송이나 처리를 기다리는 데 걸리는 시간

Throughput(수율)

  • 네트워크 한 지점에서 throughput은
    • 그 지점을 초당 통과하는 비트 수
    • 그 지점에서의 전송 속도보다 낮은 값임
      • 에러나는 경우 줄어듬
      • 여러 링크를 거치는 경우 최소 Bandwidth 값 이하로 됨

패킷 손실(packet loss)

  • Input 버퍼의 크기는 유한
  • 버퍼가 꽉 차면 이후의 패킷은 버려짐(overflow)
  • 버려지면 재전송을 해야 하는데, 이 경우 상황이 더 악화될 수 있다
    • TCP의 경우 End to End에서 Packet 수신이 안된 경우 재전송을 해야 함
      • End user간 신뢰성 있는 정보 전달

혼잡 제어(Congestion control)

  • 인터넷 모델에서 네트워크 계층에서의 혼잡(제어)은 명확히 정의되지 않음
  • 네트워크 계층 혼잡 이슈 : Throughput, Delay
  • 혼잡 제어 방식
    • Open-loop 혼잡 제어(사전 예방)
      • 송신자/수신자가 혼잡 제어
    • Closed-loop 혼잡 제어(발생 후 제거)
      • 상호 교신을 통한 제어

 

  • Load(부하)에 따른 Delay 그래프 해석
    • No-congestion area : 네트워크 부하가 낮을 때
      • GPT : Queing Delay는 거의 없거나 전혀 없고, 전파 지연과 처리 지연만 존재
    • Congestion area : 부하가 증가함에 따라 네트워크의 용량에 근접하거나 이를 초과할 때
      • 이때 지연은 급격하게 증가함
      • GPT : 네트워크가 포화 상태에 이르러 패킷이 처리되거나 전송되기 위해 큐에서 대기하는 시간(큐잉 지연)이 증가하기 때문

 

 

  • Load(부하)에 따른 Throughput 그래프 해석
    • No-congestion area : 네트워크 부하가 낮을 때
      • GPT : 부하가 낮을 때, 네트워크의 수율은 부하와 거의 선형적인 관계를 보임(load가 증가함에 따라 수율도 증가함)
    • Congestion area : 부하가 증가함에 따라 네트워크의 용량에 근접하거나 이를 초과할 때
      • GPT : 특정 지점(임계점)을 넘어서면, 수율이 더 이상 선형적으로 증가하지 않고 최대 용량에 도달한 후 감소하기 시작함
      • GPT : 처리할 수 있는 패킷의 수는 줄어들고, 대신 패킷은 큐에 머무르게 됩니다. 이로 인해 일부 패킷은 버려질 수도 있다

Open-loop 혼잡 제어

  • 송신자/수신자가 혼잡 제어
  • GPT : 혼잡이 발생하기 전에 미리 정책을 수립하고 적용하는 방법
  • 재전송 정책
    • 재전송은 혼잡을 더 심하게 만듬. 재전송 정책과 재전송 타이머를 효과적으로 조절해야 함
  • 윈도우 정책
    • Selective-repeat(버린 것만 다시 보냄)가 Go-Back-N(에러 이후 전부 재전송) 보다 효과적
  • 확인응답 정책
    • 확인응답을 데이터와 같이 보내거나, 하나로 여러 패킷 확인응답
  • 버림 정책
    • 혼잡 발생 초기에 패킷을 버리면 혼잡 발생 예방 가능
  • 수락 정책
    • 가상회선 방식에서 활성 회선 수를 제한

Closed-Loop 혼잡 제어

  • 상호 교신을 통한 제어
  • GPT : 혼잡이 발생한 후에 그 상황을 감지하고 대응하는 방법
  • 아래 Backpressure나 Choke packet의 경우 라우터에서 잘 사용하지 않음(connectionless)
  • Backpressure
    • 혼잡 발생 시 이전 노드들에게 보내지 말도록 요구
    • 데이터그램 네트워크에서는 안 됨(Connectionless)

  • Choke packet
    • 혼잡 발생 시 소스 노드에게 직접 보내지 말도록 요구
    • ICMP 같은 특수 패킷을 따로 만들어 보내는 방식

  • 암시적 시그널링
    • 확인 응답이 늦게오면 혼잡임을 암시적으로 감지하고 트래픽량을 줄임
    • TCP 혼잡제어 방식
  • 명시적 시그널링
    • 혼잡노드에서 소스나 목적지에게 직접 신호를 보내는 방식(명시적)
    • 패킷 내의 특정필드에 혼잡임을 표시하여 알리는 방식
  • TCP/IP의 경우 Best-Effort 방식(노력은 하지만, 결과는 보장하지 않음) 서비스임
    • 헤더가 깨졌는지, 목적지 주소가 존재하는지는 판단 및 처리는 하지만, 재전송 처리는 하지 않음