컴퓨터 네트워크 교안, 인터넷 자료를 바탕으로 공부한 내용을 작성하였다.
Network core
서로 연결된 라우터들로 이루어진 망을 의미한다.
네트워크에서는 패킷 스위칭 방식을 사용하여 데이터를 전송한다.
패킷 스위칭
- 호스트(컴퓨터)는 애플리케이션 계층의 메시지를 패킷으로 나눈다.
- 패킷은 라우터를 거쳐서 목적지 까지 전달된다.
- 각 패킷은 링크의 최대 전송 용량에서 전송된다.
패킷 스위칭: 저장-전달 방식 (store-and-forward)
패킷이 라우터를 거쳐갈 때 저장 후 전달(store-and-forward) 방식으로 동작한다.
- 패킷의 크기를 L 비트(L bits) 라고 가정한다.
- 전송 속도는 R bps 이다.
- 패킷이 네트워크 링크를 통해 전송될 때, 전송 지연(transmission delay)은 다음과 같다.
전송지연=RL초 즉, 패킷이 링크에 완전히 들어가는 데 걸리는 시간을 의미한다.
예제
- 패킷 크기: L = 10000 비트 (10kbits)
- 전송 속도: R = 100 Mbps (100000000bps)
- 한 홉(one-hop)에서의 전송 지연:
- 10000 / 100 * 1000000 = 0.0001 초 = 0.1 밀리초 (ms)
- 만약 패킷이 출발지에서 목적지까지 2개의 홉을 거쳐간다면, 전체 전송 지연은
2∗L/R=0.2ms
패킷 스위칭: 대기 지연(queueing delay) 및 손실(loss)
- 네트워크에서 큐에 패킷이 쌓이면서 대기 지연이 발생할 수 있다.
- 만약 특정 링크에서 들어오는 패킷의 속도(도착률, arrival rate)가 링크의 전송 속도 (transmission rate) 보다 크다면:
- 패킷은 대기열(queue)에 쌓이게 됨
- 라우터의 버퍼(buffer)가 꽉 차면 패킷이 손실(drop, loss) 될 수 있음
예제

