1학년 때 물리층과 데이터링크층을 배웠다면 컴퓨터네트워크에서는 네트워크층과 전송계층, 응용층에 대해서 배울 것이다.
🌐 인터넷을 nuts and bolts 관점에서 보자.
결론적으로는, Internet이 internet이 포함되는 개념인 것이다.
모든 디바이스들은 host(=end systems) 이라고 불린다. End systems들은, communication links와 packet switches로 이루어진 네트워크에 연결되어 있다.
한 end system에서 다른 end systems로 데이터를 보낼 때, 해당 패킷은 segment 단위로 나누어(transport layer에서 이루어진다.) header bite를 붙인 이후, 완성된 패킷(network layer에서의 데이터 단위) 을 또다른 end system으로 전송한다. 전송된 end system에서 이 데이터 쪼가리를 재조합, 원래의 데이터로 만든다.
🌐 인터넷을 ‘services’의 관점에서 보자.
🌐 프로토콜이란 무엇일까?
인터넷에서 이루어지는 모든 통신 활동들은 프로토콜에서 의해 결정된다. 어떤 메세지를 보낼 것인지, 형태를 결정하고 수신과 송신에 있어, 그리고 timeout 발생시에 어떻게 할 것인지에 대한 상황을 규정하는 것이 프로토콜이다.
→ 프로토콜은 인터넷 전체에 걸쳐 메세지의 형태와 송수신의 순서에 대한 행위를 결정하는 친구이다.
네트워크 엣지인 스마트폰이, 액세스 네트워크인 와이파이를 통해 접속, 네트워크 코어의 기능을 통해 네이버 서버까지 패킷이 전송되고 받을 수 있는 것이다.
network Edge
네트워크의 가장 가장자리이고, 네트워크의 말단에 존재하는 여러 구성요소들이다. 이곳에 수많은 end system들이 존재한다. 여기서 end system은 host라고 생각하면 된다. host의 종류는 아래에 존재한다.
Access networks, physical media
엑세스 네트워크는 네트워크에 접근하기 위한 네트워크이다. 즉 end system이 인터넷을 사용할 수 있도록 길을 열어주는 네트워크이다.
스마트폰에서 와이파이에 접속(wireless communication links)하거나, PC에 랜선을 꼽는 것(wired)은 모두 액세스 네트워크에 접속하는 것과 동일하다.
정리하자면, end system과 다른 end system 사이의 경로상에 있는 첫번째 라우터에 연결하는 네트워크들을 access network라고 한다.
즉 KT와 SKT와 같은 ISP가 엑세스 네트워크를 제공한다.
Cable-based access
FDM(주파수 분할 다중화)에 의하여 다른 채널들이 다양한 주파수로 데이터가 전달되는 것이다. 여기서 splitter는 집의 안과 밖을 구분해주는 역할이다.
데이터와 TV는 케이블을 통해 다양한 주파수로 전달된다. 그래서 텔레비전,인터넷, 전화 등의 신호를 섞어서 보낼 수 있는 것이다. 각각의 채널은 주파수가 다르기 때문이다.
HFC (Hybrid Fiber Coax) : 광섬유와 동축케이블을 혼합시킨 케이블 TV의 명칭이다. 되게 특이한게 비대칭적이다. 대역폭이 넓은 광케이블은 백본에 쓰고, 백본~가입자는 동축 케이블로 연결한다. 그래서 업로드는 약하고, 다운로드는 되게 큰 대역폭을 가지고 있다.
네트워크의 케이블과, 광섬유(집에 연결된 것))은 ISP 라우터에 연결된다.
집은 access network를 cable headend에 공유한다.
home networks
enterprise networks
유선 무선 기술이 다양한 라우터와 함께 섞여 있다.
이더넷 : 과거에는 유선 랜선이라고 불렸다. 이렇게 회사, 학교는 ‘이더넷’ 네트워크로 연결되어 있다. 현재 속도가 10Gbps 까지 성장하였다.
와이파이 : 무선 연결이다.
data center networks
규모가 큰 회사는 IP센터를 운영하는데, 그것이 바로 이것이다!
고 대역폭의 링크가 연결되어 가지고 있다.(10s to 100s Gps) 그리고 백개에서 천개의 서버들이 연결되어 있다.
Wireless access networks
어떻게 end system에 edge router(가장 먼저 연결되는 라우터)가 이어져 있을까?
네트워크 코어는 전체 네트워크 시스템의 중앙의 위치하여, 데이터를 전송하는 핵심적인 역할을 한다. 네트워크 코어는 수많은 라우터들이 그물처럼 얽혀있는 구조이다. (Mesh of interconnected routers) 직접 트래픽을 생성하지 않고, access network의 트래픽을 전달만 한다.
아래는 network core의 주요한 두 기능이다.
Forwarding(switching) ⇒local action
라우터의 input으로 들어오는 패킷을 올바른 라우터의 output으로 보내는 기능을 한다. 즉 forwarding table을 읽어서 수행하는데 패킷이 어떤 output 포트로 나가야 하는지 결정하고, 이를 보내주는 역할을 한다. (라우터 끝에 달려 있는 line card가 각각 fowarding table을 가지고 있음)
Routing ⇒ global action
패킷이 어디로 가야 할 지 판단하는 과정이다. Router는 routing algorithm을 통해 forwarding table을 생성하여 가지고 있다. routing algorithm을 통해 길을 열어주는 네비게이션 같은 역할이라고 생각하면 된다.
Packet switching
패킷 교환은 송신 측에서 모든 메세지를 일정한 크기의 패킷으로 분해하여 전송하고 수신 측에서 이를 원래의 메세지로 조립한다.
store - and - forward
라우터가 패킷을 온전히 다 수신하고 저장을 한 후, 다음 링크로 패킷을 내보내는 것이다.
queueing (큐잉)
Circuit switching
패킷 교환에 반대되는 개념이다. 패킷 교환은 인터넷이라고 생각하고, 회션 교환을 전화기라고 생각하자.
회선 교환 네트워크에서 end system 간에 통신을 제공하기 위해서 경로상에 필요한 자원은 통신 세션동안 예약되어 확보되는(allocated) 형식이다. (패킷 교환은 자원을 예약하지 않음)
특징으로는 다른 링크를 절대 공유하지 않는다는 점이다. 할당된건 빌려주지 않는다. 그래서 헤더같은 정보 필요 없고 저장하고 보내는 것도 필요없고 순차적으로 데이터가 전송된다.
옛날 휴대전화에서 많이 사용됨
주파수 분할(FDM)과 사분할 다중화(TDM)
이러한 circuit switching을 가능하게 하는 것은 두 가지 기법 덕분이다.
주파수 분할 : 한 전송로의 대역폭을 여러 개의 작은 채널로 분할한다. 여러 단말기가 동시에 이용한다.
사분할 다중화 : 전송로의 대역폭 하나를 시간 슬롯으로 나누어서 사용한다.
Packet switching vs circuit switching
How many users can use this network under circuit-switching and packet switching?
circuit switching : 10 users
packet switching : 35 users probability > 10 active at same time (10명 이상의 사용자가 사용하였을때 서비스가 다운될 확률이 0.0004밖에 안된다는 거임)
Is packet switching a “slam dunk winner”?
Internet structure “network of networks”
host들은 그들이 집에서 가입한 인터넷 서비스 회사의 ISP에 가입되어 있다.
또한 ISP들은 다른 ISP들끼리 연결이 되어야 한다.
여러개의 ISP가 존재하고, 그 ISP들을 잇는 IXP(Internet exchange point)가 있다. IXP는 다수의 트래픽을 처리해야 하기 때문에 단위 시간당 스위칭 용량이 크다.
유난히 트래픽이 큰 access net들은 peering link를 통하여 특별히 제공을 한다. regional ISP는 한국에 존재하는 KT, SKT, LG, U+ 같은 것이다.
가능한 CDN들은 바로 서비스를 제공할 때도 있다.
“tier-1” commercial ISPs (Level3, Sprint, NTT) : national & international coverage
content provider networks (Google, Facebook) : private network that connects its data centers to Internet, often by passing tier-1
How do packet delay and loss occur?
Packet delay : four sources
d(nodal) = d(proc) + d(queue) + d(trans) + d(prop)
transmission delay와 propagation delay는 엄연히 다르다.
transmission delay는 output link에서 push 하여 packet을 밖으로 내보내는 데 걸리는 시간이고 (물을 퍼나르는 시간) propagation delay는 나간 packet은 media physical을 타고 next hop에 도착할 때까지의 시간이다. (물이 시냇물을 따라 흘러가는 시간)
Q. 위의 차 10대가 있다. 100km/h로 운행된다. toll booth(요금소)에서 정산할 때 12sec가 걸린다면 10개의 자동차가 2번째 toll booth에 세워질려면 얼마나 걸릴까?
A. toll gate의 총 10개의 차량이 거치니깐 12sec * 10 =120sec, 그리고 자동차가 propagate하는 100km/100km/h=60min
⇒ 2min(transmission delay)+60min(propagation delay) = 62min
Q. 위의 예에서 만약 자동차의 속도가 1000km/h라고 하고 toll booth에서 자동차 요금 정산시간이 1min이라고 한다면, 첫번째 booth에서 모든 자동차가 서비스 받기 전 몇 개의 자동차들이 2번째 booth에 도착할 수 있을까?
A. 도착할 수 있다. 첫번째 자동차는 Second booth에 도착할 때 6min+1min=7min이 걸린다. 이때 10대중 7대는 이미 떠났고 3대는 남아 있다. 즉 이 예에서 말하고 싶은거는 빠져나가는 속도가 매우 빨라서, 모든 packet의 bit가 1st를 나가기 전에 일부 bit가 2nd 라우터에 이미 도착해서 처리될 수 있다는 것이다. 즉 2nd라우터에서 쌓여서 queueing 현상을 일으키지 않는다.
- 들어오는 패킷속도 / 나가는 패킷속도 = traffic intensity
값이 커질수록 유입량이 더 많다. (La는 라우터로 들어오는 패킷 속도, R은 라우터에서 나가는 패킷 속도)
traffic intensity에 따른 average queueing delay 값이다.
La/R ~ 0 : avg.queueing delay가 작다.
La/R →1 : avg. queueing delay가 크다.
La/R >1 : delay가 무한하다. 도착하는 일이너무커요 ㅠㅠㅠ 라우터가 일을 더 많이 해야 하고, 들어오는 bit를 모두 handling 하기가 어렵다.
여기서 traceoute program은 source로부터 router까지 end-end 인터넷 경로를 따라 목적지로 가는 동안에 delay를 측정한다.
만약 7홉에서 8홉 사이처럼 급격하게 지연시간이 커졌다면, 이는 물리적 요인이 존재한다. ( 대서양 건넘)이다.
Packet loss
어디에서 loss가 발생하였고? 왜 loss가 발생하였나?
Throughput (처리율)
처리율은 (throughput) sender와 receiver 사이에 전달되는 bit의 rate(bits/time unit)이다. 처리율은 아래 두 가지로 측정될 수 있다.
오랜시간동안의 측정된것은 average rate라 한다.
Instantaneous rate : 짧은 시간동안 측정된 처리율(딱 그 시간 동안)
average rate : 오랜 시간동안 측정된 처리율 (긴 시간 동안)
위처럼 들어오는 Rate가 나가는 Rate보다 작다면 처리되는 average throughput은 Ra일 것이다.
반대로 들어노는게 Rate가 나가는 것보다 크면 Bottleneck link 때문에 똑같이 average throughput은 Rc일 것이다.
총 10개가 연결된 친구들이 한 척추(backbone)에 공유된다고 가정하자.
Rs, Rc는 자주 병목 현상이 일어난다. 그럼 이때 다양한 Rs, 다양한 Rc를 하나의 대역폭 R의 Capacity를 10개가 가져갑니다.
→ throughput은 이 값들의 제일 최소값이 되게 된다.(Rc, Rs, R/10중 가장 작은 것) 그래서 R/10을 10쌍이 공유하는 것이며, 가장 작은 bit로 해야 원활하게 데이터가 흘러갈 것이다.
인터넷은 본래 엄청나게 보안을 지키기 위해서 만들어진 것이 아니다.
Bad guys : packet interception
packet “sniffing”(엿보기) → 네트워크 상에서 다른 사람들의 패킷 교환을 엿보는 것이라고 한다. 이는 broadcast media에서 일어나며, 공유된 이더넷과 무선 통신을 통해서 일어난다.
B가 A로 메세지를 보내는 것인지, C도 엿보고 있는 것이다. 패스워드와 프로토콜 정보 같은 모든 패킷을 엿볼 수 있는 것이라 좋지 않은 것이다.
broadcast media
Bad guys : fake identity
Bad guys : denial of service
Lines of defense (방어 방법)
위에서 보았듯이 인터넷은 굉장히 복잡한 형태를 가지고 있다. 그래서 여러가지로 나누어서 분석한 것이다. 우리가 해외여행을 할 때 그 과정을 세세히 나누어서 이야기하는 것과 같이, 인터넷을 여러 계층으로 레이어링 하여서 설명하는 것은 매우 유익하다.
각 레이어의 인터페이스 구현 방법을 바꾼 것이 아니라면 레이어 자체의 구현 방법을 바꾸어도 다른 레이어에 영향을 끼치지 않는다.
→ 결론적으로 신기술, 알고리즘을 계층에 새롭게 적용하여도, 인터페이스를 안전하게 변경 가능하다.
이제 Hl이 최종적으로 붙으면서 link-layer, 즉 대표적인 이더넷 데이터 형태로 탈바꿈한다. 그리고 이제 물리층을 통해서 데이터가 전송되는 것이다.
이처럼 각 레이어는 아래의 영향이 없으면 위에 레이어가 동작할 수 없는 형식으로 서로 긴밀히 이루어져 있으며 복잡한 인터넷의 양상을 설명하게 해 주는 하나의 도구이다.