ex. mobile network, home networks, institutional networks
- end hosts: running network apps on terminals
- interconnection devices: router, switch, repeater...
- packet switches: the way to communicate between hosts in the other networks
- links: copper, fiber, radio, wireless...
- transmission rate: bandwidth ⬆ internet speed ⬆
- Operating Software
- application programs
- protocols: rules for communications
- ex. message format, order, action
hosts => network edges => network core
: make network edges(⊃ end hosts) accessible to the network
my network | network core | my network |
---|---|---|
[end host(wireless) --(wireless)--- AP --(wire)-- edge router] | (routers) | [edge router -----end host] |
- transmission rate: bandwidth(bps) ⬆ internet speed ⬆
- (central office) shared / dedicated
dedicated access network
- DSL modem -> splitter
- DSL phone line
- (central office) DSL Access Multiplexer
- voice(
4kHz): telephone network | data(4kHz): Internet Service Provider
shared access network
- cable modem -> splitter
- coaxial cable: cable company provide one signal to multiple users
- (central office) Cable Modem Termination System
- Hybrid Fiber Coax
- Internet Service Provider
- cable or DSL modem, ONT -> splitter
- Fiber To The Home
- (central office) Headend
- Internet Service Provider
- AP, Ethernet switch
- Institutional link to ISP
shared access network
- wireless LANs: Wireless Fidelity(shared network)
- wide-area wireless access(shared network)
: the physical materials that are used to store or transmit information in data communications
- guided: wired
- Twisted-pair cable: copper wires, behind the ethernet
- Coaxial cable: copper conductor, broadband
- Fiber-optic Cable: high speed, low error rate
- unguided: wireless
- radio link types
- connecting network edges(⊃ end hosts)
- the mesh of interconnected routers
- when sending packets, forwarding from a router to the next router
- routing: Get a path from source host to destination host using routing algorithms
- forwarding: Move packets from the before router to the next router using forwarding table
circuit switching | packet switching |
---|---|
call setup, resource reservation : the resources needed along a path |
No call setup, no resource reservation |
multiple users sharing a link by Frequency Division Multiplexing , Time Division Multiplexing |
full link capacity by dividing into small packets which have their own each destination address using store-and-forward transmission |
low speed | 3.5x users but after it.. low Quality Of Service |
in telephone networks | ~ |
- app in source Host ---link(by packets)---> app in destination Host
- how? storing bits until a packet and then forwarding it
- => total time
Internet = A Network (by ISP) of Networks (end system)
host < access ISP < regional ISP (peering link) < Internet eXchange Point < Tier 1 ISP or Content Provider
- content provider has its own content provider network in its own data center
: source~destination seconds
- nodal processing delay: before forwarding a packet, should check its error and destination address
- opt to the quality of router
- queueing delay: when forwarding one packet, the other packet should wait in a buffer.
- opt to the number of network users => so variable
- traffic intensity = La/R ↑ ~1 infinite
when packet arrival rate(packet/sec) > output link capacity(L/R)
<=> over the queue -> dropped
- transmission to the link delay when starting to forward: A host send a packet of L bits over a link with transmission rate R bits/sec, then the time to transmit the packet is L/R sec. (link transmission rate = link capacity = link bandwidth)
- opt to bandwidth of output link
- propagation delay in the link: time = length / speed
- opt to the amount of data
- => end-end delay: the number of hop * L/R
: Packet Loss Rate (<-> Packet Delivery Rate)
- usually in router
- in a buffer when queueing delay, data > queue capacity => dropped
- host: re-transmission, network: waste of resource, user: delay
: sum of traffic <=> how much data has been moved between server and client
=> rate: bits/time unit
- instantaneous: throughput at the peak
- average: throughput on the average
- end-end average throughput == bottleneck link == min(Rs, Rc, R/10)
5 layers | explanation | protocol | encapsulation | controlled by |
---|---|---|---|---|
application | support network application | HTTP, SMTP, DNS(#24-DNS), FTP | message | user(app developer) |
transport | data transfer process <-> process | TCP, UDP | + segment | OS |
network | find path | IP, routing protocols | + datagram | OS |
link | data transfer by hop from source to destination | Ethernet, WiFi | + frame | OS |
physical | on the wire like cable, radio | bits | Protocol Data Unit | OS |
- layering: modularization -> maintenance, system update
- encapsulation: message + headers..
- source -> switch(link+physical) -> router(network+link+physical) -> destination(only message + segment are from source)
- always start from physical layer and go up by figuring out the needed info by the headers
network apps(ex. gmail, youtube, zoom, game) work only on end systems
model | communication | data consumer | data provider | scaling |
---|---|---|---|---|
client-server model | process of client <-> process of server | client on/off dynamic IP address |
server always on permanent IP address |
data centers↑ |
Peer-2-Peer model | arbitrary end system <-> arbitrary end system | all devices | all devices | peer↑(self-scalability) |
- A network socket is a software structure within a network node of a computer network that serves as an endpoint for sending and receiving data across the network.
- door: application -> (socket) -> transport -> ...
for http message to web server
- well known port numbers: 80(HTTP), 25(mail)
- email: SMTP > TCP
- remote terminal access: Telnet > TCP
- web: HTTP > TCP
- file transfer: FTP > TCP
- open protocols: SMTP, HTTP, FTP, Telnet
- proprietary protocols: skype
- type: request/response message
- syntax: fields of message
- semantics: how to interpret fields
- rules
Transport Service | kinds of app | for |
---|---|---|
data integrity | file transfer, web transactions | no loss (<-> loss tolerant) |
timing | Internet telephony, interactive games | time sensitive (<-> delay) |
throughput | multimedia | minimum throughput (<-> elastic) |
Transport layer protocols | + | - | occasion |
---|---|---|---|
TCP | reliable | complex -> low speed | email, web, file transfer |
UDP | fast speed | unreliable | one-time transaction : streaming multimedia, internet telephony |
- TCP service: connection-oriented by handshaking
- error control: ~until no data error
- flow control: sender considers receiver's data capability
- congestion control: no data overload in router/switch
words
- HyperText Transfer Protocol
- Round Trip Time
- Uniform Resource Locator
- Carriage Return, Line Feed
- www: Webpage > base html file(frame) > objects > url(obj file loc)
- HTTP layers: application: HTTP > transport: TCP > network: IP > link: ethernet, wifi
- first object
- 1RTT for tcp connection request/response: new TCP connection socket created to initiate tcp connection
- 1RTT for http request(URL)/response(base HTML file: file transmission time): that socket deleted to terminate tcp connection
- second object: 2RTT + file transmission time
-> 4RTT+α => long latency
-> then... how about parallel TCP connection: 4 sockets(< OS) => overhead
: no tcp connection more after initiated it
- first object
- 1RTT for tcp: two tcp connection sockets created
- 1RTT for http: keep two sockets ()
- second object
- 1RTT for http: parallel objects request/response
-> 3RTT+α
: 1 line
- method + URL(after hostname) + version + cr + lf
- ex. GET /100sun/1.md HTTP/1.0\r\n
: 1<= line
- field name + : + value + cr + lf
- ex. Host: www.github.com\r\n
- ex. user-agent, accept-language, keep-alive(how long)
- cr + lf (end of header lines)
- ex. \r\n
: optional - like POST
- entire body
client can keep user session state in cookie file ex. my id in ebay, amazon
- HTTP request
- if first access: A server creates ID
- if not: send my id by each server with cookie headerline
- HTTP response msg
web caches = proxy server
- client for origin server
- server for client
overhead of origin server in
- client <-> proxy server <-> origin server
- if same request: client <-> proxy server
need to be fixed
- data rate from origin servers to browsers
- object size * request rate
- 0.1 Mbits * 15/s = 1.50Mbps
- access link rate
- 1.45Mbps
- LAN utilization
- data rate / LAN availability
- 1.5Mbps / 1Gbps = 0.15%
- access link utilization
- access link rate / date rate
- 1.5Mbps / 1.54Mbps = 0.99%
- total delay
- RTT from institutional router to origin servers
- 2s
- access delay
- access link rate / date rate
- 1.5Mbps / 1.54Mbps ≈ 1 → ∞ = minutes
- LAN delay
- μs
- RTT from institutional router to origin servers
- Increase Access Link Speed: expensive
- Install Local Cache
- Conditional GET