정리
- 패킷 스위칭 방식에서는 데이터를 작은 패킷 단위로 나누어 보냄
- 전송 지연은 패킷 크기(L)와 전송 속도(R)에 따라 결정됨 (L/R)
- 저장-전달 방식에서는 라우터가 패킷을 전송하기 전에 모두 받아야 함.
- 네트워크 혼잡이 발생하면 패킷이 대기하거나 손실될 수 있음
Circuit Switching (서킷 스위칭)
데이터를 보내기 전에 출발지와 목적지 사이에 고정된 경로(회선)를 설정하고, 그 경로를 통해 데이터를 보내는 방식. 전화 통화가 대표적인 예
데이터를 보내기 전에 물리적 또는 가상 회선을 설정하고, 통신이 끝날 때까지 그 회선을 유지
자원을 효율적으로 나누기 위해 FDM(주파수 분할 다중화)나 TDM(시간 분할 다중화)을 사용
FDM (Frequency Division Multiplexing, 주파수 분할 다중화)
대역폭을 주파수 대역으로 나눠 여러 사용자가 동시에 사용할 수 있게 하는 방식. 라디오 방송처럼 주파수를 나눠 쓰는 방식.
TDM (Time Division Multiplexing, 시간 분할 다중화)
시간을 작은 슬롯으로 나눠 각 사용자가 순차적으로 사용하는 방식. 한 줄 서서 번갈아 쓰는 방식
1.1.2에서 다룬 인프라 관점의 인터넷에서는, 이상적으로는, 두 엔드 시스템 간에 데이터를 원하는 만큼 걱정없이 주고 받을 수 있어야 하겠으나 현실은 그렇지 않다. 데이터는 생각한 것보다 느리게 전송되거나, 유실되곤 한다. 이 절에서는 이 문제를 다룬다.
패킷 스위치 네트워크에서의 Delay
패킷이 전송과정에서 거쳐가는 각 노드에서는 다양한 delay가 발생한다.
→ 통칭 node delay
Packet Delay의 4가지 요소
- processing delay: 패킷이 처음 라우터에 당도했을 때, 라우터는 해당 패킷의 헤더를 분석하여, 패킷을 다음에 어디로 보낼지 결정한다. 이때 발생하는 지연.
- 예를 들어 비트 오류를 체크하거나 출력 링크를 결정하는 시간
- queuing delay: 라우터에서 패킷이 전송될 때까지 대기하는 시간. 이 지연은 라우터의 혼잡 정도에 따라 달라집니다.
- 링크로 진입하기 전, 다른 패킷이 링크를 점유하고 있다면 대기해야 한다.
- transmission delay:
패킷을 링크로 전송하는 데 걸리는 시간. 패킷의 크기(L)와 링크 전송 속도(R)에 따라 결정됩니다. 공식은 dtrans = L/R.
패킷은 실제로는 여러 bit로 분할되어 전송됨
- 패킷이 다음 목적지로 전송되려면, 자신의 모든 bit를 가지고 완성된 상태이어야 한다.
- 1초에 전송될 수 있는 bit수는 한정된다. 그래서 여기서 말하는 전송 지연은, 패킷의 모든 bit가 전송 시작하기까지 걸리는 시간
- propagation delay:
패킷이 물리적 링크를 통해 전파되는 데 걸리는 시간으로, 링크의 길이(d)와 전파 속도(s)에 따라 결정됩니다. 공식은 dprop = d/s
- 링크 위에서 bit가 목적지 라우터로 이동하는 시간. 보통 빛의 속도로 전송되며, 링크의 거리만큼 이동한다.
dnodal=dproc+dqueue+dtrans+dprop
Queueing Delay
- R: Link bandwidth (bps)
- L: packet length (bits)
- a: average packet arrival rate
- La/R (Traffic Intensity): queue에 유입/이탈하는 bit의 비율을 나타낸 값, queueing delay의 정도를 판단하는 척도
La/R < 1 이도록 시스템을 설계하자. (단, 패킷이 몰리는 특성을 가지는 상황에 있다면, 병목은 필연적)
Queue가 전달받는 패킷 특성은 예측이 어렵다. 다만 traffic intensity를 토대로 queueing delay의 경향성과 추이 예측은 가능하다. traffic intensity가 1에 가까워질수록 queueing delay는 아래 그림과 같이 기하급수적으로 증가한다.

실제 인터넷 지연 및 경로
Traceroute는 네트워크의 경로를 추적하면서 지연 시간을 측정하는 도구.
여러 라우터를 거쳐 목적지까지 가는 동안의 지연 시간을 측정하고, 이를 통해 네트워크 경로와 지연 시간 파악 가능
traceroute 사용해보기
tracert google.com

