메시지(패킷, 프레임), 계층
OSI 7 Model
- Physical
- Data Link
- Network
- Transport
- Session
- Presentation
- Application
TCP/IP 계층
계층 | 이름 | 메시지 형태 | 내용 |
---|---|---|---|
1 | Phisical | Bits | Bits |
2 | Data Link | Ethernet Frame | Ethernet 주소 |
3 | Network | IP packet, Datagram | IP 주소 |
4 | Transport | TCP Segment, UDP Datagram | Port 번호 |
5 | Application | HTTP 메시지, Email 메시지 | URL, Email 주소 |
Protocol Suite
- HTTP - TCP - IP - ARP
아날로그 신호 - 사인 함수
$$ y(t) = A sin(2\pi ft + \varphi) $$
- A = 크기(amplitude)
- f = 주파수(frequency)
- $\varphi$ = 위상(phase)
아날로그 신호 - 용어
- 주기(Period) : 신호가 반복되는 시간
- 주파수 (Frequency) : 시간당 반복되는 신호 개수
- 대역폭 (Bandwidth) : 아날로그 -> 주파수 범위 (Hz), 디지털 -> 비트 전송률(bps)
- 관련 함수
1# start에서 end까지 step 증가 2numpy.arange(start, stop, step) 3# start에서 end까지 step개로 나눔 4numpy.linspace(start, stop, step)
Analog -> Digital
PCM (Pulse-code modulation, 펄스 부호 변조)
아날로그 신호의 디지털 표현, 디지털 비디오의 표준
- 과정 : Sampling(표본화), Quantization(양자화), Encoding(부호화)
Nyquist sampling theorem
신호에 포함된 가장 높은 진동수의 2배에 해당하는 빈도로 일정하게 샘플링하면 원래의 신호로 복원할 수 있다.
Nyquist bit rate - 무잡음 채널
$$ Bit Rate = 2 \times bandwidth \times log_2(L)$$
- bandwidth : 대역폭
- L : 신호 레벨
- Bit rate : 초당비트수
섀넌 용량 (Shannon Capacity) - 잡음채널
$$ Capacity = bandwidth \times log_2(1+SNR) $$
- SNR은 신호에 대한 잡음 비율
- Capacity : 채널 용량 (bps)
- SNR이 데시벨(dB)로 주어지는 경우 $$ SNR = 10^{\frac{SNR(dB)}{10}} $$
Digital -> Analog
ASK (Amplitude Shift Keying)
- 디지털 데이터를 신호 크기로 전송
FSK (Frequency Shift Keying)
- 디지털 데이터를 주파수로 전송
PSK (Phase Shift Keying)
- 디지털 데이터를 위상으로 전송
QAM (Quadrature Amplitude Modulation)
- 디지털 데이터를 크기와 각도로 전송
Fourier Transfer
- 시간이나 공간에 대한 함수를 주파수 성분으로 분해하는 변환
Reed-Solomon(RS) Code
- n = k(원래 데이터) + n-k(오류 정정 코드)
- (n-k)/2 = t, t개 이하 symbol 오류 정정 가능
Line coding
Unipolar NRZ (Non return to Zero)
- 0 or 1
Polar NRZ-L
- -1 or 1
Polar NRZ-I
- -1 or 1, 1이 나오면 transition
RZ (Return to Zero)
- 0 or 5
Manchester
- 신호 변화 -> 신호의 동기화
Differential Manchester
- Manchester 반대
Cable
전송 매체 (Transmission media)
- Guided(wired)
- Twisted-pair cable
- Coaxial cable
- Fiber-optic cable
- Unguided(wireless)
- Radio wave
- Microwave
- Infrared
Ethernet cable (이더넷 케이블)
- Twisted-pair cable의 한 종류
- 심선을 꼬아놓는 이유 : 노이즈 방지
- 이더넷 전송 프로토콜의 매체 접근 방식 = CSMA/CD
- 전화선, 이더넷에 활용
Coaxial Cable (동축 케이블)
- TV, 이더넷에 활용
- 내부의 단일 구리선, 외부 도체로 구성
- 고주파의 신호를 멀리 보낼 수 있다
Fiber-optic cable (광 케이블)
- 모드 구분
- Single mode, Multi mode > Step index, Graded index
- Single mode : 빠르고, 멀리 보낼 수 있다.
- Multi mode : 여러 경로로 전달, 가격이 싸고 취급이 용이하다
무선 통신 기술
- 전파 : CDMA, LTE, 5G, Bluetooth, Wifi, Zigbee(직비, 저가 저전력 네트워크의 표준)
- 빛 : Li-fi
- 소리 : Pied-Piper
다중화 기술
Multiplexing
- 선 1개에 여러가지 신호를 전송하는 기술
- 송신자 -> 신호 -> MUX -> 1 link, n channels -> DEMUX -> 수신자
- 종류
- FDM, WDM, TDM
FDM (주파수분할다중화: Frequency-division multiplexing)
- 아날로그 기술
- 여러 개의 신호를 각각의 반송 주파수에 실어보내는(변조) 기술
TDM(시간분할다중화)
- 디지털 기술
- 시간을 전송 단말기에 나누어 주는것
-
전송 단위
- input slot의 duration
- output slot의 duration
- output bit rate
- output frame rate = 초당 프레임 수
- frame duration = 1 / frame rate
-
활용 : T1, T3…
T1 다중화
- 1.544 Mbps로 음성 24채널 (전화회선)을 하나로 묶는 다중화 전송
Switching
회선 교환망 (Circuit-switched Network)
- 회선의 설정, 데이터의 이동, 회선의 단절 3가지로 이루어진다
- 공간 분할 방식, 시분할 방식 존재
- 회선이 단절되기 전까지는 독점이기 때문에 안정적이다
- 지연시간이 짧다
패킷 교환망 (Packet-switched Network)
- 고정된 경로가 미리 설정되지 않는다
-
데이터그램 방식, 가상 회선 방식 존재
-
효율적(회선 다중화)이고 신뢰도가 높다(우회 가능)
-
대기지연시간(큐잉) : 교환기(라우터)에서 메모리에 저장된 후 목적지 주소 검색
-
통신에서 4가지 지연시간 : 전파시간, 전송시간, 큐잉시간, 처리시간
패킷 교환기 (라우터)
- web 또는 ssh로 접속 가능
- 패킷 교환의 특징
- 다중화: 패킷을 여러 경로로 경유
- 채널 : 가상 회선 혹은 데이터그램 교환 채널을 사용
- 경로 선택 : 패킷마다 최적의 경로 설정
- 순서 제어 : 패킷의 순서를 정한다 (순서가 다를 수 있기 때문)
- 트래픽 제어 : 전송 속도 및 흐름을 제어
- 에러 제어 : 에러를 탐지하고 재전송
관련 명령어
1# 라우팅 테이블, 연결된 포트번호 확인
2netstat -rn
3# 활성화된 네트워크 인터페이스의 세부사항 표시
4ifconfig
5# NAT테이블에서 vn이라는 이름의 체인에 대한 규칙 조회
6iptables -t nat -L -vn
7
8# Router view 서비스를 제공하는 호스트에 접속
9telnet route-views.routeviews.org
10# 현재 장비에서 사용가능 한 모든 인터페이스의 요약 정보 출력
11show interface summary
12# BGP 프로토콜을 사용하는 장비의 요약 정보 출력
13show ip bgp summary
14# 외국 라우터에서 충남대까지 가능한 길
15show ip bgp 168.188.0.0/16
- NAT (Network Address Translation : 네트워크 주소 변환)
IP 패킷에있는 출발지 및 목적지의 IP주소와 TCP/UDP 포트 숫자 등을 바꿔 재기록하면서 네트워크 트래픽을 주고 받게하는 기술
- BGP (Border Gateway Protocol)
서로 다른 조직의 네트워크를 연결할 때 사용하는 라우팅 프로토콜
통신 속도
처리율 (Throughput)
A -> B로 전송하는 단위 시간당 디지털 전송률
1# 서버 networks.cnu.ac.kr:8080 으로 시험 패킷을 전송
2iperf3 -c networks.cnu.ac.kr -p 8080
- 각종 전송 비트 전송률 계산 (강의 자료 참고)
통신 지연 시간
- d(nodal) : nodal delay (전체 노드 지연)
d(nodal) = d(proc) + d(queue) + d(trans) + d(prop)
- d(proc) : nodal processing delay (노드 처리 지연)
- 패킷 헤더를 조사하고 그 패킷을 어디로 보낼지 결정하는 시간
- d(queue) : queueing delay (큐잉 지연)
- 패킷이 큐에서 링크로 전송되기를 기다리는 시간
- d(trans) : transmission delay (전송 지연)
- 패킷의 모든 비트를 링크로 밀어내는 데 필요한 시간
- d(prop) : propagation delay (전달 지연/전파 지연)
- 비트가 라우터 A 상에서의 링크에서 라우터 B까지의 전파에 필요한 시간
-
테스트 명령어
1ping www.google.com 2traceroute www.eurecom.fr
Decibel, dB
- 신호 세기의 측정 단위 $$ L_b = 10log {B \over A} |dB| $$
- 두 신호(A, B) 값에 대한 상대적 크기 차이
전력, 무선신호
신호를 방해하는 요소
- 약화 (attenuation)
- 왜곡 (distortion)
- 잡음 (noise) (SNR:Signal-to-noise ratio : 신호 대 잡음 비율)
- 지터
지연값이 다양하게 달라지는 것 (들쭉날쭉)
데이터 링크 계층
- 데이터 링크 계층
- 물리 계층을 이용하여 전송
- 장비 : 브리지, L2 switch(ethernet address)
- 서브 계층 2개
- 논리적 링크 제어
- 매체 접근 제어
- Mac Address
- Network interface card(NIC) identifier
- 대부분 고정, 일부는 가변
- 48비트 6바이트 (MAC-48)
- IP Address
- IPv4 : 32bit (4bytes)
- IPv6 : 128bit (16bytes)
- Class
구분 시작(2진수) 시작 (10진수) 구성 host 범위 A 0 1~126 network 7, host 24 $2^7-1$ B 10 128.0~191.255 network 14, host 16 $2^{14}$ C 110 192.0.0~223.255.255 network 21, host 8 $2^ {22}$ - 예) 192.168.1.132, subnet mask = 255.255.255.192
- 해당 주소
192.168.1.128 (132 & 192)
- 네트워크 주소와, 브로드캐스트 제외한 호스트 개수
$2^6-2 = 62개$
- 해당 주소
- 예) 192.168.1.132, subnet mask = 255.255.255.192
- CIDR (Classless Inter-Domain Routing)
- 예) 143.7.65.203/24
- 주소 공간
앞에서 24비트 빼고 사용 가능 : 143.7.65.0 ~ 143.7.65.255
- 서브넷 마스크
앞 24자리가 1이다 : 255.255.255.0
- 브로드캐스트주소
주소공간의 마지막 주소 : 143.7.65.255
- 주소 공간
- 예) 143.7.65.203/24
ARP, PPP
ARP (Address Resolution Protocol)
-
IP 주소 (브로드캐스트 주소) -> MAC 주소 변환해주는 L2 프로토콜
-
Reverse ARP : MAC 주소 -> IP 주소
-
Gratuitous ARP : 자신의 IP 주소를 알리기 위해 사용
-
ARP 테이블
- IP 주소, MAC 주소, TTL(Time To Live)
- TTL : ARP 테이블에 있는 주소의 유효기간
- ARP 테이블에 없는 경우, ARP Request를 보낸다
- Proxy ARP : 다른 네트워크의 호스트의 IP 주소를 알려주는 라우터 (주로 공유기)
- ARP Spoofing : ARP 테이블을 위조하여 공격하는 기법
PPP (Point-to-Point Protocol)
-
컴퓨터/라우터 간 직접 연결하는 경우 필요한 L2 프로토콜
-
PPP 기능 : 인증, 전송, 암호화, 데이터 압축
-
세부 프로토콜 : LCP, NCP
-
NCP (Network Control Protocol)
- IP, IPX, AppleTalk 등의 프로토콜을 위한 프로토콜
- PPP 프레임의 프로토콜 필드에 사용됨
PPTP (Point-to-Point Tunneling Protocol)
- PPP를 이용한 VPN (Virtual Private Network) 구현 프로토콜
- Tunneling packets : 패킷 안에 패킷을 넣어서 전송하는 방법
- 공유기의 기능 중 하나
NAT, 공유기
공유기 (Network Address Translator)
-
IP 주소 변환 : public IP <-> private IP
-
NAT가 사용하는 사설 IP 주소
RFC1918 name CIDR Host size Mask bits Classful description 24-bit block 10.0.0.0/8 24 bits 8 bits single class A network 20-bit block 172.16.0.0/12 20 bits 12 bits 16 contiguous class B networks 16-bit block 192.168.0.0/16 16 bits 16 bits 256 contiguous class C networks -
주소번역
- IP주소, Port번호 둘다 변한다
-
NAT의 사용 : IP 공유기, 테더링, Docker, VirtualBox, 이동통신망, Cloud
공유기 = 프로토콜의 집합
- DNS Server (L7)
- IP Router + NAT + DHCP (L3)
- Bridge, Ethernet Switch, Ethernet, Wifi (L2)
- Modem (L1)
비트오류 탐지 및 수정
용어
- 데이터 워드 : 원래 데이터 k bits
- 코드워드 : 데이터 워드 + r bits의 오류탐지 코드
- 비신뢰성 채널 (오류가 발생 가능) 이라고 가정
- 해밍 거리 (Hamming distance) : 두 코드워드의 비트가 다른 개수
- 최소 해밍 거리 : 코드워드 간의 최소 해밍 거리
코드워드 비트 에러 탐지
- s개의 오류를 탐지할 수 있다. $$ d_{min} = s + 1$$
- t개의 오류를 수정할 수 있다. $$ d_{min} = 2t + 1$$
오류를 탐지하는 방법
Parity bit
- Even or Odd, 오류 탐지 능력
CRC (Cyclic Redundancy Check)
- 데이터 워드를 x로 나눈 나머지를 코드워드에 추가
Checksum
- 데이터 워드의 모든 비트를 더한 값의 보수를 코드워드에 추가
- 쓰이는 곳 : IP헤더, UDP 헤더, TCP헤더
오류를 탐지 빛 복구하는 방법
FEC
Reed Solomon Code
- (n-k)/2 = t개 이하 symbol 오류 정정 가능 (k는 데이터워드 길이, n은 코드 워드 길이)
오류제어 : 재전송
Stop-and-Wait ARQ
- 전송 후, ACK를 받아야 다음 패킷을 전송
Go-Back-N ARQ
- N개의 패킷을 전송하고, ACK를 받으면 다음 N개를 전송
- 패킷 1,2,3,4,5 중 3이 분실되면 4,5에 대한 ACK도 2
- -> 순서가 틀리면 뒤의 것은 다 버린다 -> 비효율적
- 문제가 생기는 경우 : ACK가 모두 분실되는 경우
Selective Repeat ARQ
- 패킷 1,2,3,4,5 중 3이 분실되면 4,5에 대한 ACK는 각각 4, 5
- -> 순서가 틀려도 뒤의 것은 버퍼에 저장
- 문제가 생기는 경우 : ACK가 모두 분실되는 경우
윈도우 크기
ARQ | 송신자 윈도우 크기 | 수신자 |
---|---|---|
SW | 0 or 1 | 1 |
GN | $2^m-1$ | 1 |
SR | $2^{m-1}$ | $2^{m-1}$ |
RTT (Round Trip Time)
$$ U_{sender} = {L/R \over RTT+L/R} $$
이더넷과 랜
이더넷
- 최소크기 : 64bytes
- 비트 전파 속도 : 2.8$\mu$s
- 전송 지연시간 : 64byte / 10Mbps = 51.2$\mu$s
- 최대 거리 : 2*10^8m/s * 51.2/2 = 5.12km
- 2500m 이내의 충돌을 감지하기위해서 64byte로 설계 (2배 버퍼)
Mac주소
- 6byte (48bit)
표준 이더넷 MAC
- IEEE 802.3 (CSMA/CD)
- 1-persistent : 신호 감지 프로토콜
- 전파지연 = 전송거리 / 전파속도
- 전송지연 = 패킷크기 / 대역폭
- a = 전파지연 / 전송지연
- Efficiency $$ 1 \over (1 + 6.4 \times a) $$
현대 이더넷
- 스위치, 이더넷 : 충돌X, CSMA/CD -> CSMA/CA
- 가상 랜
- 에러제어 : GE : FEC, 10GE : ITU G.975 Reed Solomon Code, 재전송X
Virtual LAN (VLAN)
- 물리적으로 떨어진 LAN을 같은 LAN으로 구성하는 기술
- VirtualBox, Docker에서 활용
LAN에서의 사이클 문제
- 이더넷은 TTL필드가 없음 -> 루프 발생시 트래픽이 폭주
- Spanning Tree Protocol (STP) 사용
MAC - CSMA/CD (IEEE 802.3)
매체접근제어 기술
- 여러 송신자 - 여러 수신자에서 공유 매체를 사용할 때, 충돌을 방지하기 위한 기술
Aloha
- 그냥 보낸다 -> 충돌이 발생하면 재전송
- Slotter aloha : 슬롯을 나눠서 보낸다
- 이후에 이더넷으로 발전하는데 기여
- G = 프레임 1개 전송하는데 걸리는 시간 (ms)
- slotted aloha의 처리율 $$ S = G \times e^{-G} $$
- aloha의 처리율 $$ S = G \times e^{-2G} $$
CSMA/CD (Carrier Sense Multiple Access with Collision Detection)
- 전송 프레임 준비
- 매체 사용이 가능할때까지 대기 (carrier sensing)
- 전송 시작 (multiple access)
- 충돌이 일어났다면 충돌 탐지 절차로 이동 (collision detection
- 재전송 카운터를 초기화하고 프레임 전송 종료
- 충돌 발생 시
- 잼 신호를 모두에게 전달되도록 최소 패킷 전송 시간까지 계속 전송
- 재전송 카운터를 증가시킨다
- 임의의 시간 동안 대기 (backoff) (충돌할때마다 2배씩 증가)
현대의 Ethernet
- 스위치(신호가 지나는 길을 나눈다) 환경 : 충돌X
- Full Duplex
- CSMA/CD 사용 X
Carrier Sensing
- Nonpersistent : 매체가 사용중이면, 임의의 시간 후 다시 센싱, 사용중이지 않으면 바로 전송
- Persistent : 센싱을 지속적으로, 놀고있어도 바로 전송하지 않는다
- p-persistent : p확률로 보내기 (1-persistent : 바로 보내기)
CSMA/CA
CSMA/CD -> 무선에서는 적용하기 어렵다
- 동시 송수신은 많은 에너지를 소모
- Hidden station problem 발생 가능 (무선에서만 발생)
- 신호 감쇄 -> 충돌 감지가 어려움
CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)
- Idle 상태에서 IFS(Inter Frame Space)만큼 대기
- IFS 기다린 뒤에도 idle 상태라면 Contention Window 내 slot time만큼 대기
- RTS/CTS 도입 (현재 메시지를 보내도 되는지 확인) -> Hidden station problem 해결
- NAV (Network Allocation Vector)
매체를 얼마나 사용할지를 알려주는 값 -> 충돌회피를 돕는다
- Exposed Station Problem
다른 노드 쌍의 전송으로 인해 전송을 하지 못하는 상황
Wifi
Wifi
IEEE 802.11 표준에 근거한 Wireless LAN
-
AlohaNet -> Ethernet -> Wifi
-
구성방법
- AP (Access Point) 이용
- Ad-hoc (Peer-to-Peer) 방식
-
인증 방식 : WPA, WPA2, EAP
-
MAC 기술 : CSMA/CA, RTS/CTS, NAV
-
프레임 : IEEE 802.11
IEEE 802.11 프레임
FC | D | Addr1 | Addr2 | Addr3 | SC | Addr4 | Frame body | CRC |
---|
-
FC (Frame Control)
Protocol version Type Subtype To DS From DS More frag Retry Pwr mgt More Data WEP Rsvd -
Subtype : 1011 (RTS), 1100 (CTS), 1101 (ACK)
-
AP가 개입되는 환경 등 여러 상황을 고려 -> 주소 필드가 4개
Wifi 응용 기술
- MIMO (Multiple Input Multiple Output) : 안테나 개수 증가 -> 성능 증가
전화망, 케이블망, 광테워크
전화망
- SS7(Signaling System 7)
전화망의 제어를 위한 프로토콜
- DSL
전화망크 이용한 고속 통신 기술
케이블망
- HFC
광케이블 + 동축케이블
광네트워크
-
SONET (Synchronous Optical Network)
광케이블을 이용한 네트워크
-
ATM (Asynchronous Transfer Mode)
가상회선 이용 비동기 통신 기술 : 회선 + 패킷 교환망 기술
패킷(셀) : 고정 53Byte
이동통신
블루투스
- 2.4Ghz 무선 채널 사용
- FHSS
- RTLS (Real Time Location System) : 실시간 위치 추적 시스템
Zigbee
- 소형, 저전력 무선 네트워크를 위한 기술
이동통신망
- 코어네트워크 + 액세스 네트워크
3G 네트워크
- GGSN (Gateway GPRS Support Node)
GPRS 네트워크와 외부 네트워크를 연결하는 라우터