한동대학교/Computer Networking

[컴퓨터 네트워크] Chapter1. Computer Networks and the Internet (Part2) - (2)

pangil_kim 2025. 6. 25. 14:43
728x90

[4] Packet queueing delay (revisited)

1) 주요 변수

  • R : link bandwidth (bps) - 링크 대역폭
  • L : packet length (bits) - 패킷 길이
  • a : average packet arrival rate - 평균 패킷 도착률

2) 경우의 수

  1. La/R ~ 0 : avg. queueing delay small (평균 대기열 지연 시간이 작음)
  2. La/R -> 1 : avg.queueing delay large (평균 대기열 지연 시간이 큼)
  3. La/R > 1 : more "work" arriving is more than can be serviced (서비스할 수 있는 것보다 더 많은 작업이 도착함)
  • 무한 대기열의 경우 : 지연 시간이 무한대로 증가할 수 있다.
    • 대기열의 크기가 무한대이기 때문에 패킷이 손실될 염려가 없다.
    • 하지만 트래픽 강도가 1보다 크면 시스템이 패킷을 처리할 수 있는 속도보다 더 많은 패킷이 도착하게 되어 대기열이 무한이 길어질 수 있다.
  • 유한 대기열의 경우 : 대기열이 가득 차면 패킷 손실이 발생하게 된다.
    • 대기열의 크기가 제한되어 있어서 대기열이 가득 차게 되면 더 이상 새로운 패킷을 수용할 수 없게 된다.
    • 트래픽 강도가 1보다 클 경우 패킷의 도착률이 시스템의 처리 용량을 초과하게 되므로 대기열이 가득 차서 새로운 패킷들이 손실될 수 있다.

-> 따라서 트래픽 강도가 1보다 크지 않도록 시스템을 설계해야 한다.

[5] 'Real' Internet delays and routes

1) traceroute program

: 목적지에 대한 종단 인터넷 경로에 따라 source에서 router까지 지연 측정을 제공한다.

  • 목적지를 향하는 경로에서 라우터 i에 도달할 3개의 패킷을 전송한다. (i는 수명 필드 값)
    • 3개의 패킷을 전송하여 평균 지연 시간을 측정한다
  • 라우터는 보낸 사람에게 패킷을 반환한다.
  • 발신자는 전송과 응답 사이의 시간 간격을 측정한다.
  • 이렇게 반복하다가 마침내 마지막 router까지의 경로를 결정하게 된다.

2) 비유

  1. 첫 번째 집
  • 집에서 출발해 첫 번째 집에 갑니다. 이 집에서는 잠시 머물고 다시 돌아와야 합니다.
  • 이 집에서의 대기 시간을 측정합니다.
  1. 두 번째 집
  • 이번에는 첫 번째 집을 지나 두 번째 집에 갑니다. 두 번째 집에서는 다시 첫 번째 집으로 돌아가야 합니다.
  • 두 번째 집에서의 대기 시간도 측정합니다.
  1. 최종 목적지
  • 마지막으로 최종 목적지(친구의 집)에 갑니다. 이 집에서는 더 이상 돌아갈 필요 없이, 기다린 시간을 측정합니다.

3) 다른 사진으로 이해하기

4) traceroute 예시

  • 각 hop마다 3개의 delay 측정
  • 7, 8 Lines : trans-oceanic link (대륙을 넘어 해양을 가로지르는 데이터 통신 링크)
    • trans-oceanic link는 지구 반대편의 서버와 통신할 수 있도록 해준다.
  • 10, 11 Lines : delays decrease (패킷이 네트워크를 지나면서 지연 시간이 감소하는 현상)
    • 초기에는 지연 시간이 크고, 네트워크의 내부로 들어갈수록 지연 시간이 줄어들 수 있다.