설명
- "최대 30홉 이상의": tracert는 기본적으로 최대 30홉(hop, 즉 중간 경유지)을 추적한다. 이는 패킷이 목적지에 도달하기까지 거치는 라우터의 최대 개수를 의미한다. 30홉을 넘으면 더 이상 추적하지 않는다.
- "google.com [142.250.198.174]": 목적지가 google.com이며, 해당 도메인의 IP 주소가 142.250.198.174임을 의미. 네트워크 패킷이 이 IP로 향함.
- 홉 번호: 경로상의 순서.
- 응답 시간(ms): 패킷이 해당 지점에 도달하고 응답을 받는 데 걸린 시간(밀리초 단위). 세 번 측정된 값이 표시됩니다.
- IP 주소: 해당 지점의 네트워크 장비 IP.
- 홉1
- 출발지에서 가장 가까운 첫 번째 라우터. 보통 로컬 네트워크의 게이트웨이(예: 집의 공유기).
- 응답 시간: 7ms, 6ms, 3ms로 매우 빠름. 이는 네트워크 장비가 가까이 있음을 의미.
- IP: 10.91.0.252는 사설 IP 주소(10.0.0.0~10.255.255.255 범위). 즉, 이건 사용자의 로컬 네트워크 내의 장비.
- 홉2
- 홉 2: 로컬 네트워크를 벗어나 다음 단계로 연결된 라우터. ISP(인터넷 서비스 제공자)의 네트워크로 들어가는 지점일 가능성이 높다.
- 응답 시간: 여전히 빠른 편(5ms, 2ms, 3ms)으로, 근거리 네트워크임을 나타낸다.
- IP: 172.20.3.1도 사설 IP(172.16.0.0~172.31.255.255 범위). ISP 내부 네트워크일 가능성이 크다.
- 홉3
- 홉 3: 이제 공인 IP 주소(210.94.220.227)가 등장. ISP의 외부 네트워크로 나간 지점.
- 응답 시간: 5ms~10ms로 약간 변동이 있지만, 여전히 빠름.
여러 공인 IP 홉을 거쳐서 최종적으로 google의 홉에 도달
최종 목적지인 142.250.198.174에 도달. 여기서 hostname이 nchkgb-ak-in-f14.1e100.net로 표시되며, 이는 구글의 서버 중 하나임을 나타냄(1e100.net은 구글이 사용하는 도메인).
- 사용자의 컴퓨터에서 출발한 네트워크 패킷이 총 18개의 중간 지점(라우터 또는 네트워크 장비)을 거쳐 google.com의 IP(142.250.198.174)에 도달.
- 응답 시간: 마지막 홉에서 61ms, 62ms, 60ms로 측정되었으니, 패킷이 목적지에 도달하는 데 약 60~62ms가 걸렸다는 뜻.
홉 9(36~38ms) 이후부터 시간이 눈에 띄게 증가하는데, 이는 구글의 데이터센터로 들어가는 단계일 가능성이 높다.
→ 실제로 IP address 확인 결과 구글 센터로 잡힘

