Chapter1
1. Introduction
1-1. 인터넷 : nuts and bolts view (구성요소)
- HOST(End-system)
- 여러 개의 device(데이터를 송수신하는 기기 - not only computer) 연결
- hosts는 도착지의 주소를 알고 있다.
- SWITCH
- COMMUNICATION LINKS
- end system 과 end system을 연결하는 그 라인을 뜻한다.
- fiber, copper, radio (각 link의 종류마다 성질이 다르다)
- transmission rate, bandwidth로 성능을 측정
- PROTOCOL
- 통신에 필요한 규약 (네트워크의 약속)
- 메세지의 형식, 순서 그리고 보낼 때 어떤 action을 취해야 하는지에 대한 내용
- 참고) Internet standards
- RFC (Request for Comments) : 표준
- IETF (Internet Engineering Task Force) : 표준 관리 기관
1-2. 인터넷 : service view
- Infrastructure
- 인터넷은 application 이 동작하도록 서비스를 제공하는 기반 시스템이다.
- Programming Interface
- host to host로 전송 및 수신할 때 사용할 수 있는 distributed applications를 만들수 있는 기반으로 socket interface를 제공한다.
- 인터넷과 사람을 연결!
2. Roadmap
2-1. 네트워크의 구조
- NETWORK EDGE
- host와 data center
- 네트워크 중에서 가장자리에 존재하는 것들
- 실제 사용자들이 존재하는 곳!
- ACCESS NETWORK, PHYSICAL MEDIA
- end system과 router를 연결하여 인터넷을 사용할 수 있게 해주는 역할
- transmission rate를 고려
- 연결 방식
- Cable-based : FDM, HFC,
- Digital Subscriber Line (DSL)
- 전화선으로 인터넷 접속하기
- downstream (기지국에서 집으로 내려오는 방향) 이 upstream 보다 더 크다 -> 우리가 데이터를 쓰는 쪽이기 때문에
- Home Networks
- Wireless access Network
- WLANs
- 장점 : 속도, 가격
- 단점 : 전송 범위를 벗어나면 사용 불가능
- celluar
- Enterprise networks
- NETWORK CORE
- router들로만 구성
- router란 인터넷의 패킷 switch를 말한다.
- edge network를 연결하는 역할
2-2. Network Edge
- HOST
- send packets of data
- data를 전달하기 위해서 data를 packet으로 쪼개야 한다.
- Packet Transmission delay
- 성능 측정을 위해 필요하다.
- 패킷전송시간(T)=링크전송속도패킷크기
- LINK
- physical media
- 종류
- guided media
- unguided media
- twisted pair
- Coaxial cable
- Fiber optic cable
- Wireless radio
- Broadcast
- simplex : 한 방향으로만 이동
- full duplex : 양방향 동시 가능
- half duplex : 양방향 가능하지만 한번에 하나의 방향만 가능
- Radio link types
- terrestrial microwave
- wireless LAN (WiFi)
- wide-area (cellular)
- satellite
2-3. Network Core
- PACKET SWITCHING
- 데이터를 packet 단위로 쪼개는 작업
- host break application layer messages into packets
- STORE AND FORWARD(중요!!)
- router 기준으로 packet을 완전히 송신 후 보내기!
- END TO END DELAY
- QUEUEING DELAY
- Packet Switching에서 발생하는 문제점
- router가 입력으로 들어온 값들을 원하는 출력 값으로 가도록 해주는데 그때 출력값이 같은 것들이 여러개가 오게 되면, queue에 쌓이게 된다.
- 이때 너무 많은 값들이 들어오면 queue를 넘어서서 뒤에 것들이 loss되는 현상이 발생할 수 있다.
- Two key NETWORK CORE FUNCTIONS
- Forwarding
- local action
- router의 입력 포트에서 출력포트로 패킷을 이동시키는 것.
- Routing
- global action
- 패킷의 출발지에서 도착지까지 가는 경로를 정하는 것
- CIRCUIT SWITCHING (중요!!)
- packet switching이랑 반대의 개념 (그러므로 packet으로 쪼개는 작업을 하지 않는다.)
- 전송하기 전에 data가 이동한 circuit을 미리 예약하고 그 길로만 가는 현상 (공유 x)
- 장점)
- 성능 보장
- queueing delay가 발생 하지 않아 loss가 없다.
- 단점)
- 이미 모든 circuit을 다 쓰고 있으면 block되어 사용 불가능
- 예약이 된 경우 쓰고 있지 않더라도 다른 사람이 쓸 수 없어 낭비가 되는 경우가 있다.
- 사용 효율이 packet switching 보다 낮음
- 비교 예시)
- PSTN(public switched telephone network)
- Internet
- FDM vs TDM
- circuit을 쪼개는 방식
- Frequency Division Multiplexing : 주파수를 기준으로 나 눔
- Time Division Multiplexing : 시간을 기준으로 나눔
- 참고 내용 1)
- Switch가 host 사이사이에 존재해야 하는 이유 : switch가 있어야 host와 host를 연결함에 있어서 필요한 선의 수가 적어진다.
- switch 없는 경우 N명의 host : O(N2)
- switch 있는 경우 N명의 host : O(N)
- 참고 내용 2)
- Multiplexing
- 저속의 data stream이 여러개가 모여서 하나의 고속 data stream으로 만드는 것
- 통신에서 반드시 필요함
- packet switching은 statistical multiplexing
-> statistical 한 이유는 들어오는 data가 일정하지 않기 때문에
- Demultiplexing
- 하나의 고속 data stream을 다시 나누기
- Packet switching vs Circuit switching
- 사용할 수 있는 유저의 수 비교하는 시나리오
- 결론은 Packet switching이 더 많은 유저 이용 가능하다.
- bursty data issue (데이터가 일정하지 않음)
- 데이터가 일정하게 들어오지 않는 경우는 packet switching이 더 유리하다.
- sharing 할 수 있기 때문에
- congestion possible
- 특정 시간에 발생한 data의 양이 허용 가능한 것보다 많아저서 넘치는 경우
- packet switching이 항상 생각해야 할 문제이다. (loss가 발생할 수 있으니까)
- INTERNET STRUCTURE
- ISP (Internet Service Providers)
- ISP 끼리 어떻게 연결되어있는가..
- 1) 각자 모두가 연결된 상황 : O(N2) - ISP많을수록 비효율
- 2) global ISP 라는 것을 가운데 두고 연결 : 실현 가능성 낮음
- 3) ISP를 여러개로 나누어서 구성하고 IXP라는 router로 각 ISP를 연결해줌 / 추가적으로 regional ISP나 Content provider network로 구성 : 실제 모습
- PACKET DELAY
- nodal delay 라고도 함
- Processing Delay
- 한 packet을 보내고 다음 packet을 보내기 전에 발생한다.
- Transmission Delay
- dtrans=R(링크속도)L(패킷길이)
- Propagation Delay
- 전파의 전달 지연 (물리적인 특성)
- dprop=S(전파속도)d(거리)
- Queueing Delay
- 랜덤한 값 (예측 불가능함)
- packet의 양에 따라 달라지기 때문
- 네트워크 설계시 가장 많이 고려해야함
- 참고) queueing delay 이후 transmission delay 발생한다.
- Packet Queueing Delay
- R : link bandwidth(나가는 양)
- L : packet length
- a : average packet arrival rate
- 단위시간당 패킷의 양 : RLa
- PACKET LOSS
- link 도착 속도가 output link 용량을 넘어설 때 발생한다.
- 비유) 깔대기의 output보다 빠른 속도의 input이 들어올 때 packet loss가 발생한다.
- router가 packet을 받으면 올바른 output을 찾아 queue로 넣는다 이때 queue에 너무 많은 양이 들어가면 loss가 발생한다.
-> 이러한 loss 중에서도 버려도 괜찮은 loss (버리고 다시 받는 것이 더 효율적임)가 있고 그렇지 않은 loss가 있다.
- THROUGHPUT
- 비트가 송신자에서 수신자로 전송되는 속도(비트/시간 단위)
- instantaneous 와 average가 있다. instantaneous는 avg를 취하는 간격이 짧은 경우를 뜻함
- 계산 방법
- 가장 작은 speed의 값이 throughput (bottleneck)이 된다.
- network scenario
- 이러한 시나리오에서 R은 매우 크기 때문에 bottleneck이 될 수 없다.
- 예전에는 기술이 좋지 않아서 R이 bottleneck이 될 수 있었지만, 현재는 기술이 발전했음
- Rc, Rs가 bottleneck!
- 참고 1) 위성 통신의 경우 지구와 멀기 때문에 propagation delay가 매우 길것으로 예상되는데 그렇다면 쓸모가 없을 것!
-> prop delay가 실제로도 길긴 하지만 packet은 연달아서 오기 때문에 처음 packet이 보내질때만 발생하기 때문에 큰 문제는 없다. 단 연속적인 data가 들어올때의 경우이다.
2-5. Protocol Layer
- LAYERING
- 복잡한 시스템을 abstract 해서 modularization 하기!
- 유지보수와 업데이트를 쉽게 만들어준다.
- INTERNET PROTOCOL STACK (중요!!)
- Application : network application
- Transport : process to process
- Network : host to host
- Link : 각각을 연결하는 link
- Physical
- ENCAPSULATION (봉투에 넣기)
- data를 위의 layer에서 아래 layer로 보내면서 봉투에 넣는다.
- 이후 아래 layer에서 위 layer로 올라가면서 봉투를 뜯는 것