상황 :
발생하는 현상 :
: 도착한 패킷을 해당 목적지에 맞는 출력 포트로 즉시 보내는 작업
한 라우터 내부에서 발생하는 동작
라우터는 미리 준비된 Forwarding Table 을 참고하여,
패킷의 목적지 주소에 따라 어떤 포트로 내보낼지 결정
ex.
패킷의 목적지 주소가 0111일 때,
라우터 내부의 전달 테이블에서 주소에 해당하는 출력 포트 2번을 확인한 후,
해당 포트로 패킷을 보냄
: 네트워크 전체에서 패킷이 최종 목적지까지 도달할 수 있도록
경로를 결정하는 과정
라우터들은 서로 연결되어 있으며,
Routing Algorithm 을 사용하여 전체 네트워크 구조를 고려한
최적의 경로(Path)를 계산
각 라우터는 이 결과를 바탕으로 자신만의 Forwarding Table을 업데이트함
: 통신을 시작하기 전에 송신자와 수신자 사이에
전용 통신 경로(회선)를 미리 설정하는 방식
→ 통신 중에 회선이 할당되어 있지만 실제 데이터가 많이 오가지 않더라도
그 자원은 계속 점유되므로, 전체 자원 활용도가 떨어질 수 있음
: 전체 통신 주파수 대역을 여러 개의 작은 주파수 영역으로 분할하여,
각 영역을 개별 사용자에게 고정적으로 할당
: 하나의 주파수 대역을 시간 슬롯으로 나누어,
각 시간 슬롯마다 한 명의 사용자에게 데이터를 전송할 기회를 제공
링크 속도: 1 Gbps
사용자당 사용 조건:
활성(active) 상태일 때: 100 Mbps 전송
활성 상태가 되는 비율: 10%의 시간만 사용함
: 1 Gbps 링크에서 각 사용자가 100 Mbps의 고정 대역폭을 사용해야 하는 경우
최대 10명만 동시에 통신 가능 → 10개의 회선이 미리 예약되어야 함
: 같은 1 Gbps 링크를 사용하되, 각 사용자가 활성화 상태일 때 100 Mbps를 사용
ex. n=35로 할 때, 기대되는 동시 활성 사용자 수는 35×0.1=3.5명
by. 이항분포
동시에 10명 이상이 활성화될 확률 = 0.0004 (0.04%)
→ 낮은 확률로 충돌(혼잡)이 발생
bursty data
: 데이터가 간헐적으로 몰려 나오는 경우
→ 불규칙적 트래픽에 유리
call setup 없음
: 경로 사전 설정 없이 바로 전송 가능 → 단순하고 유연함
해결 방법 :
reliable data transfer protocol 필요 (TCP)
혼잡 제어 필요 (TCP congestion control)
→ 실시간 오디오/영상처럼 일정한 품질이 필요한 통신에서는
Circuit Switching 같은 대역폭 보장이 필요
• 전용 통신 경로 사용:
통신이 시작되기 전에 송신자와 수신자 사이에 전용 회선이 설정됨. 이 회선은 통신이 종료될 때까지 독점적으로 사용되며, 다른 사용자와 공유되지 않음
• 연결된 물리적 링크들로 구성:
Circuit은 TX부터 RX까지 여러 개의 물리적 링크(네트워크의 각 구간)로 구성됨. 각 구간마다 circuit이 확보되어 전체 경로가 하나의 연결로 형성됨
• 빠른 전송 속도:
회선이 한 번 설정되면, 전용 경로를 사용하므로 전송 중에 지연이나 혼잡 없이 빠른 통신이 가능
• 데이터의 패킷 단위 전송:
전송할 데이터가 작은 단위인 패킷으로 나누어져 전송됨. 각 패킷에는 송신지와 수신지 정보가 포함되어 있으며, 독립적으로 네트워크를 통해 이동
• 노드 간 패킷 전달:
패킷은 출발지에서 목적지까지 여러 중간 노드를 거쳐 전달.
각 노드는 패킷의 목적지를 확인하고 다음 목적지로 전달하는 역할
• 유연한 경로 선택:
패킷은 항상 동일한 경로를 따라갈 필요 없이, 네트워크 상황
(혼잡도, 링크 장애) 에 따라 다양한 경로로 전송될 수 있음
• 터미널 간 통신에 최적화:
컴퓨터와 컴퓨터 또는 단말기 간의 통신에 주로 사용되며,
인터넷과 같은 데이터 네트워크에서 일반적으로 적용됨
: 인터넷은 단일한 중앙 네트워크가 아니라,
여러 개의 독립된 네트워크들이 서로 연결되어 형성
• 호스트(Hosts):
: 컴퓨터, 스마트폰, 서버 등 모든 인터넷에 연결된 기기
• Access ISP (Internet Service Providers):
: 호스트들은 직접 인터넷에 연결되는 것이 아니라, 접근 ISP를 통해 인터넷에 접속
ex. 일반 가정용 인터넷(Residential ISP),
기업, 대학, 상업용 네트워크(Enterprise ISP)
→ 각 접근 ISP는 서로 독립적으로 운영되지만,
모든 호스트들이 서로 패킷을 주고받을 수 있도록 하기 위해
ISP 간의 상호 연결(interconnection)이 필요
• 모든 access ISP를 서로 직접 연결
연결 수 O(N²)
→ 비효율적
• 모든 access ISP를 하나의 글로벌 ISP에 연결
단순하고 확장 가능
but, ISP 간에 Customer-Provider 관계가 성립되어야 함
ex. access ISP가 global ISP에게 비용을 지불하고 트래픽을 전달받음
• 여러 경쟁 ISP가 생김
: 인터넷 교환 지점으로, 여러 ISP들이 서로 직접 연결되는 장소
→ IXP를 통해 데이터가 더 빠르고 저렴하게 오갈 수 있음
(기존엔 글로벌 ISP 거쳐 가던 트래픽을 바로 연결해줌)
: 두 ISP가 서로 직접 연결해서 트래픽을 교환하는 1:1 연결
• 지역 ISP(Regional ISP) 등장
Access net → Regional ISP → 대형 ISP (ISP A, ISP B) 의
계층적 구조로 연결됨
regional ISP도 IXP를 통해 다른 ISP들과 연결됨
• Content Provider Networks
: Google, Facebook, Netflix 같은 콘텐츠 제공자가 자기 네트워크를 직접 구축
Content Provider가 자체 네트워크를 통해 사용자와 가까운 지점에 데이터를 저장하거나 전달하면, 전송 지연을 줄이고 빠른 서비스를 제공 가능
중간의 글로벌 ISP를 거치지 않고 직접 연결함으로써, 데이터 전송 비용을 절감
• 인터넷의 전체 구조
Tier-1 ISP (상위 ISP):
Content Provider (ex. Google):
IXP (Internet Exchange Point):
Regional ISP (지역 ISP):
Access ISP (접근 ISP):
: 네트워크를 계층으로 나누는 이유
복잡한 시스템을 여러 계층으로 나누면,
각 계층이 특정한 역할과 기능만 담당하게 되어, 전체 구조를 쉽게 파악할 수 있음
ex. 하위 계층 :어떻게 데이터를 주고받는지,
상위 계층: 어떤 데이터를 보내고 받을지
: 각 계층은 독립적인 모듈처럼 동작.
한 계층의 내부 구현 방식이 변경되더라도, 상위 계층은 동일한 인터페이스 (약속된 프로토콜) 만 사용하면 되기 때문에 전체 시스템에 영향을 미치지 않음.
유지보수 용이
ex. Wi-Fi 기술이 바뀌어도(물리 계층의 변경) 애플리케이션(상위 계층)은 그대로 작동 가능
각 계층별로 표준화된 프로토콜이 존재하면, 서로 다른 제조업체나 개발자가 만든 장비와 소프트웨어도 같은 방식으로 통신 가능
프로토콜*: 계층에서 작동하는 구체적인 통신 규칙
• Application 계층
: 네트워크 애플리케이션이 동작하는 계층
사용자에게 직접 서비스를 제공하며, 이메일, 웹 브라우징, 파일 전송 등 다양한 애플리케이션 기능을 지원
ex. IMAP, SMTP, HTTP
• Transport 계층
: 두 호스트의 프로세스 간 데이터 전송을 담당
데이터의 신뢰성, 순서 보장, 오류 검출 및 수정 등의 기능을 제공하여 상위 애플리케이션 계층이 안정적인 통신을 할 수 있게 도와줌
ex. TCP, UDP
• Network 계층
: 패킷을 출발지에서 목적지까지 라우팅하는 역할
여러 네트워크 간의 연결과 경로 선택(라우팅) 기능을 제공하여 데이터가 최종 목적지에 도달할 수 있도록 함
ex. IP, routing protocols
• Link 계층
: 인접한 네트워크 장비(동일한 LAN 내의 컴퓨터나 스위치) 사이에서 데이터 전송을 담당
ex. Ethernet, 802.11 (WiFi), PPP
• Physical 계층
: 데이터를 전기적, 광학적, 전파 형태의 비트 단위로 전송하는 계층 (가장 하위)
: 데이터를 전송할 때, 각 네트워크 계층이 자신만의 Header를 붙여서 데이터를 감싸는 것
IP/MAC
IP 주소 = 목적지 주소 (끝까지 유지됨)
MAC 주소 = 한 구간(link) 마다 바뀜
Switch (스위치)
Layer 2 장비 (데이터 링크 계층만 인식)
프레임 수준(MAC 주소)으로만 판단해서 목적지로 전달
IP(3)나 TCP(4) 내용은 보지 않음
Router (라우터)
: Layer 3 장비 (네트워크 계층까지 인식)
MAC 헤더(Hl)(2)는 제거하고 새로운 링크 헤더를 붙임
→ MAC은 "지금 누구에게 넘겨줘야 하는지" 를 나타냄
IP 주소(3) 기반으로 다음 hop 결정
hop* : 네트워크에서 패킷이 라우터를 한 번 통과하는 것
[Application Layer]
↓
[Transport Layer] → TCP Header + Message = Segment
↓
[Network Layer] → IP Header + Segment = Packet (Datagram)
↓
[Data Link Layer] → Ethernet Header + Packet = Frame
↓
[Physical Layer] → Frame이 비트로 변환되어 전송
ARPANET 연구의 결과, TCP/IP 프로토콜이 개발
: 인터넷에서 사용되는 모든 계층의 프로토콜을 포함하는 통신 체계
(단순히 3,4계층 프로토콜 자체 말하는 거 x)
TCP/IP의 구성 요소들(TCP, IP, DNS, HTTP 등)은 국제 표준으로 문서화
SMTP: 이메일 전송
FTP: 파일 전송
SSH: 보안 접속
HTTP: 웹 통신
TCP: 연결형, 신뢰성 보장 (순서, 재전송 등)
UDP: 비연결형, 빠르지만 신뢰성 없음
IPv4 / IPv6: IP 주소 부여 및 라우팅
ICMP: 진단용 (ex. ping)
OSPF / RSVP: 라우팅 프로토콜
ARP: IP ↔ MAC 주소 매핑
(실제로는 링크 계층에 가까움, Layer 2.5로도 불림)
Ethernet: 유선 LAN
WiFi (802.11): 무선 LAN
ATM, Frame Relay: WAN 기술
Twisted Pair : 이더넷 케이블
Optical Fiber : 광케이블
Satellite,
Terrestrial Microwave : 지상 마이크로파 통신MAC 주소 등을 사용
컴퓨터와 네트워크 장비 사이의 물리적인(하드웨어적) 연결 부분을 다룸
하드웨어 수준 문제 :
전송 매체의 특성
transmission medium의 종류
ex.구리선, 광섬유, 공기 중 무선파
전송 가능한 거리, 감쇠(신호 약해짐), 간섭 발생 여부
신호의 성질
디지털 신호 or 아날로그 신호
펄스 폭, 진폭, 주파수 정보
Data rates
데이터 전송 속도
같은 네트워크(ex. LAN, Wi-Fi)에 연결된 두 장비(호스트) 간에
데이터를 전달하고, 경로를 잡는 일 (주소 지정 및 프레임 전달)을 담당
같은 네트워크 : 라우터를 통과하지 않고, MAC 주소로 직접 통신 가능한 환경
하나의 네트워크(LAN) 내부가 아니라,
여러 네트워크 간(IP 네트워크들 간) 통신을 가능하게 함
IP를 사용해 라우팅 기능을 제공
→ 전 세계 어디든 IP 만 있으면 통신 가능
Internet Layer는 패킷을 보내는 호스트와 라우터 모두에 구현됨
신뢰성 있는 방식: 오류 검사, 재전송, 순서 보장, 흐름 제어 등 (→ TCP)
단순한 전송: 그냥 보냄. 중간에 유실되어도 책임 안 짐 (→ UDP)
TCP (Transmission Control Protocol)
: 가장 많이 쓰이는 protocol
각 애플리케이션(서비스)의 특성에 맞는 별도의 프로토콜이 필요
서비스에 맞는 프로토콜이 담긴 계층
TCP/IP 주소는 두 단계로 나뉘어 있음:
호스트(컴퓨터 자체)를 구분하는 주소 → IP 주소
IP는 전 세계적으로 고유
호스트 내의 프로그램(프로세스)을 구분하는 주소 → 포트 번호
포트 번호는 호스트 내에서만 고유
ex.
IP: 203.0.113.25
포트: 80 (웹서버)
→ 203.0.113.25:80
앱이 데이터를 만듦 → User data
TCP가 포트 정보 등을 붙임 → TCP header + data
IP가 목적지 주소를 붙임 → IP header + TCP + data
이더넷이 MAC주소를 붙임 → Ethernet + IP + TCP + data
Network-level packet (frame)
: 케이블이나 무선에서 흐르는 최종 패킷
[Network header][IP header][TCP header][User data]
TCP는 reliable connection을 제공
TCP segment = [TCP header] + [데이터(payload)]
: TCP가 보내는 기본 데이터 단위
TCP는 연결이 유지되는 동안 상대방과 주고받는 모든 세그먼트의 상태를 추적
Window : 수신 측의 버퍼 크기(흐름 제어용)
Flags : flow control
UDP가 보장하지 않는 것들:
간단한 방식으로 데이터를 전송하여 헤더가 작고, 처리도 단순
→ 속도가 빠르므로 실시간성이 중요한 곳 사용
ex. 영상 스트리밍, 음성 통화 (VoIP)
UDP도 오류 감지 기능(checksum)은 있음
→ 데이터가 손상되었는지 정도는 확인 가능
하지만, 손상 시 자동 복구는 안 함, TCP처럼 다시 안 보냄
SNMP (Simple Network Management Protocol; Application Layer) 프로토콜과 함께 쓰임
IHL (4비트) : Internet Header Length, 헤더 길이 (4바이트 단위)
Flags (3비트) : fragment 허용 여부
Time To Live (TTL) : 패킷의 생존 시간 (몇 개의 라우터를 지날 수 있는지 제한)
Protocol : 다음 상위 계층 프로토콜 (ex. TCP는 6, UDP는 17)
Source Address : 송신 IP 주소 (32비트)
Destination Address : 수신 IP 주소 (32비트)
ICMP, IGMP, OSPF, RSVP : Network Layer에서 동작하는 프로토콜