Packet Loss
- 앞서 논한 packet queue는 그 크기가 한정되어서, 현실에서는 queue가 full인 경우 queuing delay가 발생하기보다는 packet loss가 발생한다.
- 엔드 시스템 관점에서는 lost packet을 재전송하는 테크닉이 중요
Throughput
- instantaneous throughput: 순간 다운로드 속도; 우리가 흔히 파일을 다운받을 때 표시되는 다운로드 속도를 가리킨다.
- average throughput: 정해진 시간동안 다운로드받은 총량을 토대로 한 평균 속도.
애플리케이션의 특성에 따라 두 지표 중 중요한 것이 달라진다.
- 네트워크의 링크가 잇는 두 노드 간의 데이터 전송 속도를 RN이라고 하면, 이 속도는 각 링크마다 상이하다. 이 차이는 특정 링크로 인하여 경로의 전체 전송 속도를 떨어트리는 병목(bottlenet link) 현상을 유발한다.
- 따라서 어떤 경로에서의 전체적인 파일 전송 속도(transmission rate)는
min{R1, R2, ..., RN} 이다.
- 현대 실무의 네트워크 구조에서는 인터넷 속도가 매우 빠르므로, the constraining factor for throughput in today’s Internet is typically the access network.
- 단, 특정 목적지에 요청하는 노드가 많고 어떤 링크를 공유하게 된다면, 해당 링크의 대역폭을 나누어 쓰게 되므로 그만큼 병목이 심해진다
→ 네트워크 경로에서 데이터가 여러 개의 링크를 거쳐 이동할 때, 전체적인 파일 전송 속도(throughput)는 가장 느린 링크의 속도에 의해 제한됨.
- 패킷 손실은 네트워크 버퍼가 꽉 차면 발생.
- 패킷 지연은 처리, 큐잉, 전송, 전파 지연으로 나뉘며, 이들이 합쳐져 최종적인 지연을 생성.
- 실제 인터넷 경로 및 지연은 traceroute와 같은 도구를 사용하여 확인할 수 있다.
- 패킷 손실과 큐잉 지연은 네트워크의 혼잡도에 따라 달라지며, 처리량은 네트워크 성능에 큰 영향을 미침.
Network Security
네트워크 보안은 아래의 내용들을 다룬다:
- 악의를 가진 사람이 네트워크를 공격하는 방식
- 공격으로부터 네트워크를 방어
- 공격을 초장에 막을 수 있는 새로운 설계의 고안
악성코드(Malware)
악성코드는 사용자 모르게 컴퓨터에 침투하여 피해를 주는 소프트웨어이다. 주요 유형은 다음과 같다.
- 바이러스(Virus):
- 실행 가능한 파일(e.g., 이메일 첨부 파일)을 통해 전파된다.
- 감염된 파일이 실행될 때 활성화되며, 자가 복제 기능을 갖는다.
- 웜(Worm):
- 사용자의 개입 없이 스스로 복제되며, 네트워크를 통해 전파된다.
- 이메일, 파일 공유, 취약한 네트워크 포트를 이용하여 확산된다.
- 스파이웨어(Spyware):
- 사용자 정보를 무단으로 수집하는 악성코드이다.
- 키 입력(키로거), 방문한 웹사이트 기록 등을 수집하여 공격자에게 전송할 수 있다.
- 봇넷(Botnet):
- 감염된 컴퓨터(좀비 PC)를 네트워크로 연결하여 원격 조종할 수 있도록 하는 악성코드이다.
- 주로 스팸 메일 발송, DDoS 공격 등에 이용된다.
서비스 거부 공격(Denial of Service, DoS)
서비스 거부 공격은 특정 서버나 네트워크의 자원을 과부하 상태로 만들어 정상적인 사용이 불가능하도록 하는 공격이다.
- 공격 대상 선정(Target Selection)
- 여러 호스트 감염(Botnet 활용)
- 대상에게 대량의 트래픽 전송
DDoS(Distributed Denial of Service) 공격은 다수의 감염된 컴퓨터(봇넷)를 이용하여 동시에 공격하는 방식으로, 방어가 더욱 어렵다.
패킷 가로채기(Packet Interception)
패킷 스니핑(Packet Sniffing)은 네트워크에서 송수신되는 데이터를 가로채는 공격 기법이다.
- 공유 매체(Shared Ethernet, 무선 네트워크 등)에서 공격자가 트래픽을 감시할 수 있다.
- 네트워크 인터페이스를 "무차별 모드(Promiscuous Mode)"로 설정하면 지나가는 모든 패킷을 읽을 수 있다.
- 암호화되지 않은 로그인 정보(예: 평문 패스워드)가 포함된 패킷이 가로채질 경우 보안 위협이 발생할 수 있다.
- Wireshark와 같은 패킷 캡처 도구를 활용하여 네트워크 분석이 가능하다.
IP 스푸핑(IP Spoofing)
IP 스푸핑은 공격자가 송신하는 패킷의 출발지 주소(Source IP Address)를 위조하여, 마치 다른 호스트에서 보낸 것처럼 보이게 하는 공격 방식이다.
- 공격자는 신뢰받는 시스템처럼 가장하여 보안 시스템을 우회할 수 있다.
- DDoS 공격, 세션 하이재킹(Session Hijacking) 등의 다양한 보안 공격에 활용된다.
Protocol layers, service models
네트워크는 여러 구성 요소로 이루어진 복잡한 시스템이다. 주요 구성 요소는 다음과 같다.
- 호스트(Hosts): 네트워크에 연결된 컴퓨터 또는 장치
- 라우터(Routers): 네트워크 경로를 결정하여 데이터 패킷을 전달하는 장치
- 링크(Links): 다양한 유형의 물리적 또는 무선 연결
- 애플리케이션(Applications): 네트워크를 사용하는 소프트웨어
- 프로토콜(Protocols): 네트워크 통신을 정의하는 규칙과 규약
- 하드웨어/소프트웨어: 네트워크 장비 및 관련 소프트웨어
이처럼 네트워크는 다양한 요소로 구성되기 때문에, 이를 체계적으로 정리하고 이해하기 위해 계층적 구조(layered structure) 를 활용한다.
Network Layered Model
네트워크 시스템에서도 복잡성을 줄이고 체계적으로 관리하기 위해 인터넷 프로토콜 스택(Internet Protocol Stack)이라는 계층 모델을 사용한다.
인터넷 프로토콜 스택(Internet Protocol Stack)
| 계층 | 기능 | 주요 프로토콜 |
|---|
| 응용 계층(Application Layer) | 네트워크 애플리케이션 지원 | HTTP, SMTP, IMAP |
| 전송 계층(Transport Layer) | 프로세스 간 데이터 전송 | TCP, UDP |
| 네트워크 계층(Network Layer) | 데이터그램을 출발지에서 목적지까지 라우팅 | IP, 라우팅 프로토콜 |
| 링크 계층(Link Layer) | 이웃한 네트워크 요소 간 데이터 전송 | 이더넷, Wi-Fi(802.11), PPP |
| 물리 계층(Physical Layer) | 실제 데이터 전송(비트 신호) | 광섬유, 동축 케이블, 무선 |
각 계층은 특정한 역할을 수행하며, 아래 계층이 제공하는 기능을 사용한다.
예를 들어, HTTP 프로토콜(응용 계층)은 TCP 프로토콜(전송 계층)을 사용하여 데이터를 송수신하며,
TCP는 IP 프로토콜(네트워크 계층)을 이용하여 패킷을 목적지까지 전달한다.
캡슐화
캡슐화(Encapsulation)는 네트워크에서 데이터가 전송될 때 계층별로 헤더(Header)가 추가되는 과정을 의미한다.
데이터가 송신 측에서 전송될 때는 아래와 같은 순서로 패킷이 만들어진다.
- 응용 계층(Application Layer): 원본 메시지(M)를 생성
- 전송 계층(Transport Layer): 세그먼트(segment)를 생성 (헤더 Ht 추가)
- 네트워크 계층(Network Layer): 데이터그램(datagram)을 생성 (헤더 Hn 추가)
- 링크 계층(Link Layer): 프레임(frame)을 생성 (헤더 Hl 추가)
- 물리 계층(Physical Layer): 전기 신호 또는 무선 신호로 변환하여 전송
이렇게 데이터가 목적지에 도착하면 역캡슐화(Decapsulation) 과정을 거쳐 각 계층에서 헤더를 제거한 후 최종적으로 메시지가 원래 상태로 복원된다.
라우터를 거치는 동안에는 네트워크 계층까지의 정보(IP 주소, 라우팅 정보 등)만 해석되며, 전송 계층과 응용 계층의 데이터는 그대로 유지된다.
계층 모델을 사용하는 이유
계층화된 네트워크 모델을 사용하면 다음과 같은 장점이 있다.
- 복잡한 시스템을 구조적으로 이해 가능
- 명확한 계층 구조를 통해 각 기능을 분리하여 이해할 수 있다.
- 유지보수 및 업그레이드 용이
- 특정 계층의 프로토콜을 변경하더라도, 다른 계층에는 영향을 주지 않는다.
- 예를 들어, 이더넷(Wired LAN)에서 Wi-Fi(Wireless LAN)로 변경해도 응용 계층의 HTTP는 그대로 사용할 수 있다.
- 프로토콜 간 독립성 유지
- 응용 계층의 HTTP는 TCP 또는 UDP 위에서 동작할 수 있다.
- 네트워크 계층의 IP는 유선(Ethernet) 또는 무선(Wi-Fi) 위에서 동작할 수 있다.
결론
네트워크 시스템은 복잡하기 때문에 계층적 구조를 사용하여 기능을 분리하고 체계적으로 관리한다.
이를 위해 인터넷 프로토콜 스택을 사용하며, 데이터 전송 과정에서는 캡슐화(Encapsulation) 기법이 적용된다.
이러한 계층 모델을 통해 유지보수 및 확장성을 높일 수 있으며, 다양한 네트워크 기술을 조합하여 활용할 수 있다.
참고: https://velog.io/@cadenzah/computer-network-top-down-approach-01