[6] Packet loss

  • 버퍼의 이전 링크에 대한 유한된 용량이 있다.
    • 버퍼의 용량은 한정되어 있으며, 너무 많은 패킷이 도착하면 버퍼가 가득 차게 된다.
  • 전체 대기열에 도착하는 패킷이 삭제된다. (일명 손실된다고 한다.)
    • 버퍼가 가득 차면 새로운 패킷이 도착했을 때 기존 패킷이 삭제된다.
    • 일반적으로 queue는 FIFO 방식으로 작동하기에, 버퍼가 가득차게 되면 새로운 패킷이 들어올 공간을 만들기 위해 기존의 패킷을 삭제해야 한다.
  • 손실된 패킷은 이전 노드, 소스 엔드 시스템에 의해템재전송되거나 전혀 전송되지 않을 수 있다.

[7] Throughput (처리량)

: 발신자에서 수신자로 비트가 전송되는 속도(비트/시간 단위)

1) 종류

  • Instantaneous Throughput (즉시 처리량) : 특정 시점에서의 데이터 전송 속도
  • Average Throughput (평균 처리량) : 일정 기간 동안의 평균 데이터 전송 속도
    • 전체 시간 동안의 데이터 전송 속도를 평균하여 계산한 값
    • ex) 1시간 동안의 전체 데이터 전송량을 그 시간으로 나눈 값

2) bottleneck link

: 종단 처리량을 제한하는 종단 경로의 링크

  • 전송 속도 (Rs), 채널 용량(Rc)
  • 정답 : 링크들의 스루풋중 제일 '최소'인 것이 이 전체 시스템의 스루풋
  • 전체 시스템에서 최소 스루풋의 링크를 bottleneck link 라고 한다.

<경우1 : Rs < Rc 전송 속도가 채널 용량보다 작을 때>

: 서버가 배출한 비프틑 라우터를 통해 올바르게 흘러갈 것이다.

  • 작은 양이 작은 통로를 지나 큰 통로로 가면 결국 bits/sec에서 bits는 고정이기 때문에 Rs가 전체 스루풋이다.
  • ex) 전송 속도 Rs가 1Mbps이고, 채널 용량 Rc가 10Mbps의 경우 채널에 여유가 있어 전송이 원활하게 이루어질 가능성이 높다.

<경우2 : Rs > Rc 전송 속도가 채널 용량보다 클 때>

: 라우터는 자신이 수신하는 비트만큼 빠르게 그 비트들을 전달할 수 없을 것이다.

  • 큰 양이 큰 통로를 지나 작은 통로로가면, 작은 통로로 가는 순간에 bottleneck(병목) 현상이 생기게 된다.
  • ex) 전송 속도 Rs가 15Mbps이고, 채널 용량 Rc가 10Mbps의 경우 채널이 수용할 수 있는 용량을 초과하므로 데이터 손실이나 오류가 발생할 수 있고, 채널의 성능이 저하될 수 있다.

3) network scenario

< Example 1 >
Rs = 1, Rc = 1, R = 5
-> bottleneck link : R (0.5로 가장 작다.)

< Example 2 >
Rs = 1, Rc = 1, R = 100
-> bottleneck link : Rs or Rc (1로 가장 작다)


5. Protocol layers, service models

[1] Protocol "layers" and reference models

1) 네트워크는 복잡하며, 많은 '조각'으로 구성된다.

< 네트워크의 구성 요소 >
hosts (호스트)
routers (라우터)
links of various media (다양한 매체의 링크)
applications (애플리케이션)
protocols (프로토콜)
hardware, software (하드웨어, 소프트웨어)

2) 네트워크의 구조를 정리할 수 있을까요? 아니면 적어도 네트워크에 대한 우리의 논의에 희망이 있을까요?

[2] Example : organization of air travel


: 항공 여행과 같이 많은 서비스를 포함하는 일련의 단계

1) 세 단계의 과정

<첫 번째 과정>

  1. 항공권 구매
  2. 수하물 체크인
  3. 탑승구에서 타기
  4. 활주로 이륙
  5. 비행기 경로에 따라 이동

<두 번째 과정>

  1. 비행기 경로에 따라 이동

<세 번째 과정>

  1. 비행기 경로에 따라 이동
  2. 활주로 착륙
  3. 탑승구에서 내리기
  4. 수하물 청구
  5. 항공권 컴플레인

2) service layers


