Introduction
What’s the Internet
host : 호스트는 인터넷에 연결된 모든 컴퓨터나 장치를 말한다.
에이전트, 엔드 시스템, 디바이스이라고도 한다.
컴퓨팅 디바이스 통칭
호스트가 하는 일은 네트워크 어플리케이션을 돌리는 역할을 한다. 직접 접속하는 기기이며, 여기서 App이 돌아간다.
(돌아가려면 server와 연결이 필요)
노트북, 스마트폰, 서버, …
communication link : 어플리케이션이 돌아가려면 서버와의 연결이 필요.
커뮤니케이션 링크를 통해서 서버와 연결.
노트북에서 신문사 접속하려면 수많은 커뮤니케이션 링크를 통해서 접속.
링크는 어떻게 만들어지나? ⇒ 케이블(구리 → 트위스트 → 동축 → 광섬유), 무선(라디오, 위성 통신)을 통해서
(wire일수도 wireless일 수도)
근데 무선은 엔드 호스트에서 첫번째 엑세스 포인트까지만 무선 그 다음은 다 유선, 무선은 너무 비싸 ㅠㅠ (한 홉(hop)만 무선, 나머지는 유선)
벤드위드 : bps = bit per sec, 1초에 몇 비트가 나가냐, wireless bandwidth: 아주 좋은 리소스
router : 인터넷의 가장 핵심, 가장 똑똑한 녀석

옛날에 전화를 할 때는 그 밴드위드가 나한테 예약이 되서 내 꺼가 됨. (서킷)
근데 오버헤드가 너무 큼
근데 얘(packet switching)는 안그럼.
패킷 스위칭은 보내는 정보를 작은 단위로 여러개의 패킷으로 쪼갬.
패킷 스위칭 기법을 적용한게 스위치랑 라우터임.
스위치랑 라우터는 네트워크 장비
Internet : 네트워크들의 네트워크
ISP들이 서로 얽히고 섥혀있는 것
ISP : 망 관리 업자들이 인터넷이 되도록 서비스 하는 회사들
KT, LG U+, SKT, …
우리는 이 회사에 등록하고 선 끌어와서 인터넷을 쓰는 것
protocol : TCP, IP, HTTP, …
프로토콜의 이름 외우자
이게 몇번째 레이어에서 작동하는지 알아야함.
이 프로토콜이 뭐하는 프로토콜이고 어디서 작동하는지 알자
컴네: 경제학
데이터 통신: 확통의 분포
인터넷: 프로토콜의 모임
프로토콜은 분야마다 맞는 프로토콜이 필요함
이렇게 큰 인터넷을 유지하려면 아주 많은 프로토콜이 필요함.
이 프로토콜에 맞게 인터넷이 돌아감
프로토콜 누가 만듦?
인터넷을 유지하기 위해서는 프로토콜이 필요하다! 근데 누가 만드냐!
⇒ RFC라는 절차에 따라서 IETF 협회에서 만들어줌, 내가 신청서를 잘 써서 인터넷에 올리면 절차를 거쳐서 허락하고 만들어줌.
인터넷 엔지니어링 테스크 포스
service : 인터넷에서 돌아가는 서비스들
웹 서비스, 보이스 ip(국제 전화), 이메일, …
이런 수 많은 어플리케이션들이 돌아가기 위해서는 센더와 리시버 간의 연결이 되고 수 많은 정보가 왔다 갔다 해야되는데 이걸 ISP들이 해준다.
What’s a protocol?
세상을 살아가는데 매너가 있다.
인사치례 교양, 사회적 관습, 규약, …
기계들도 있음
사람 사회는 strict 하고 완전히 정해져 있진 않지만 기계들은 아주 strict 이게 정해져 있고 이걸 따라야 함.
프로토콜은 그래서 포맷이 정확하게 만들어져야함.
⇒ 어떤 패킷이 처음으로 나가고, 몇 바이트, 어디서부터 어디까지는 뭐고, …
인터넷 프로토콜은 RFC에 의해서 완전하게 정의가 되고 이게 틀리면 작동을 안함.
Network Edge
network edge : 호스트들이 사용하는 디바이스
호스트는 클라이언트, 서버, 데이터 센터가 될 수도 있다.
이런 네트워크에 엑세스하려면 내 호스트에서 wire든 wireless든 한 홉을 연결해야 함.
network core : 네트워크 엣지끼리 데이터를 주고받게 해주는 중간 경로
라우터들의 모임
라우터, 스위치, 케이블, …
보통 ISP의 건물이나 통신실 이런데 숨어있음.
access network : 우리 호스트에서 맨 처음 만나는 라우터까지 연결하게 해주는 네트워크
우리 집에 네트워크 구성되어있으면 홈 네트워크
서강대에서도 디바이스 막 쓰고 있으니까, 이건 리빙 스테이셔널 네트워크
스타벅스도 디바이스 쓸 수 있음, 그것도 클라이언트 네트워크
접속은 밴드위드를 통해서 접속함
기숙사 인터넷은 shared, 나 혼자만 쓰면 dedicated
Different Access Network
여기 다 외워
- DSL : 전화선으로 인터넷 사용
- cable network : 마지막 단도 전용 케이블 선을 씀.
- home network : 어떤 케이블로 들어왔던 내 많은 기기들이 첫번째 라우터까지 접속하게 하기 위한 네트워크
- FTTH : cable network의 단점을 극복, (백본은 광섬유, 마지막은 케이블)
- Ethernet : 가장 중요함. 피지컬 레이어와 데이터 링크 레이어의 프로토콜.
- wireless access network
Host: sends packets of data
정보를 규격화된 사이즈로 쪼개서 보내는데 이걸 패킷이라고 함
패킷은 몇 비트 짜리로 정의된다
L : 한 패킷에 들어가는 비트 수
패킷은 링크를 통해 보낸다. 링크는 밴드위드, 밴드위드는 BPS
링크는 BPS로 정의된다.
그래서 결국 Transmision rate (R) 초 당 몇 비트가 가는지 비율
트랜스미트 레이트는 밴드위드, 밴드위드는 BPS로 정의

