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

1) 주요 변수
- R : link bandwidth (bps) - 링크 대역폭
- L : packet length (bits) - 패킷 길이
- a : average packet arrival rate - 평균 패킷 도착률
2) 경우의 수
- La/R ~ 0 : avg. queueing delay small (평균 대기열 지연 시간이 작음)
- La/R -> 1 : avg.queueing delay large (평균 대기열 지연 시간이 큼)
- 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) 비유
- 첫 번째 집
- 집에서 출발해 첫 번째 집에 갑니다. 이 집에서는 잠시 머물고 다시 돌아와야 합니다.
- 이 집에서의 대기 시간을 측정합니다.
- 두 번째 집
- 이번에는 첫 번째 집을 지나 두 번째 집에 갑니다. 두 번째 집에서는 다시 첫 번째 집으로 돌아가야 합니다.
- 두 번째 집에서의 대기 시간도 측정합니다.
- 최종 목적지
- 마지막으로 최종 목적지(친구의 집)에 갑니다. 이 집에서는 더 이상 돌아갈 필요 없이, 기다린 시간을 측정합니다.
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) 세 단계의 과정
<첫 번째 과정>
- 항공권 구매
- 수하물 체크인
- 탑승구에서 타기
- 활주로 이륙
- 비행기 경로에 따라 이동
<두 번째 과정>
- 비행기 경로에 따라 이동
<세 번째 과정>
- 비행기 경로에 따라 이동
- 활주로 착륙
- 탑승구에서 내리기
- 수하물 청구
- 항공권 컴플레인
2) service layers
: 여러 가지의 layer
가 존재한다.
- layer : 각 레이어는 자체 내부 레이어 작업을 통해 서비스를 구현한다.
- 특징 : 아래 레이어에서 제공하는 서비스에 의존한다.
- ex) 수하물을 내리려면, 비행기가 착륙해야하는 것처럼 의존한다.
각 레이어에서 제공되는 서비스를 말로 설명하면?
3) 왜 계층화(layering)인가?
복잡한 시스템을 다루는 방법
- 명시적 구조를 통해 복잡한 시스템의 구성 요소들을 식별하고 관계를 파악할 수 있음
- 토론을 위한 계층화된 참조 모델 사용
모듈화의 이점
- 시스템 유지보수와 업데이트가 용이해짐
- 한 계층의 서비스 구현 변경이 시스템의 나머지 부분에 투명하게 적용됨
- 예: 게이트 절차의 변경이 시스템의 나머지 부분에 영향을 미치지 않음
추가 질문들
- 계층화가 해롭다고 여겨질 수 있는가?
: Yes, 단점도 존재한다.- Overhead 증가 : 각 계층마다 추가적인 헤더와 메타데이터가 붙어 전송 데이터 크기가 커지면서 네트워크 효율이 감소합니다.
- 복잡성 증가 : 각 계층이 독립적으로 동작하면서 문제 해결이나 최적화가 어려워지고, 전체 시스템 성능에 부정적인 영향을 미칠 수 있습니다.
- 낮은 효율성 : 각 계층이 데이터를 비효율적으로 처리할 경우, 불필요한 연산이 발생해 성능 저하로 이어집니다.
- 다른 복잡한 시스템에서의 계층화는 어떠한가?
[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)
를 구축한다. - 과정
- 데이터 생성: 상위 계층(응용 계층 등)에서 애플리케이션 데이터가 생성된다.. 이 데이터는 서비스 데이터 단위(SDU)라고 한다.
- 헤더 추가: 데이터가 전송될 준비가 되면, 하위 계층에서는 헤더를 데이터에 추가한다. 이 헤더는 전송 과정에서 필요한 제어 정보와 메타데이터를 포함한다.
- 응용 계층: 응용 데이터는 전송을 위해 전송 계층으로 전달된다.
- 전송 계층: 전송 계층에서는 데이터에
TCP 헤더나 UDP 헤더를 추가
하여 프로토콜 데이터 단위(PDU)를 만든다. - 네트워크 계층: 전송 계층에서 생성된 PDU는 네트워크 계층으로 전달되고, 네트워크 계층에서는
IP 헤더를 추가
하여 새로운 PDU를 생성한다. - 링크 계층: 네트워크 계층에서 생성된 PDU는 링크 계층으로 전달되며, 링크 계층에서는
프레임 헤더를 추가
하여 최종 PDU를 생성한다. - 물리 계층: 링크 계층에서 생성된 최종 PDU는 물리 계층에서
비트 스트림으로 변환
되어 실제로 전송된다.
- 정리해서 보기
2) Decapsulation
: 수신 측에서 데이터가 각 계층을 통과하면서 캡슐화된 헤더를 제거하고 원래의 데이터를 복원
하는 과정
: 하위 계층에서 받은 프레임이나 패킷의 헤더를 제거하고, 상위 계층에 원래의 데이터를 전달하는 프로세스.
- 이는 데이터를 각 계층에서 처리한 후, 목적지에서 올바르게 해석되도록 하는 과정
- 과정
- 비트 스트림 수신: 물리 계층에서 비트 스트림으로 수신된 데이터는 링크 계층으로 전달된다.
- 링크 계층 처리: 링크 계층에서는 프레임 헤더를 제거하고, 링크 계층에서의 PDU를 네트워크 계층으로 전달한다.
- 네트워크 계층 처리: 네트워크 계층에서는 IP 헤더를 제거하고, 네트워크 계층에서의 PDU를 전송 계층으로 전달한다.
- 전송 계층 처리: 전송 계층에서는 TCP/UDP 헤더를 제거하고, 전송 계층에서의 PDU를 응용 계층으로 전달한다.
- 응용 계층 처리: 응용 계층에서는 데이터의 최종 부분을 복원하고, 애플리케이션에 필요한 형태로 데이터를 제공한다.
-> 이 둘은 program이 아닌 process이다.
: 이들이 특정 소프트웨어나 코드에 의존하는 단일한 프로그램이 아니라, 네트워크 통신 과정에서 반복적으로 일어나는 일련의 작업이기 때문이다.