: 여러 가지의 layer가 존재한다.

  • layer : 각 레이어는 자체 내부 레이어 작업을 통해 서비스를 구현한다.
    • 특징 : 아래 레이어에서 제공하는 서비스에 의존한다.
    • ex) 수하물을 내리려면, 비행기가 착륙해야하는 것처럼 의존한다.

각 레이어에서 제공되는 서비스를 말로 설명하면?

3) 왜 계층화(layering)인가?

복잡한 시스템을 다루는 방법

  • 명시적 구조를 통해 복잡한 시스템의 구성 요소들을 식별하고 관계를 파악할 수 있음
  • 토론을 위한 계층화된 참조 모델 사용

모듈화의 이점

  • 시스템 유지보수와 업데이트가 용이해짐
  • 한 계층의 서비스 구현 변경이 시스템의 나머지 부분에 투명하게 적용됨
  • 예: 게이트 절차의 변경이 시스템의 나머지 부분에 영향을 미치지 않음

추가 질문들

  • 계층화가 해롭다고 여겨질 수 있는가?
    : Yes, 단점도 존재한다.
    1. Overhead 증가 : 각 계층마다 추가적인 헤더와 메타데이터가 붙어 전송 데이터 크기가 커지면서 네트워크 효율이 감소합니다.
    2. 복잡성 증가 : 각 계층이 독립적으로 동작하면서 문제 해결이나 최적화가 어려워지고, 전체 시스템 성능에 부정적인 영향을 미칠 수 있습니다.
    3. 낮은 효율성 : 각 계층이 데이터를 비효율적으로 처리할 경우, 불필요한 연산이 발생해 성능 저하로 이어집니다.
  • 다른 복잡한 시스템에서의 계층화는 어떠한가?

[3] Internet protocol stack

1) Application Layer (응용계층)

  • 네트워크 응용 프로그램을 지원하는 계층이다.
  • 사용자와 직접 상호작용하는 애플리케이션이 이 계층에서 작동한다.
  • 프로토콜 : IMAP, STMP, HTTP

2) Transport Layer (전송 계층)

  • 네트워크에서 프로세스 간 데이터 전송을 담당한다.
  • 데이터의 신뢰성과 흐름 제어를 처리하며, 데이터의 정확한 전달을 보장한다.
  • 프로토콜 : TCP, UDP

3) Network Layer (네트워크 계층)

  • 데이터그램 (패킷)이 소스에서 목적지까지 라우팅되도록 하는 계층이다.
  • 네트워크 경로를 결정하고 주소 지정, 라우팅을 처리한다.
  • 프로토콜 : IP, Routig Protocols

4) Link Layer (링크 계층)

  • 물리적인 네트워크 링크에서 인접 네트워크 요소 간의 데이터 전송을 담당한다.
  • 데이터 프레임의 형식과 전송 방식을 정의하며, 오류 감지와 수정 기능도 포함된다.
  • 프로토콜 : Ethernet, 802.11(WiFi), PPP

5) Physical Layer (물리 계층)

  • 데이터의 물리적인 전송을 담당한다.
  • 전송 매체를 통해 비트 스트림을 실제로 송수신하는 역할을 한다.
  • 실제 전선이나 광섬유 기능을 통해 0과 1의 비트 스트림을 전송한다.
  • 전기적, 광학적 신호를 사용하여 데이터를 물리적으로 전달한다.

요약

[4] ISO/OSI reference model

: 인터넷 프로토콜 스택에 없는 두 가지 레이어가 존재한다.

1) Presentation Layer (표현 계층)

  • 데이터의 형식 및 표현을 관리하는 계층이다.
  • 기능 : 데이터 변환, 데이터 암호화/복호화, 압축/해제압축
  • 프로토콜: JPEG, MPEG, GIF, TLS, SSL

2) Session Layer (세션 계층)

  • 통신하는 두 장치 간의 세션을 설정, 유지, 종료하는 역할을 하는 계층이다.
  • 기능 : 세션 관리, 동기화, 재전송 및 복구
  • 프로토콜: NetBIOS, RPC, PPT