패킷의 트랜스미션 딜레이는~!!!!!!!
전체 패킷의 양을 트렌스미트 레이트로 나눠주면 됨
단위 써!!!!!!!!!!!!!
Physical media
물리적인 선
bit : 링크를 통해서 가능 정보 자체를 비트라고 함.
physical link : 이게 그 링크,
wired = guided media (구리선, 동축 케이블, 광섬유)
wireless= unguided media (공기를 통해서)
twisted pair : 구리선으로 전류 흐르면 자기장이 생기고 옆에 전자에 간섭함
구리선을 꼬면 간섭을 다시 간섭해서 간섭이 사라짐.
근데 내구성이 되게 약함
coaxial cable : 피복을 튼튼하게 한 트위스티드 케이블
좀 두꺼운 구리선을 넣고 피복으로 감 쌈
전류가 일정하게 흘러서 동축 케이블
fiber optic cable : 개좋음. 광섬유, 빛의 속도로 정보 전송, 간섭없이 대용량
이게 백본에 들어감. 너무나 빠르고 간섭 없고 대용량 통신 가능하게 함.
radio link : wireless bandwidth, radio spectrum, wireless frequency = 전파
공기 중으로 전파됨, 전파가 진행되다가 반사되고, 굴절되고, 회절되고, … 해서 전파됨.

