
통신 모델 : sender, receiver가 존재하고 message와 feedback을 주고 받음
Network edge : 디바이스 같은 것들. 네트워크의 종단에 있음
Network core : edge끼리 연결을 제공해주는 것. 중간에서 데이터 전달. 패킷/서킷 스위칭, 인터넷 구조
end device가 네트워크에 연결되기 위해서는 access network에 접근해야함
Core network : access network를 연결시켜주는 라우터들의 집합.
성능 : loss 손실, delay 지연, throuhput 처리량 등을 평가

매우 많은 컴퓨팅 device들이 연결되어 있음
패킷 스위칭 : 패킷(데이터의 chunks → 덩어리, 조각)을 전송
Communication links : fiber, copper, radio, satelite 등..
네트워크 : device, routers, links들의 집합 → 조직에 의해 관리됨
여기서 device 란
인터넷 냉장고, AR 장치, 인터넷 전화 등… 종단에 볼 수 있는 많은 장치들을 포함

인터넷 : 네트워크의 네트워크
프로토콜은 어디에나 존재
internet standard
RFC : Request for Comments인터넷의 인프라구조는 어플리케이션에 서비스를 제공 하는 구조
또한 프로그래밍 인터페이스를 제공하는 역할도 함
프로토콜의 3요소 : Syntax, Semantic, Timing
프로토콜은 format 구조, 전체 네트워크에서 메세지를 보내고 받은 순서, 메세지를 보내거나 받았을때에 대한 반응에 대한 것을 정의함

왼쪽은 사람의 프로토콜, 오른쪽은 컴퓨터 네트워크 프로토콜

OSI 7계층 : 아래로 갈수록 물리적, 위로 갈수록 사용자에 가까워짐
physical layer
데이터 링크 layer
→ 1,2 : 네트워크 인터페이스 layer
네트워크 Layer : IP, switching 역할
transport layer : TCP는 reliablity이 있고, UDP는 reliablity가 없음
session layer
presentation layer
application layer
→ 5,6,7 : applicatoin layer
TCP/IP updated 5계층 : application, transport, network, link, physical
TCP/IP original 4계층 : application, transport, internet, network interface layer
네트워크 코어인 라우터는 3계층까지만 가짐
네트워크 edge는 7계층을 모두 가짐
물리적 흐름 : 물리적인 선을 따라(라우터들을 거쳐서) 데이터가 전달되는 것으로 보임
논리적 흐름 : 사실 종단의 같은 계층끼리 통신

Network edge
Access network, physical media
Network core
어떻게 edge router과 end systems가 연결되는지?
digital subscriber line (DSL)

집에서 사용하는 모델
central office의 DSLAM과 독자적으로 연결된 선을 통해 voice, data 둘다 전송됨 → dedicated access
다른 주파수로 전송되므로 splitter에서 음성은 전화기로, 데이터는 DSL modem으로 보냄
업로드와 다운로드의 전송률이 다르다
Cable-based access


HFC(hyber fiber coax : 광 케이블 + 동축 케이블) → 업로드와 다운로드 속도가 다르다 (다운로드가 좀 더 빠름)
하나의 케이블을 공유하여 사용 → shared access
FDM(frequency division multiplexing : 주파수 분할 다중화) : 다른 주파수에서 각각 다른 채널을 전송 받음 → 즉, 티비, 전화 등을 섞어서 보내도 분리해서 받을 수 있음
Home networks

공유기 : 유선이더넷, 와이파이(무선랜), DSL modem 등… 다양한 기능 가능
NAT : 한 집에 하나의 IP주소를 할당하고, 그 안의 기기들끼리도 임의의 IP주소를 할당해 안에서만 쓰도록 함
firewall : 보안
Wireless acces network
무선은 항상 shared access
enterprise network

기업, 회사 등에서 사용
이더넷 스위치는 2계층, 라우터는 3계층 주소를 가짐 → 네트워크가 다른 대역을 넘어갈 때 사용
스위치와 라우터의 결합을 통해 유선과 무선이 결합된 기술
Host : 데이터의 패킷을 전송 → 패킷 : 전송하는 데이터를 일정 크기로 자른 것. 계층마다 부르는 이름이 다름
7계층에서 application message를 받음 : 이 때는 데이터 사이즈 고려 X
→ 각 L bit의 패킷으로 더 작게 나눔 : 망을 거치려면 더 작게 만들어야 함
→ 전송률 R인 access network를 통해 패킷 전송
전송 delay = L(bits) / R(bits/sec)
bit : transmitter / receiver 쌍 간에 비트 단위로 전송
physical link : transmitter / receiver 사이에 있는 것
Guided media 유선 : 신호가 고체의 미디어를 통해 전파 → ex) copper 구리, fiber 광섬유, coax 동축케이블
Unguided media 무선 : 신호가 자유롭게 전파됨 → ex) radio, microwave
Twisted pair(TP) : 두개의 절연된 구리 선을 꼬은 것
꼬는 정도에 따라 속도 달라짐
Coaxial cable 동축케이블
두개의 동심형의 구리 conductor
양방향 통신 가능
Fiber optic cable 광 케이블
유리 섬유로 비트를 표현하는 빛을 전달함
속도 빠르다 → TP < Coaxial < Fiber : 속도, 범위 증가
에러율이 낮음 : Repeater을 좀 더 멀리 두어도 괜찮음 → Repeater : 신호가 멀리가면 감쇠되는데 이를 복구시키는 것
또한 전자기적 noise로 부터 면역

