본문 바로가기
Computer Engineering/Computer networks

comnet-01

by coco88 2025. 4. 30.

출처: Computer Networking A Top-Down Approach 8th

Chapter 1. Computer Networks and the Internet

 

1. 인터넷과 프로토콜

 
인터넷(Internet)구조적 관점에서 바라보자면,
 
수십억개의 컴퓨팅 장치들로 이루어져 있다.
이 장치들을 hosts(end systems) 이라고 한다. 예를 들어, 컴퓨터나 핸드폰 같은 것들
end system들은 communication linkspacket switch들로 연결되어 있다.
-communication links: 광섬유(fiber), 구리(copper), 무선(radio), 위성(satellite)
-packet switches: routers, switches
network는 위와 같은 devices, routers, links 등으로 구성되어 있다.
 
Internetnetworks of networks 즉, 수많은 개별 네트워크들이 서로 연결된 거대한 시스템이라는 의미이다.
 

 
그렇다면, 서비스 관점에서 바라본 인터넷(Internet)은 여러 애플리케이션과 서비스들을 이용할 수 있도록 제공해주는 기반시설(Infrastructure)과 같은 것이다. 
 
 
protocol(프로토콜)이란, 통신하는 방법을 정의해 놓은 규칙이다.
예를 들어, 웹 페이지를 주고 받는 HTTP 프로토콜, 인터넷에서 데이터를 전소아는 TCP/IP 프로토콜 등이 있다.
메세지의 형식(format)과 순서(order)를 정의하고, 메세지를 주고 받을 때 수행해야하는 행동(action)들을 규정하고 있다.
 

2. 인터넷의 구조

1. Network edge 
네트워크의 가장 바깥 부분. 즉, 사용자가 직접 접속하는 부분이다.
host(client and server, end systems)가 포함되어 있다. 
ex) PC, mobile 등
 
2. Access Networks
사용자가 인터넷에 접속할 수 있는 네트워크이다. 주로 무선이라 지역적 한계를 가진다. 
ex) WIFI, 4G, 5G
이때, 전송속도(transmission rate)는 n명의 사용자가 있는 경우에 각 사용자당 1/n의 전송속도를 가지게 된다. 
 


host가 packets을 전송하는 과정

  • 애플리케이션  메세지를 가져온 후에 작은 조각(packet)으로 나눈다. ( 패킷은 L bits 크기)
  • 전송 속도(transmission rate, R)로 패킷을 네트워크에 전송한다. 
  • 링크 전송 속도(linke transmission rate)는 링크 용량(bandwidth)와 같다.

 
이때, 패킷을 완전히 전송하는 데 걸리는 시간 (transmission delay) 은 아래와 같은 공식으로 구할 수 있다. 

중요 ‼️

 
 
 
links(physical media)로는 guided media(유선), unguided media(무선), twisted pair(TP, 랜선), Fiber optic cable(광섬유), wireless radio(무선) 등이있다.
 
3. Network core
인터넷의 중심부로, 여러 네트워크들을 연결해준다. 대량의 데이터를 고속으로 전송하므로 고속처리가 가능한 기기들이 필요하다. 
ex) local or regional/ national or global ISP
access networks 로부터 packet을 받아서 경로를 찾아 목적지까지 전달하는 역할을 한다.
packet switching 방식을 사용한다.
 

3. packet switching and circuit switching

end system들끼리 서로 메세지를 교환하는데, 이때 긴 메세지를 작은 단위인 packets로 분할하여 전송한다.
packet을 전송하는 방법으로는 packet-switching과 circuit-switching이 있다.
 
 
1. packet-switching
packets을 전송할 때, store-and-forward 방식을 이용한다.
pakcet을 전부 전달 받은(store) 후에 다음 노드로 나아가는(forward) 방식이다. 
ex) 100 bit이면 100 bit 다 받고 다음 노드로 전송

 
(각 packet은 L bit, 전송 속도는 R bps)
Transmission delay(packet 하나 보내는 데 걸리는 시간): L/R 초
End-end delay: n개의 노드가 있는 경우에 (n-1)L/R
위 사진 같은 경우에는 3개의 노드가 있으므로 2L/R 초가 걸린다.
-> hop수에 비례하여 시간이 증가한다는 단점이 있다.

예시 문제)
하나의 hop을 지날 때 transmission delay를 구하시오.
L=10kbits
R=100Mbps