장파 : 뚫고 나가는 성질 (벽을 뚫고 지나가는), 직진성
단파 : 벽을 못 뚫음, 리모컨은 단파라 벽을 못 뚫음
세대가 거듭할수록 단파를 자주 사용함
단위 시간당 많은 정보 보낼 수 있음
근데 물체를 만나면 블락됨. 그래서 인프라를 추가적으로 설치해줘야됨
Network Core
일반적인 사용자 입장에서는 보이지 않는 파트
맨 끝에 엣지 단을 제외하고 그 안을 이루고 있는 인프라 구조
코어의 핵심 ⇒ 패킷 스위칭
패킷 스위칭 덕분에 인터넷이 돌아간다.
패킷 스위칭은 어플리케이션 레이어에서 보내려고하는 어떤 정보를 잘게 쪼개는 것.
이렇게 패킷 단위로 정보를 보내는걸 패킷 스위칭
인터넷은 여러 홉들로 이루어져잇는데 홉 단위로 패킷들을 전송
한 홉 가면 store and forward, forward and stroe, 한 홉 가고 어디로 갈지 결정받고 다음 홉(에이전트)로 이동하는 방식
우리가 알고 싶은 것은 딜레이야
패킷 사이즈를 트렌스미션 레이트(커패시티)(밴드위드)
한 홉동안 걸리는 시간은 L/R
두 홉은? 한 홉 가는 동안 걸리는 시간의 두 배 2L/R
queuing delay :
어떤 에이전트(스위치든 라우터든)에 패킷들이 들어와.
프로세스가 딜레이됨.
들어오는 비율에 비해 나가는게 적으면 도착한 애들은 큐에 들어가서 대기함.
큐에 들어가서 대기하는 시간이 큐잉 딜레이
그러다가 큐가 꽉차면???
packet loss : 들어오는 비율에 비해 나가는게 적어지게 되어 큐에 패킷들이 차다가 꽉 차버리면 걍 패킷을 버려버림 ⇒ packet drop
큐잉 딜레이가 늘어다가가 패킷 로스가 일어난다 = traffic congestion
routing : 라우터는 라우팅도하고 포워딩도 해, 스위치는 포워딩만 해.
소스에서 목적지까지 모든 정보를 가지고 그 경로를 쫙 검토하고 내가 여기 여기 여기를 가야겟다 하고 전체 경로를 계산하는 것.
라우팅은 릴레이 시켜서 마지막 목적지까지 가는 것.
forwarding : 내가 케이관에서 인천공항가는 한 홉을 포워딩이라고 함
포워딩이 모여서 라우팅 패스가 되는 것임.
포워딩은 인풋 링크로 들어온 패킷을 아웃풋 링크로 보내는 것.
패킷의 목적지 주소를 보고 어디로 가야되는지 포워딩 테이블에 저장되어있음
각 라우터들은 이 테이블을 가지고 있음. 그래서 해더 파일에 주소가 있으면 바로 아웃풋 링크를 찍어줌
결국 포워딩은 인풋으로 들어오는 패킷의 해더파일을 보고 아웃풋 링크를 탁 찍어주는 한 홉의 단계, ⇒ 이걸 스위칭한다고 한다.
circuit switching : 패킷 스위칭은 가는 링크가 혼잡한지는 모르고, 걍 헤더 파일보고 한 홉 넘김
이 녀석은 옛날에 쓰던 방식. 전화선.
소스에서 목적지까지 가는 모든 리소스가 예약되서 성능이 보장됨.
리소스가 없으면 통화가 안되는 식.
쉐어링의 개념이 없고 개런티의 개념
FDM : 주파수를 대역폭 별로 나눠서 여러 개의 서킷으로 만듦. ⇒ 서킷 스위칭
TDM : 시간 단위로 링크를 나눔. 시간 축을 기준으로 잘게 쪼개서 쉐어링하는 것 ⇒ 패킷 스위칭
Packet switching versus circuit switching
패킷이 스위칭 이김
패킹 스위칭은 리소스 쉐어링이 너무 효율적임.
개런티가 필요 없고 예약도 필요 없고 셋업도 필요 없음
아주 아주 극한으로 작은 확률의 충돌이라 ㄱㅊ
핫라인은 항상 서킷 스위칭 아주 급하니까
서킷도 아예 사장되진 않고 필요한 곳은 쓰고 있다.
Infra structure
인터넷은 네트워크들의 네트워크인데 어떻게 연결됨?
→ ISP들이 연결해줌 (kt, u+, skt)
서로 다른 ISP들끼리 연결되는게 신기한 것
옛날에는 다른 ISP들 끼리 호환이 안됐음.
인터넷을 만들때 얘기된게 서로 다른 ISP도 연결하자.
→ 기존 프로토콜을 정의하고 이거에 관련된거면 모두 연결되게?
요즘의 연결 방법

IXP : 여러 ISP들끼리 연결해주는게 peering link이고, 이 링크를 트래픽 밸런스를 조절해주는게 IXP 중요!!!! 근데 IXP라고 잘 안하고 Pop이라고 함
regional network : 지역의 왕 네트워크
content provider network : 유튜브, 넷플릭스, 알카마, … 지역 별로 데이터 센트를 만들어서 서비스 하려고 만든 network, 이것도 Pop이라고 함?
Pop (Point Of Presence) : 회사들의 데이터 센터 개념, 인터넷 간의 빠른 연결을 위해 존재하는 연결자.
tier-1 commercial ISP, content provider network 들이 맨 윗 단에서 국가간의 기간망 형성하고 그 아래로 리저널 ISP, access ISP들이 계층적으로 연결
Delay, Loss, Throughput in networks
인터넷의 성능 평가 기준은 딜레이
패킷이 소스부터 목적지까지 가는데 어떤 일이 일어나나? 패킷이 중간 중간 라우터들를 거치는데 패킷들의 도착 비율이 아웃풋 비율 보다 크면??
그 패킷들은 잠시동안 큐에 들어가서 대기함.
패킷을 전송도 해야되는데, 트랜스밋 딜레이는 아웃풋 링크의 커패시티와 내가 내보내려고하는 패킷의 사이즈의 비율!
대량용 벤드위드 깔면 해결되긴함.
패킷의 딜레이는 큐잉 딜레이가 지배적임, 큐 = 버퍼
임시 메모리 같은 큐에 트랜스미션 딜레이가 걸리고 처리가 안되니까 큐에 쌓임
여기서 딜레이가 일어난다.
패킷이 쌓이다가 큐가 꽉 차면 패킷을 드랍해버림
이게 심각하고 이게 컨제스쳔이 일어난다.