coaxial은 두개의 conductor 모두 구리선
fiber은 빛 반사를 이용
Wireless radio 무선 라디오
신호가 전자기적 스펙트럼을 통해서 옴
물리적인 선 없음
broadcast(아무나 들을 수 있음) + half duplex
unicast : 하나만 보고 통신 / multicast : 내가 원하는 그룹이 받음 / broadcast : 누구나 들을 수 있음
simplex : 단방향 / half duplex : 양방향이나 동시에는 X / full duplex : 양방향. 전화기 같은 것
반사, 장애물(중간의 장애물을 통과못함), 간섭에 의해 영향을 받음
라디오 링크 타입
지상 마이크로파
Wireless LAN 무선랜 - 와이파이
wide area - 셀룰러
satellite - 위성 통신
Network core : 서로 연결된 라우터들의 집합
호스트는 어플리케이션 층에서 받은 message를 packet으로 분해 → 패킷을 라우터들을 통해 목적지까지 타고 타고 전달

Store-and-forward : 모든 패킷은 라우터에 다 저장된 후에 다음으로 전송될 수 있다는 원칙. 데이터 받으면서 동시에 전송 불가
Transmission delay : L/R초의 전송하는데 걸리는 시간
End-end delay : 시작점에서 목적지까지의 전체 딜레이
예를 들어 L = 10kbits, R = 100mbps일때 one hop transmission delay는 0.1msec

Packet queuing and loss : Store and forward 이므로 패킷이 들어오면 일단 큐에 저장되고 output 링크로 갈 수 있을때까지 대기
만약 입력 링크로 들어오는 속도 > 나가는 속도 : 큐가 다 차서 loss가 생길 수 도 있음

Forwarding : local action
인풋 링크로 받은 패킷을 적절한 아웃풋 링크로 보내는것
이때 local forwarding table을 보고 어디로 보낼지 판단
Routing : global action
라우터에 들어오는 패킷의 헤더에는 목적지 주소가 있음
패킷의 경로를 결정. 라우팅 알고리즘 → local forwarding table을 만듦
source와 destination 사이의 경로를 지정하여 일정한 전송률 보장
예약, 전용으로 할당, 중간에 다른 애가 쓸수도 없음
dedicated resource : 공유하지 않음
아무도 사용하지 않고 있더라도 빈상태도 유지됨
전통적인 전화망에서의 방식
장점은 신뢰성있다는 것


packet switching은 더 많은 유저가 네트워크를 사용할 수 있도록 해줌
위의 상황에서 패킷 스위칭에서 35명의 유저가 모두 동시에 사용할 확률이 0.0004
→ 통계적 TDM이라고도 함. 패킷 망은 빈 슬롯이 존재하지 않으므로 효율적. 패킷 보낼때만 망을 사용.
→ 서킷 스위칭은 사람이 쓰던 말던간에 항상 할당해주어야함
패킷스위칭은 “bursty” 데이터에 유용 → 데이터를 보내야할 때도 있고 아닐때도 있는 것들
resoure sharing, 더 간단하고 예약이 필요없음
많은 데이터들이 들어와 buffer overflow되면 딜레이나 loss 생길 수 있음 → reliable한 전송, 혼잡 통제가 필요
서킷 스위칭 : queueing delay 완화, 독립적 등의 장점이 있음
host는 ISPs(Internet Service Providers)를 통해 인터넷에 접속 → residential, enterprise, ISPs..
ISPs에 접속했다는것은 서로 연결되었다는것 → 어떤 호스트끼리도 서로에게 패킷을 보낼 수 있는 상태

수많은 access net끼리 직접 연결하려면 너무 많은 연결이 생김
→ 여러 ISP에 연결하여서 해결, ISP끼리 연결해줌
→ 여러 global ISP, regional ISP들은 연결해주는 것이 IXP(Internet eXchange Point)
큰 기업들은 이런식으로 content provider network를 자체적으로 구축