답) 10/100= 0/1 msec

 
 
packet-switching 방식은 queueing delay와 packet loss가 발생한다는 단점이 있다.

queueing delay: 100Mbps로 packet을 전송하지만 output link의 속도는 15Mbps이므로 queue에서 대기시간(dealy)이 발생한다.
packet loss: queue(buffer)가 꽉 차면 packet이 손실(loss)될 수 있다.
 
 
packet switching에는 Forwarding 과 Routing 기능이 있다.
Fowarding
각 packet이 도착하면, 라우터가 해당 packet의 header를 확인하여 적절한 output link로 전달한다.
로컬(local)동작으로서, 개별 라우터 내부에서 이루어진다. 
라우더의 forwarding table에 따라 목적지(destination)로 이동한다. 
Routing
packet이 출발지에서 목적지까지 갈 전체 경로를 결정하는 과정이다.
routing algorithm(라우팅 알고리즘)이 사용되며, 네트워크 전체를 고려하는 글로벌(global) 동작이다. 
최적의 경로를 계산하여, forwarding table을 구축한다.

local forwarding table
header value (destination) output link (next hop)
0100  3

 
-> packet의 header에 항상 destination이 항상 기술되어 있고, router가 많아지면 table의 크기가 매우 커져서 찾는 시간이 오래걸린다는 단점이 있다. 
 
 
2. circuit switching
통신이 시작되기 전에 미리 경로를 설정하고, 데이터가 그 경로를 따라 이동한다. (dedicated resources)

-> 모든 노드들이 통신하는 내용을 다 기억하고 있어야 한다는 단점이 있다.
 
 
circuit switching에서 여러 사용자가 하나의 링크를 공유하는 방식에는 FDM과 TDM이 있다. 
 
FDM(Frequency Division Multiplexing) - 주파수 분할 다중화
전체 대역폭을 여러 개의 좁은 주파수 대역으로 나누고, 각 사용자에게 고정된 주파수 대역을 할당하여 지속적으로 사용하는 방식이다. 
한 사용자가 배정된 주파수 대역을 계속 유지하므로 다른 사용자의 영향을 받지 않는다. (독립적)
특정 주파수 대역을 사용하지 않더라도 할당된 채널이 유지되어 비효율적이다. 
ex) 라디오 방송, 아날로구 전화망, 케이블 TV
 
TDM(Time Division Multiplexing) - 시간 분할 다중화 
전체 대역폭을 한 사용자가 독점하는 대신, 시간을 작은 슬롯(slot)으로 나눠서 배정한다. 
각 사용자는 주기적으로 할당된 슬롯 동안만 데이터를 전송 가능하다. 
주어진 시간 슬롯 동안 최대 전송 속도를 낼 수 있지만, 자신의 슬롯 시간이 아닐 때는 데이터를 보낼 수 없다. 
ex) 디지털 전화망
 
 
3. packet switching vs circuit switching
 
packet switching은 주어진 상황에서 보다 더 많은 사용자가 네트워크를 이용할 수 있다!
buffer가 혼잡해지는 경우에, packet switching 방식은 packet delay and loss 때문에 품질 보장이 안되는 반면에 circuit switching 방식은 품질 보장이 된다. 
비유하자면 packet switching은 필요할 때마다 제공해주는 on-demand allocation 방식이고, circuit switching은 reserved resources

예제)
네트워크 링크 속도: 1 Gbps (1000Mbps)
각 사용자: 100 Mbps 속도로 데이터 전송 가능, 1/10 확률로 활성(active) 상태

총 사용자가 35명이라고 할 때,
circuit switching: 최대 10명의 사용자만 수용 가능
packet switching: 10명 이상의 사용자를 수용 가능, 하지만 동시에 10명 이상이 활성 상태일 확률은 0.0004로 매우 낮음

 
-동시 활성 사용자 확률 계산

매우 중요‼️‼️‼️‼️

n: 총 사용자 수(packet의 개수), k: 활성 상태 (packet을 보내는) 사용자 수, p(위 식에선 0.1): 각 사용자가 활성 상태일 확률 
 
연습문제 풀어보기
http://gaia.cs.umass.edu/kurose_ross/interactive/ps_versus_cs.php

 

 

4. packet loss and delay