딜레이를 계산할 때 가장 중요한게 큐!!!
트랜스미션 딜레이는 단순 산수, 링크를 얼마나 잘 깔았나, 투자 잘 할수록 좋은겨
proc이랑 prop은 너무 빨라서 무시해도 상관없음
proc은 딸깍이라 무시 가능
prop은 매질을 통해서 진행해나가는데 걸리는 시간 (빛의 속도)
trans은 내가 보내고 싶은 데이터 양과 링크의 차이의 비율 (L/R).
1차선에서 차가 3대가 나가고 싶어하는 상황
queue는 La/R, a는 평균 패킷 도착 비율( 단위 시간 당 들어오는 패킷 수)
a에 의해서 결정적임


First-byte delay
옛날에는 사이트 들어가면 전체 파일을 주고 이거에 대한 딜레이를 계산했음
이제는 First-byte delay 라고 웹 사이트 요청했을 때 첫 바이트가 도착했을 때의 딜레이를 계산하도록 함.
Packet Loss
사실 라우터, 스위치, 디바이스, 호스트들은 네트워크의 상황을 잘 모름
근데 알 수 있는 방법이 있는데 pacek loss를 통해서 알아냄.
이걸로 콘제스쳔이구나 널널하구나로 알아냄
패킷 로스가 발생한 순간에 망이 굉장히 불안하구나 하고 보내는 양을 확 줄임
- 큐가 꽉 찼는데도 패킷이 들어오면 패킷 드랍이 일어남
- 버려지는 패킷에도 계급이 있어서 우선순위가 낮은 애들이 버려짐
패킷이 드랍되면 어떻게 함?
패킷이 드랍되면 이 패킷이 없으니까 다시 보내도록함 ⇒ 패킷 리트랜스미션
패킷 리트렌스미션이 일어났다고 하면 네트워크 장비들이 “어.. ㅈ됐다 어디 뭐가 문제가 생겻나보다..” 라고 생각함.
Throughput
어떤 단위 시간 동안 얼마나 많은 비트가 전송되었는지 비트 퍼 세크
네트워크 성능 평가 지표
2가지 방법
- 평균
- 어느 한 시간 동안 성능 측정하고 끝
홉에서 홉 넘어갈때마다 밴드위드가 다름.
보통 수백개를 거치는데 가다가 옛날 링크 타면 속도가 느려짐 ⇒ 바틀넥 구간
모든 링크의 커패시티가 다르기 때문!!!
가장 미니멈한 링크가 성능을 결정함
엔드 투 엔드 트루풋을 결정할 때는 미니멈 링크가 성능을 결정함.

R_c : access network까지 가는데 한 홉의 커패시티
R_s : access network까지 가는데 한 홉의 커패시티
작은 놈을 크게 하던가 // 라우터에 캐시를 저장해 두던가
Protocol layers, service models

레이어별로 나눠져있고 서로 다른 레이어가 어떻게 되어있는지 모른다.
소스와 목적지는 하는 일이 1 대 1 매핑되어있는데, 하는 일은 완전 거꾸로 함.
각 레이어가 모듈화되어 있는 것.
레이어들은 서로 블랙 박스화 되어있어서 서로 알 수 없어
각 레이어가 무관해짐
Internet protocol stack
외워!!!!!!!!!!!!!!!

각 레이어 별로 프로토콜은 달달달 외워라
application layer : FTP(파일), SMTP(메일), HTTP(웹) 프로토콜
transport layer : 프로세스 대 프로세스를 통신하는 것.
프로세스와 프로세스를 연결해주는 것이 TCP, UDP 프로토콜
network layer : 라우팅 관련 프로토콜
link layer : Ethernet 프로토콜
physical layer : 이더넷이 피지컬 레이어를 커버하는데 걍 물리적으로 가는 걸 하는 것
ISO/OSI reference model
ISO: 국제 표준화 기구
OSI: open system interface = 레퍼런스 모델 이름
처음에 레이어를 5개로 했다가 2개를 추가함
인터넷이 개발되면서 늘어났음 (presentation = 압축, 암호화, … , session = 서로 세션 연결)
근데 추가된 2개가 다시 사라짐 어플리케이션 레이어로 병합됨
Encapsulation
데이터의 단위가 레이어별로 부르는 이름이 있음
application : message
transport : segment
network : datagram
link : frame
레이어가 내려올 때마다 헤더 파일이 붙음

중간 중간 스위치랑 라우터를 통해서 이동함
스위치는 link까지, 라우터는 network 까지 커버함
얘네들은 앞에 붙은 헤더파일 까보고 어디로 보내야할지 결정함.
그리고 까본 해더는 버리고 어디로 가야 될 지에 대한 정보를 다시 해더로 붙여줌
그러다가 목적지까지 가면 해더 하나씩 까면서 찐 도착