컴퓨터 네트워크 02주차 Introduction/Application layer
2022. 12. 23. 13:09ㆍCS/컴퓨터네트워크
주 교재 : Computer Networking : A Top-Down Approach
2주차 Introduction/Application Layer
- Performance: loss, delay, throughput
- Security
- Protocol layers, service models
- Priciples of network applications
1. Performance: loss, delay, throughput
How do loss and delay occur?
packets queue는 router buffer에 있다.
- packets queue는 자기 차례를 기다린다.
- link에 도착하는 정도가 output link의 용량을 넘으면, packet loss 발생
Packet loss
- queue(aka buffer)의 용량을 넘으면 loss 발생
- Loss 처리 : 재전송, 안하는 경우, etc...
Packet Delay : four sources
d_proc : nodal processing
- 유효성 검사
- output link 결정
d_queue : queueing delay
- 전송되기 전까지 queue에서 기다리는 시간
- router의 정체 수준에 따라 다름
d_trans : transmission delay
- L : packet length
- R : link transmission rate
- d_trans : L/R
d_prop : propagation delay(전파지연)
- d : length of physical link
- s : propagation speed(매체 속도)
- d_prop = d/s
Caravan Analogy(차에 비유)
- 차의 속도 = 100 km/hr (d_trans)
- 톨게이트에서 걸리는 시간 = 12 sec (d_proc)
- 차가 10대 있을 때 모든 차가 고속도로에 진입하는 시간 = 12*10 = 120 sec (d_queue)
- 차가 고속도로를 통과하는 데 걸리는 시간 = 1 hr (d_prop)
- 마지막 차가 다음 톨게이트로 가는 시간 : 62 m
Queueing Delay
- R : link bandwidth
- L : packet length
- a : average packet arrival rate(패킷 도착 속도)
- La/R ~ 0 : avg. queueing delay가 작다
- La/R -> 1 : avg. queueing delay가 크다
- La/R > 1 : delay가 무한이다.
- 고속도로 교통 체증 생각하면 편함.
Traceroute
- Router를 추적해서 내 단말에서 목적지까지 거쳐가는 router를 확인할 수 있다.
- CMD창에서 tracert [목적지]
Throughput
- Throughput(이동량) : sender에서 receiver로 전송되는 bits의 양
- core network의 link마다 크기가 다름
- 각 link마다 용량이 다르기 때문에 병목 현상이 부분마다 생김.
- 병목현상 해결을 위해 분산 네트워크가 개발되었고, Edge server라는 유저 가까이에 있는 서버가 생김
2. Security
- virus
- worm
- spyware
- DDos
Denial of Service (Dos)
- 타겟을 정하고
- 의미없는 메시지를 계속해서 던짐
- 서버가 마비
packet sniffing
- 사용자가 보낸 데이터를 중간에 빼감
IP spoofing
- 잘못된 주소로 데이터를 보냄
3. Protocol layers, service models
Internet Protocol Stack
- application : network application을 구성함
- IMAP, SMTP, HTTP - transport : process - process로 데이터 전송
- TCP, UDP - network : 출발지에서 목적지로 routing
- IP, routing protocols (제일 중요)
- TCP/IP = transport layer + network layer - link : router에서 router로 데이터를 보내는 것
- Ethernet, 802.11 (WiFi), PPP - physical : 실제 선을 따라 가는 bits
Encapsulation
- 자기 계층의 header를 뺀 나머지 header를 payload로 바꾸는 행위
1. Priciples of network applications
application에 필요한 protocol
- HTTP
- SMTP, IMAP
- DNS
이것들을 socket API 위에 얹어서 개발한다고 생각
Client-server paradigm
- examples : HTTP, IMAP, FTP
- 서버에 트래픽이 몰리면 속도가 저하됨
Peer-peer paradigm
- 서버가 없다.
- examples : P2P file sharing(torrent), 블록체인(성격은 좀 다르나 유사)
- 다수에게서 데이터를 받는다는 장점이 있어 Client-server 구조에 비해 속도가 빠름
Processes Communicating
- process : host 안에서 동작하는 프로그램
- Inter-process communication(IPC) : 같은 host 안에서 두 process가 소통하는 것
Sockets
- 프로세스는 socket을 통해 message를 수신/발신한다.
Addressing Processes
- message를 받기 위해 process는 반드시 식별자(identifier)가 있어야함.
- identifier = IP address + port number
- IP = 각각의 기기를 구분하기 위한 고유 번호
- Port = 데이터를 받을 프로세스를 구분하기 위한 번호
ex) 친구 노트북의 IP를 찾고, 카카오톡을 찾아야 서로 카톡을 보내는데, 카카오톡을 찾아주는 것이 port
HTTP server : 80
mail server : 25
0 ~ 1023 (Well-known number)
1024 ~ 65535 (Custom)
An Application-layer Protocol Defines
- types of message exchaged
- ex) request & response - message syntax
- message semantics
- rule
- open protocol
- RFC에 정의 되어 있음
What transport service does an app need?
- data integrity(데이터 무결성)
- 전송되는 데이터가 변하면 안됨 - timing
- 몇몇 앱은 낮은 딜레이가 요구됨 - throughput
- 최소한의 throughput이 필요함 - security
- encryption, data integrity, etc...
Transport service requirements : common apps
application | data loss | throughput | time sensitive |
file transfer/download | loss 허용 X | 유동적 | X |
loss 허용 X | 유동적 | X | |
Web documents | loss 허용 X | 유동적 | X |
real-time audio/video | loss 허용 | audio : 5Kbps-1Mbps video : 10Kbps-5Mbps |
10's msec |
streaming audio/vide | loss 허용 | 위와 같음 | few secs |
interactive games | loss 허용 | Kbps+ | 10's msec |
text messaging | loss 허용 X | 유동적 | O and X |
Internet transport protocols services
- TCP service : 신뢰성
- reliable transport(신뢰성)
- flow control : 받는 쪽에서 버퍼가 꽉 차면 보내는 쪽에서 조절
- congestion control : 혼잡도 조절
- connection-oriented : client와 server 사이에 길이 필요함
- 제공하지 않는 것 : timing, minimun throughput guarantee, security(app단에서 구현) - UDP service : 속도
- unreliable data transfer : 속도가 중점이기 때문에 데이터의 신뢰성은 고려하지 않음 = Loss 발생을 고려하지 않음
- 제공하지 않는 것 : reliability, flow control, congestion control, timing, throughput guarantee, security, connection setup
Securing TCP
- TCP & UDP sockets은 보안을 고려하지 않음
- Transport Layer Security (TLS) : Transport 단에서 보안을 강화하는 프로토콜
다음 주부터 제대로 들어감.
아직까진 맛보기
'CS > 컴퓨터네트워크' 카테고리의 다른 글
컴퓨터네트워크 06주차 Network Layer 01 (0) | 2022.12.29 |
---|---|
컴퓨터네트워크 05주차 Transport Layer 02 (0) | 2022.12.28 |
컴퓨터네트워크 04주차 Application Layer_03/Transport Layer_01 (0) | 2022.12.27 |
컴퓨터네트워크 03주차 Application Layer_02 (0) | 2022.12.26 |
컴퓨터 네트워크 01주차 Introduction (1) | 2022.12.22 |