Tier 1 은 국가기관망 또는 대형통신사

패킷은 라우터 버퍼의 큐에 저장됨
링크를 통해 패킷이 들어오는 속도가 나가는 속도보다 빠르면 : packet loss

d_proc : nodal processing
비트 에러 체크
output link를 결정
msec보다도 작은 시간
d_queue : queueing delay
output link로 나갈때 까지 대기하는 시간
라우터의 congesion level에 의존 → 망이 복잡하면 시간이 오래걸림 → 가장 가변적
d_trans : transmission delay = L / R
L : 패킷 길이 (bit)
R : 링크의 전송률 (bps)
d_prop : propagation delay = d / s
d : 물리적인 링크의 길이
s : 전송되는 속도
거속시 개념
transmission delay와 propagation delay는 전혀 다름
Ex)

가정 1. 차의 “propagate”는 100km/hr, toll booth를 통과하는데는 12초가 걸림
Q. 차 10대가 두번째 톨게이트까지 도달하는데 걸리는 시간은?
→ 첫번째 톨게이트에서 12sec * 10 = 2m
→ 즉 62분 걸림
가정 2. 차의 “propagate”sms 1000km/hr, toll booth에서는 1m이 걸림
Q. 첫번째 차는 모든차들이 첫번째 톨게이트를 지나기전에 두번째 톨게이트에 도착하는가?
→ 첫번째 차 2nd booth 도착까지 : 1분(d_queue) + 6분(d_prop) = 7분
→ 모든차 빼려면 10분
→ 즉, 도착 가능

R : 링크의 대역폭 (bps) → 클수록 많은 데이터
L : 패킷 길이 (bit)
a : 평균 패킷 도착 속도
La/R ~ 0 : 평균. queueing delay가 작음
La/R → 1 : 평균. queueing delay가 큼
La/R > 1 : 서비스할 수 있는 양 초과 → loss 발생
Packet loss
큐(버퍼)는 유한한 저장공간임
패킷이 꽉찬 큐에 도착하게된다면 버려짐
이때 lost packet은 재전송을 통해 다시 보내야함
sender에서 receiver로의 전송량

bottleneck link : end-end path에서 throughput은 가장 좁은 관의 영향을 받으므로 그 용량만큼만 보내야하
보통 access network에서 bottleneck이 걸림
네트워크는 많은 pieces들이 존재하여 매우 복잡 → host, routers, media, app, protocol, sw, hw …
네트워크를 layer로 구분하여 다른 기능을 하도록
모듈화는 유지보수를 쉽게하고, 다른 계층에 영향을 주지 않음
application : 네트워크 어플리케이션을 서포트 → IMAP, SMTP, HTTP
transport : 프로세스(실행중인 프로그램) 간 데이터 교환 → TCP(신뢰성 높고, 연결지향), UDP(속도 빠르고, 비연결지향)
network : source에서 destination까지의 routing → IP, routing protocols
link : 이웃(즉 2계층 끼리)끼리의 전송 → 이더넷, 802.11(wifi), PPP
physical : bit를 이용하여 통신

각 계층마다 부르는 이름이 다름
각 계층을 지나면서 헤더가 붙음. 2계층의 frame 형태로 데이터를 바꿀때는 trailer라는 버그를 체크하는 꼬리도 붙임 → 1계층까지가서 한비트씩 전송
→ switch에서 받고 어느 경로로 갈지 결정(link, 2계층 까지만 읽음)
→ router에서 받고 어느 경로로 갈지 결정(network, 3계층 까지만 읽음)
→ destination에서 다 읽음
인터넷은 원래 보안을 고려하지 않고 설계되었음
→ 인터넷의 초기 비전 : 투명한 네트워크에 연결된 상호 신뢰 가능한 사용자의 그룹
인터넷 프로토콜 디자이너가 “catch-up”
보안은 모든 계층에서의 고려사항
malware
spyware : 키입력, 웹사이트 방문정보, 업로드 정보를 기록함
감염된 호스트는 botnet에 등록되어 스팸이나 DDos 공격에 사용될 수 있음
DoS(Denial of Service)

공격자가 가짜 트래픽으로 리소스를 압도하여 정상적인 리소스(서버, 대역폭)를 사용할 수 없게 만듬
packet sniffing

broadcast media(이더넷, 무선)에서 일어남
중간에서 지나가는 모든 패킷을 읽고/기록 한다 (비밀번호까지도)
예방 : 암호화 해줘야함
IP spoofing

보내는 주소를 다른 것으로 위장해서 패킷을 보내느 것
→ C가 자신의 아이피를 B로 위장해서 패킷을 보냄
예방 : 종단간 인증