3) 인터넷 스택(TCP/IP)에서 Presentation Layer와 Session Layer가 누락된 이유

: 이러한 기능들이 응용 계층이나 전송 계층으로 통합되어, 별도의 계층을 둘 필요가 없기 때문이다.
: TCP/IP 모델은 실용성과 효율성을 중시하며, 네트워크 통신에서 필수적인 기능만을 계층화해 간소화된 구조를 채택한 것이다.
-> 이러한 서비스는 필요한 경우 application layer에서 구현해야 한다.

[5] Encapsulation / Decapsulation

1) Encapsulation

: 데이터가 네트워크를 통해 전송될 때 각 계층에서 추가적인 정보를 추가하여 전송하는 과정
: 하위 계층 프로토콜이 상위 계층 프로토콜로부터 데이터를 수신한 다음, 해당 데이터를 프레임의 데이터 부분에 배치하는 프로세스

  • 캡슐화 과정에서 각 계층은 위에서부터 서비스 데이터 단위 (SDU)에 제어 정보가 포함된 헤더를 추가하여 프로토콜 데이터 단위 (PUD)를 구축한다.
  • 과정
    1. 데이터 생성: 상위 계층(응용 계층 등)에서 애플리케이션 데이터가 생성된다.. 이 데이터는 서비스 데이터 단위(SDU)라고 한다.
    2. 헤더 추가: 데이터가 전송될 준비가 되면, 하위 계층에서는 헤더를 데이터에 추가한다. 이 헤더는 전송 과정에서 필요한 제어 정보와 메타데이터를 포함한다.
      • 응용 계층: 응용 데이터는 전송을 위해 전송 계층으로 전달된다.
      • 전송 계층: 전송 계층에서는 데이터에 TCP 헤더나 UDP 헤더를 추가하여 프로토콜 데이터 단위(PDU)를 만든다.
      • 네트워크 계층: 전송 계층에서 생성된 PDU는 네트워크 계층으로 전달되고, 네트워크 계층에서는 IP 헤더를 추가하여 새로운 PDU를 생성한다.
      • 링크 계층: 네트워크 계층에서 생성된 PDU는 링크 계층으로 전달되며, 링크 계층에서는 프레임 헤더를 추가하여 최종 PDU를 생성한다.
      • 물리 계층: 링크 계층에서 생성된 최종 PDU는 물리 계층에서 비트 스트림으로 변환되어 실제로 전송된다.
  • 정리해서 보기

2) Decapsulation

: 수신 측에서 데이터가 각 계층을 통과하면서 캡슐화된 헤더를 제거하고 원래의 데이터를 복원하는 과정
: 하위 계층에서 받은 프레임이나 패킷의 헤더를 제거하고, 상위 계층에 원래의 데이터를 전달하는 프로세스.

  • 이는 데이터를 각 계층에서 처리한 후, 목적지에서 올바르게 해석되도록 하는 과정
  • 과정
    1. 비트 스트림 수신: 물리 계층에서 비트 스트림으로 수신된 데이터는 링크 계층으로 전달된다.
    2. 링크 계층 처리: 링크 계층에서는 프레임 헤더를 제거하고, 링크 계층에서의 PDU를 네트워크 계층으로 전달한다.
    3. 네트워크 계층 처리: 네트워크 계층에서는 IP 헤더를 제거하고, 네트워크 계층에서의 PDU를 전송 계층으로 전달한다.
    4. 전송 계층 처리: 전송 계층에서는 TCP/UDP 헤더를 제거하고, 전송 계층에서의 PDU를 응용 계층으로 전달한다.
    5. 응용 계층 처리: 응용 계층에서는 데이터의 최종 부분을 복원하고, 애플리케이션에 필요한 형태로 데이터를 제공한다.

-> 이 둘은 program이 아닌 process이다.

: 이들이 특정 소프트웨어나 코드에 의존하는 단일한 프로그램이 아니라, 네트워크 통신 과정에서 반복적으로 일어나는 일련의 작업이기 때문이다.

그림으로 보는 Encapsulation과 Decapsulation


728x90