host(end system)가 message를 전송하면 packet 단위로 쪼개어 전송된다. 
packet들은 queue(in router buffers)에서 대기를 하며 output link를 통해 전달된다. 
packet이 queue에서 대기하는 시간은 queueing delay라고 하며, 이때 queue가 꽉 차면 packet이 손실(loss)되는 경우가 발생한다. 

Packet loss
queue는 유한한 용량을 가지고 있기 때문에 꽉 차게 되면 패킷을 손실할 수 있다.
 
packet delay

processing delay: 라우터가 패킷을 전송하는데 걸리는 시간, 비트 오류를 검사하고 output link를 결정 (수 밀리초 이하로 매우 작음)
queueing delay: output link로 나가기 전에 queue에서 대기하는 시간 (L/R)
transmission delay: 패킷을 링크에 밀어넣는데 걸리는 시간 
propagation delay: 전송된 신호가 link를 따라 목적지까지 전파되는 데 걸리는 시간 (d/s- d:link의 길이,s:신호 전파 속도)
 
 
traffic intensity

R: link bandwidth(전송 속도), L: 패킷의 길이, a: 패킷 도착률(초당 패킷의 개수)
트래픽 강도(traffic intensity)는 링크가 감당할 수 있는 속도 대비 트래픽이 얼마나 많은지를 나타낸다. (La/R)

traffic intensity 의미 queueing delay
≈0 여유 있음 매우 작음
→1 링크 용량 초과 지연 급증
>1 수용 불가 지연 무한대

처리 용량(R)보다 낮은 속도로 전송해야 queueing delay를 줄일 수 있다. (La<R)
 
traceroute
인터넷에서 특정 목적지까지 가는 경로와 각 라우터에서의 지연시간을 측정하는 명령어 기반 도구

traceroute www.google.com #Linux

 
Throughput
실제로 수신자까지 데이터가 전송된 속도를 말한다. (bits/time)
instantaneous: 한 순간의 전송률, average: 일정 시간동안 평균 전송률
 

송신자측 링크 속도와 수신자측 링크 속도가 있을 때, 더 작은 값에 의해 링크 속도가 결정된다. 이때 가장 느린 링크를 bottleneck link(병목 링크)라고 한다. 
N개의 연결이 있을 때, 공유 링크가 R이라면 R/10 도 고려해야한다. 
 

5. Network security

네트워크 보안(Network securtiy)이란, 악의적인 행위자(adversary)가 네투워크를 공격하는데 이를 방어하고 공격에 강한 구조를 만드는 기법이다. 인터넷은 초기에 보안을 고려하지 않고 설계되었기 때문에, 보안은 사후 보강(catch up)구조이다.
 
1. 악성코드(malware)

이름 설명
virus 실행 시 감염되는 자기 복제 코드
worm 실행하지 않아도 자동으로 퍼지는 자기 복제 코드
spyware 키보드 입력이나 웹사이트 방문 기록 등을 몰래 수집
botnet 감염된 컴퓨터들이 공격용으로 원격 제어되는 네트워크 

 
2. 서비스 거부 공격(DoS/DDoS, Denial of Service)
 
서버나 네트워크 자원을 정상 사용자에게 제공하지 못하도록 방해하는 공격 기법이다.
DoS: 단일 컴퓨터에서 공격
DDoS: 여러 컴퓨터(botnet)를 동원해 동시 공격
공격 대상(target)을 선정하고 다른 호스트들을 감염시켜 botnet을 구축한 뒤, 이 감염된 호스트들이 가짜 트래픽을 보내서 서버를 마비시키는 방법이다. 
 
3. packet interception/ fake identity
 
1) Packet Sniffing (패킷 도청)
공유 매체(Ethernet, WIFI)에서 네트워크 인터페이스가 지나가는 모든 패킷을 읽는다. 암호화되지 않은 plain text 데이터(비밀번호)가 노출 될 수 있다. 
 
2) IP Spoofing 
패킷을 전송할 때 출발지 주소를 위조해서 다른 IP처럼 보이게 한 후에 공격자가 송신자를 사칭해서 패킷을 보내는 방식이다.
 
 

6. 계층화 (layering)

