transmission delay: "L bit"를 signal로 바꾸는데 소요되는 시간 (link의 성질)
propagation delay: "한 비트가" link를 travel 하는데 소요되는 시간
1 hop end to end delay: Dproc + Dqueue + Dtrans + Dprop
Layer마다 다른 프로토콜 사용. 계층별로 필요한 기능들을 분리해 미션을 수행하는 프로토콜들이 여러 개 있음. 완벽하게 분산이 되진 않음
Layer마다 다른 PDU 이름을 가짐.
각 계층마다 계층끼리의 필요한 정보를 담은 헤더를 붙임.
내려오면서 헤더를 붙이고 올라가면서 헤더를 뗌.
아랫계층의 서비스를 받아 윗계층으로 서비스
60, 70, 80, 90, 현대로 구분
새 소프트웨어를 내놔서 취약점을 모를 때 공격해 버리는 것: Zero Day attack → 백신을 만들어 다음 버전을 만들어 내야함
(D DOS: 서버에 쓸데없는 패킷을 계속 보내서 응답하게 하여 진짜 customer에게 응답을 못 하도록 하는 공격)
앱들을 support 하기 위한 application layer의 protocols (Ex. HTTP)
웹 이라는 network application을 support하는 application layer 프로토콜인 http (서비스를 제공 받는 user는 Web)
HTTP는 밑단인 transport layer의 TCP를 제공 받음
Ex. HTTP, SMTP는 application layer의 프로토콜이고, web browser, email은 이 프로토콜을 사용하는 사용자(network application)
SMTP, POP3, IMAP: E-mail이라는 network application을 support하는 application layer 프로토콜들
밑단인 transport layer의 TCP를 제공 받음
network 관련된 일을 application layer에서 수행
동일한 size의 file을 n명의 users가 share 할 때 p2p 구조와 client-server 구조 network의 delay 비교
TCP와 UDP의 동작 이해
: application layer의 protocol들이 support 하는 application들
(network 성능을 측정하는 파라미터: loss, delay, throughput)
Loss-sensitive applications
Delay-sensitive applications
multi-user network games
voice over IP (Ex. Skype)
streaming stored video (Youtube, Hulu, Netflix)
real-time video conferencing
Bandwidth sensitive applications
⇒ 최소한 보장 되어야 하는 throughput이 존재
application layer와 transport layer는 end system에만 존재.
core망의 router들에는 존재하지 않음. 왜? postal service(delivery)가 목적이니 application service를 할 필요 x
⇒ application layer와 transport layer는 end system이 해야할 일 구현
application layer의 두 가지 구조
client와 server가 존재해야 함.
Server
always-on host 언제 요청이 들어올 지 모름
permanent IP address 항상 고정된 위치(not private IP addr)에 있어야 함
IP addr : network 상에서 end host의 router를 identify (3계층에서 사용)
Pop Quiz
한 기기에서 wifi, Ethernet 모두 사용해 링크가 두 개라면 IP 주소는 하나이다? F
⇒ 동시에 쓰는 IP 주소는 두 개이다. Network Interface Card에 붙는 주소이므로 host에 붙는 게 아니고 link에 붙음
Router에 16개의 port가 있다 ⇒ IP 주소는 16개
data centers for scaling
Client
한계: 중앙 서버의 cpu power와 연결된 link들을 잘 관리 해줘야 함. (provisioning)
client끼리 통신하는 것 처럼 보이는 구조
중앙 서버 없이 컴퓨터 끼리 흩어진 peer들이 각각 서버와 클라이언트가 되고, 서로 파일을 주고 받음 (서버: 원하는 content를 갖고 있음)
no always-on server 서버는 항상 켜져 있지 않음
Doesn't require significant server infrastructure & server bandwidth
서버 대신 각 노드들이 트래픽과 자원을 할당해 부하를 분산 시켜 부담이 적음
arbitrary end systems directly communicate 서로 서버와 클라이언트가 됨
peer request service from other peers & provide service in return to other peers 클라이언트면서 동시에 서버 역할을 해 서비스를 제공하고 제공받음
self scalability 새로운 peer의 join은 더 많은 server가 생기는 것
new peers bring new service capacity
peers are intermittently connected and change IP addresses
일시적으로 연결되며, IP도 고정되지 않음
한계: security가 취약할 수 있음. upstream보다 downstream 용량이 더 큰 대부분의 ISP들이 p2p friendly 설계를 해줘야 함.
5계층에서 구현된 protocol이 support하는 software가 running
→ Process
Process: program running within a host(end system), port 번호 할당 받음
Clients-Servers
client process: initiates communication
server process: waits to be contacted
→ Client Process in Client Host & Server Process in Server Host
P2P
Applications with P2P architectures have both client processes & server processes
→ Client Process & Server Process in the same host
network 몰라도 socket만 알면 network application을 만드는 데엔 문제 없음
why? application layer 아래로는 OS에서 동작 시키기 때문
process sends/receives messages to/from its socket
socket analogous to door between application & transport layer
(1) sending process shoves message out door
(2) sending process relies on transport infrastructure on other side of door to deliver message to socket at receiving process
: 프로세스가 쓰고 싶은 protocol에 따라 (TCP or UDP) socket 생성
(server process의 socket port를 알아야 client가 보낼 수 있음)
identifier includes both IP address and port numbers
두 process끼리 msg를 주고 받을 때, machine을 찾기 위해서는 machine에 연결된 link에 부착된 IP address를, machine 안에서 해당 process를 찾기 위해서는 port번호를 알아야 함.
(OS가 machine에서 실행되고 있는 process들의 port를 관리)
Ex. 집 주소는 IP address, 송신인 이름이 port number
IP address: xxx.xxx.xxx.xx (각 8bits: 0~255까지 표현할 수 있음)
well-known port numbers:
HTTP server: 80
mail server: 25
types of messages exchanged,
Ex. request, response
message syntax: what fields in messages & how fields are delineated
message semantics: meaning of information in fields
rules for when and how processes send & respond to messages
open protocols:
defined in RFCs
allows for interoperability
Ex. HTTP, SMTP
proprietary protocols:
Ex. Skype
data integrity (loss-sensitive)
file transfer, web transactions require 100% reliable data transfer
(링크의 에러 혹은 라우터 버퍼 에러로 인한 bit 변형 or 손실로 인해 source가 보낸 정보와 destination에서 받은 정보가 일치하지 않을 수 있음)
audio, video can tolerate some loss
timing (delay-sensitive)
Internet telephony, interactive games require low delay to be "effective"
throughput (bandwidth-sensitive)
multimedia require minimum amount of throughput to be "effective"
"elastic apps" ex. email, FTP, Web transfer make use of whatever throughput they get
security
: 의도적으로 data를 바꾸는 것
encryption, data integrity (중간에 의도적인 개입이 없이 전송되어 수신자가 받은 정보가 송신자가 보낸 정보와 일치한다는 확신을 주는 것)
transport layer에서 application layer protocol에 제공해 줘야 하는 것
TCP service (for loss-sensitive application)
reliable transport between sending and receiving process
connection-oriented: setup required between client and server
setup: sender/receiver에 buffer 할당, buffer & window size
flow control: sender son't overwhelm receiver
받는 쪽 버퍼 넘치지 않도록
congestion control: throttle sender when network overloaded
가다가 loss 생기지 않도록
does not provide: timing, minimum throughput guarantee, security
UDP service
unreliable data transfer between sending and receiving process
does not provide:
reliability, connection setup, flow control, congestion control, timing, minimum throughput guarantee, security
(37) 소프트웨어 출시된 후 patch가 나오기전에 취약점을 공격하는 malware를 뭐라고 하는가?
⇒ zero day attack
(38) Network application을 P2P 구조로 설계할 때 고려해야 할 사항 두가지를 적으시오.
⇒ 대부분의 ISP가 upstream보다 downstream이 큰 용량을 가지고 있으므로, p2p friendly 하도록 설계 되어야 하며 security 문제를 보완하여야 한다.
→
(1) peer들이 인터넷 곳곳에 분산(distributed)되어있고 하나의 관리자가 운영하는 것이 아니므로 보안을 강화하기 어렵다.
(2) P2P의 서버(peer)는 주로 개인 호스트, 이 호스트가 위치한 access network이 residential network인 경우 해당 ISP의 uplink가 서비스 품질(throughput)의 bottleneck이 될 수 있다.
(3) P2P의 서버에 해당하는 peer가 사설 IP주소(private IP address)를 가지는 경우가 있으므로, 정상적인 서비스 동작을 위해서는 라우터에 추가 기능이 필요하다
(39) Flow control과 congestion control의 공통점은 버퍼의 overflow를 막는 것이다. 그러나 traget하고 있는 buffer가 다르다. Flow control은 ( a ) 의 버퍼를 congestion control은 ( b )의 버퍼 overflow를 제어하는 것이다.
⇒ (a) receiver (b) router in networks
(40) T/F 를 표시하시오.
(a) 라우터에 application 계층과 transport 계층이 없는 이유는 두 계층이 데이터(패킷) 라우팅과 관련된 임무를 수행하지 않기 때문이다.
⇒ T. 라우터의 목적은 costal service(delivery)이므로 network application을 support 할 필요가 없기 때문이다.
(b) 서버는 변하기 않는 영구적인 IP 주소를 가지고 있으나 클라이언트는 인터넷 접속 때 마다 다른 IP 주소를 가져도 무방하다.
⇒ T.
(c) Client-Server구조와 P2P 구조 모두에서 서버는 always-on 서비스를 제공한다.
⇒ F. P2P 구조에서 각 peer들은 서버도 될 수 있고 클라이언트도 될 수 있으므로, 서버는 intermittent하게 실행 된다.
(d) network application을 설계하는 소프트웨어 엔지니어는 application이 주고받는 메세지가 네트워크에서 전달(routing)되는 절차를 포함하여 프로그래밍해야 한다.
⇒ F. transport layer와 그 하위 계층들은 OS에 의하여 실행 되므로, network application을 설계하는 소프트웨어 엔지니어는 socket만 알면 된다.
(e) end host의 Transport 계층과 Network 계층은 OS (Operating System)에 포함되어 있다.
⇒ T. Link 계층은 Network Interface Card(NIC)에 포함되어 있다.
(f) Circuit-switching에서 데이터 전송 전에 call set-up하는 것은 전송 경로를 설명함과 동시에 중간 링크의 대역폭도 할당하는 것이지만, TCP의 connection은 양쪽 호스트 transport계층에서 필요한 정보를 미리 주고받는다는 의미이다.
⇒ T.
(g) TCP는 loss-sensitive한 어플리케이션 프로토콜을 지원할 뿐만 아니라 delay-sensitive한 어플리케이션 프로토콜도 지원한다.
⇒ F. TCP는 loss-sensitive한 어플리케이션 프로토콜만 지원한다.
잘 봤습니다 !
Internet transport protocols services에서
오타발견한거같습니다!
flow control: sender son't overwhelm receiver << 여기서 son't가 아닌거같습니당!!