네트워크는 hosts, routers, media, protocols, applications 등 다양한 구성요소로 매우 복잡하다. 이 복잡함을 쉽게 설계하고 운영하기 위해서 계층화(layering)를 사용한다.
분할정복(divide and conquer) 방식 중 하나이다. 복잡한 문제들을 보다 작은 단위/모듈로 분할하는데, 분할된 모듈들은 상하관계가 있으며 이를 계층이라고 지칭한다. 각 계층별로 구현되어야 할 기능/서비스가 정의되어 있다. 모듈별 업그레이드가 가능하다는 모듈화의 장점을 가지고 있다.
 
인터넷은 5계층 구조로 이루어져있다. 

1. Physical layer
한 노드에서 다음 노드로 0과 1의 비트 스트림을 신호로 변환해 전송하는 기능을 한다. 송신자와 수신자 간 물리적 연결만 담당하고 내용을 알 수 없다. 
ex) 전선, 광케이블, 무선 등
 
2. Link layer
이웃간 데이터를 전송하는 기능으로, 한 노드에서 다음 노드로 '프레임'을 이동시키는 기능을 한다. 프레임 단위로 전송하며 프레임은 '헤더+데이터+테일러'로 이루어져 있다. 헤더와 테일러에 추가적인 정보를 덧붙이기 때문에 정보의 시작과 끝을 인식 가능하며 다대다 통신이 가능하다. 
ex) Ethernet, 802.11(WIFI), PPP 등
 
3. Network layer
출발지에서 도착지까지(source-to-destination) 패킷이 여러 장치를 거쳐 정확하게 도착할 수 있도록(multihop delivery) 도와주는 역할이다. 
datagram: 네트워크 계층(IP)에서 전송되는 데이터 단위
ex) IP, routing protocols

  • 주소 지정(Addressing): IP주소를 사용해 호스트를 식별
  • 라우팅(Routing): 목적지까지 갈 최적의 경로를 설정
  • 포워딩(Forwarding): 라우터가 패킷을 다음 홉(hop)으로 전달

 
4. Transport layer
프로세스 간 통신을 지원해준다. 포트 번호로 어떤 응용 프로그램인지 구별하며, 분할과 재조립, 혼잡제어 기능(flow control, error control, congestion control)도 담당한다. 
ex) TCP: 신뢰성, 오류제어, 흐름제어 / UDP: 단순 전송
 
5. Application layer
응용 프로그램(network application)을 지원해준다.
 ex) HTTP, SMTP, IMAP
 
ISO/OSI reference model은 7계층 구조로, Presentation layer와 Session layer를 추가적으로 가지고 있다. 인터넷 계층에서는 필요한 경우에 application layer에서 구현하므로 사용되지 않는다.
 
Presentation layer
데이터 형식을 표준화하고 기기마다 다른 포맷을 맞춰준다. 암호화/복호화나 압축/해제를 한다. 
 
Session layer
통신 시 세션 설정, 유지, 종료하는 기능을 한다. 동기화, 체크포인트 설정, 데이터 복구 등의 기능을 하며 주로 영상 통화나 스트리밍에서의 연결 유지를 하는데 사용된다.
 
 
Encapsulation (캡슐화)
상위 계층의 데이터에 하위 계층이 header를 붙이는 과정이다. 즉, 데이터를 네트워크를 통해 보내기 위해 각 계층에서 정보를 붙이는 과정이다. 

1) source
Application layer에서 사용자가 보내려는 M이라는 메세지 보낸다. Transport layer에서 segment로 나누고 헤더 Ht(TCP/UDP 헤더, 포트번호 등) 를 붙인다. Network layer에 세그먼트 Hn(IP 헤더)을 붙여 datagram을 생성한다. Link layer에서 Hl 헤더(Ethernet 헤더, MAC 주소)를 붙여 frame을 완성한다.
2) switch
Link layer의 MAC 주소만 보고 전달한다. 
3) router
Network layer의 IP 정보를 참조하여 다음 홉으로 가기 위한 경로를 정하기 위해 Hn을 읽는다. (store-and-foward)
4) destination
decapsulation을 진행하며 아래에서부터 위로 하나씩 헤더를 제거하며 최종적으로는 원래 메세지 M만 남는다.
 
 
 
 

'Computer Engineering > Computer networks' 카테고리의 다른 글

comnet-06  (0) 2025.04.30
comnet-05  (1) 2025.04.30
comnet-04 security  (2) 2025.04.30
comnet-03 sockprog  (0) 2025.04.30
comnet-02  (1) 2025.04.30