計算機網路-應用層筆記
憂傷的小馬:博客主頁:https://blog.csdn.net/qq_45504981
github傳送門:https://github.com/rzy0901
文章目錄
- 2.1 principles of network applications
- 2.2 Web and HTTP
- 2.3 electronic mail: SMTP,POP3,IMAP
- 2.4 DNS
- 2.5 P2P applications
- 2.6 Video streaming and content distribution networks (CDNs)
- 2.7 socket programming with UDP and TCP
- Reference:
2.1 principles of network applications
network apps:
-
Some network apps:
e-mail, web, text messaging, remote login, P2P file sharing, multi-user network games, streaming stored video(YouTube, Hulu, Netflix), voice over IP (e.g. Skype), real-time video conferencing, social networking, search.
-
Creating a network app:

- run on (different) end systems;
- communicate over network;
-
client-server:
- server: always on host, permanently ip, data centers for scaling.
- client: 可以斷開,dynamic ip;
-
P2P:
- no always on server;
- arbitrary end systems;
- peers are intermittently connected and change IP addresses(斷續連接,改變ip; )
- self-scalability.
Process, socket(套接字):
-
Who?: Process send/receive message to/from network.
-
Where?: Process send/receive message to/from sockets.
-
Process with same hosts: inter-process communication( defined by OS)
內部(process with same host)行程通信由作業系統決定,

P2P 既有server process 又有 client process.
IP and Port number
-
process has identifier (both ip address and port numbers)
-
32-bit ip address.
-
many processes run on same host.
所以需要埠?
-
Example port number:
- HTTP server: 80;
- Mail server: 25;
Internet transfer protocols service
TCP UDP 是傳輸層協議

-
TCP service:
-
Reliable transport; Flow control; Congestion control; Connection-oriented;
-
Dose not provide timing, minimum throughput guarantee, and security.
-
-
UDP service:
- Unreliable data transfer.
- Does not provide: reliability, flow control, congestion control, timing, throughput guarantee, security, or connection setup.


2.2 Web and HTTP
Web
-
Web page consists of objects.
object can be HTML file, JPEG image, Java applet, audio file,…
-
web page consists of base HTML-file which includes several referenced objects.
-
Each object is addressable by a URL.
HTML 基本檔案 (bases HTML-file) 通過物件的URL地址參考頁面中的物件,

HTTP overview
-
Hypertext transfer protocol
-
Web’s application layer protocol (應用層協議)
-
client/server mode.
-
uses TCP.(步驟從上到下1、2、3)
-
HTTP is stateless .
server maintains no information about past client request.
HTTP connection
-
non-persistent HTTP: (非持續連接HTTP)
At most one object sent over TCP connection.
Connection then closed.
Downloading multiple objects required multiple connections.
一個connection傳一個object. 每傳完object都會關閉connection.
-
persistent HTTP: (持續連接HTTP)
multiple objects can be sent over single TCP connection between client, server.
一個connection傳多個object.
Non-persistent HTTP


第4步,HTTP server 通知TCP斷開connection,但是直到TCP確認客戶完整收到回應報文為止,它才會實際中斷連接,
Non-persistent HTTP: response time
-
RTT (definition): time for a small packet to travel from client to server and back.
傳輸一個packet往返的時間,
-
Non-persistent HTTP: response time = 2*RTT+file transmission time.
一個RTT建立connection, 一個RTT傳輸HTTP request和HTTP response
Persistent HTTP
server leaves connection open after sending response.
One RTT needed.
HTTP message

HTTP request message
-

-

CR: carriage return;(回車) LF: line feed(換行) 其實就是\r\rn
request line coding = ASCII (human-readable format)
request line = method + url + http version
Uploading form input: POST method, URL method.
Method types:
-
HTTP/1.0:
GET. POST, HEAD
-
HTTP/1.1:
GET,POST,HEAD.
PUT, DELETE.(上傳或洗掉指定URL檔案)
-
HTTP response messages


User-server state: Cookies
-
Four components for “cookie”: (對應下圖藍色圓柱)
- cookie header line in HTTP response message.
- cookie header line in next HTTP request message.
- cookie file kept on user’s host, managed by user’s browser.
- back-end database at Web site.

第一次request沒有cookie, 創建ID:1678,回傳response message (cookie header line: Set cookie:1678)

Web caches (proxy server) 快取器、代理服務器
goal: satisfy client request without involving origin server
if HTTP request in cache:
? return HTTP response from cache
else:
? cache requests object from origin server
? then return object to client

Cache acts as server for original requesting client.
Cache acts as client to origin server.
Lower link utilization, lower delay.
Typically cache is installed by ISP (university, company, residential ISP).
1.減少回應時間 2.減少“交通壓力”3.使內容提供商更加有效傳輸資料Example:
Conditional GET
Goal: don’t send object if cache has up-to-date cached version
cache: specify date of cached copy in HTTP request:
- If-modified-since: <date>
server: response contains no object if cached copy is up-to-date:
- HTTP/1.0 304 Not Modified
2.3 electronic mail: SMTP,POP3,IMAP
Electronic mail:

-
Three major components:
- user agent;
- mail server;
- SMTP (simple mail transfer control);
-
User agent:
-
composing, editing, reading mail messages;
-
outgoing, incoming messages stored on server;
mailbox : incoming messages
message queue: outgoing messages
-
-
Mail server:
- mailbox contains incoming messages for user;
- message queue of outgoing (to be sent) mail messages;
- SMTP protocol between mail servers to send email messages;
Scenario:

(1)Alice uses UA to compose message to bob@someschool.edu;
(2)Alice’s UA sends message to her mail server; message placed in message queue;
(3)client side of SMTP opens TCP connection with Bob’s mail server;
(4)SMTP client sends Alice’s message over the TCP connection;
(5)Bob’s mail server places the message in Bob’s mailbox;
(6)Bob invokes his user agent to read message;
Electronic Mail: SMTP
-
uses TCP to reliably transfer email message from client to server, port 25;
-
direct transfer: sending server to receiving server;
-
three phases of transfer:
-
handshaking (greeting);
-
transfer of messages;
-
closure;
-
-
command/response interaction (like HTTP):
- commands: ASCII text
- response: status code and phrase
-
messages must be in 7-bit ASCII;
-
SMTP uses persistent connections;
-
\r\n.\r\ndetermines end of message.

三次握手以后,連接建立成功,服務器推送就緒資訊:
- 220: 服務就緒
server: 交代認證服務器域名,發件者郵箱,收件者郵箱:
- 250
client: 發送
DATA\r\nserver: 服務器回傳354,表示自己已經作好接受郵件的準備.
client: 客戶端發送郵件正文
client: 正文結束符
.server: 服務端回傳250表示成功,
client: 郵件發送結束,客戶端請求斷開連接, 發送
QUIT\r\nserver: 服務器回傳211,提示斷開申請被采納,并主動斷開連接,整個郵件發送程序結束,
SMTP vs HTTP
-
SMTP: push (推協議)
HTTP: pull (拉協議)
-
both have ASCII command/response interaction, status codes;
-
HTTP: each object encapsulated in its own response message;
網頁上每個object都有自己的url鏈接?
-
SMTP: multiple objects sent in multipart message;
郵件很多附件?
Mail access protocols (郵件訪問協議)

-
POP: Post Office Protocol [RFC 1939]: authorization, download.
-
IMAP: Internet Mail Access Protocol [RFC 1730]: more features, including manipulation of stored messages on server.
-
HTTP: gmail, Hotmail, Yahoo! Mail, etc.


2.4 DNS
Domain Name system:
-
distributed database implemented in hierarchy of many name servers.
-
application-layer protocol: hosts, name servers communicate to resolve names (address/name translation)
域名,ip映射
DNS service:
-
Host name to ip address translation.
-
Host aliasing.
-
Mail server aliasing.
-
Load distribution.
replicated Web servers: many IP addresses correspond to one name.

DNS: a distributed, hierarchical database:

查詢 www.amazon.com ip地址:
- 查詢root dns server回傳com DNS server
- 查詢 .com DNS server回傳 amazon.com DNS server;
- 查詢 amazon.com DNS server 得到 www.amazon.com ip地址;
查詢 www.sustech.edu.cn ip地址:
- root dns server 回傳 cn;
- top 回傳 edu.cn;
- authoritative 回傳 sustech.edu.cn ?? www.sustech.edu.cn;
DNS servers
-
root name servers (根DNS服務器);
- contacts authoritative name server if name mapping not known
- gets mapping
- returns mapping to local name server

-
top-level domain (TLD) servers (頂級域服務器);
com org net edu aero cn
-
Authoritative DNS servers(權威DNS服務器);
- organization’s own DNS servers
- providing authoritative hostname to IP mappings for organization’s named hosts
- can be maintained by organization or service provider
-
Local DNS name server. (default name server)
-
does not strictly belong to hierarchy
-
each ISP (residential ISP, company, university) has one
-
when host makes DNS query, query is sent to its local DNS server
-
has local cache of recent name-to-address translation pairs;
(but may be out of date!)
-
acts as proxy, forwards query into hierarchy;


-
-





2.5 P2P applications
Pure P2P architecture:
-
no always on server;
-
arbitrary end systems;
-
peers are intermittently connected and change IP addresses(斷續連接,改變ip; )
-
self-scalability.
examples:
- file distribution (BitTorrent)
- Streaming (KanKan)
- VoIP (Skype)
File distribution:
Question: how much time to distribute file (size F) from one server to N peers?

| Parameter | Description |
|---|---|
| u s u_s us? | server upload capacity |
| u i u_i ui? | peer i i i upload capacity |
| d i d_i di? | peer i i i download capacity |
| d m i n d_{min} dmin? | minimum download capacity: d m i n = m i n { d 1 , d 2 , . . . , d N } d_{min}=min\{d_1,d_2,...,d_N\} dmin?=min{d1?,d2?,...,dN?} unit: b i t s / s e c bits/sec bits/sec |
| D c ? s D_{c-s} Dc?s? | time to distribute F F F to N N N clients |
| F F F | File size |
- For client server model:
D c ? s ≥ m a x { N F / u s , F / d m i n } D_{c-s}\geq max\{NF/u_s,F/d_{min}\} Dc?s?≥max{NF/us?,F/dmin?}
N 足夠大,由 N F / u S NF/u_S NF/uS?決定
- For P2P model:
D c ? s ≥ m a x { F / u s , F / d m i n , N F / ( u s + ∑ u i ) } D_{c-s}\geq max\{F/u_s,F/d_{min},NF/(u_s+\sum u_i)\} Dc?s?≥max{F/us?,F/dmin?,NF/(us?+∑ui?)}
極限為: m a x { F / u s , F / d m i n , F / u i m i n } max\{F/u_s,F/d_{min},F/u_{i_{min}}\} max{F/us?,F/dmin?,F/uimin??}
P2P file distribution: BitTorrent
- file divided into 256 Kb chunks.
- peers in torrent send/receive file chunks.


2.6 Video streaming and content distribution networks (CDNs)




Bob通過local dns server訪問netcinema,netcinema給了他一個新的url --> Bob 通過新的url 訪問資源,
2.7 socket programming with UDP and TCP
略
- 轉載請注明出處:
https://blog.csdn.net/weixin_44077955/article/details/112125922
文章難免有疏漏錯誤之處,歡迎私信博主及時更正,大家共同進步😜,
Reference:
①:計算機網路-自頂向下方法
②:http://gaia.cs.umass.edu/kurose_ross/ppt.htm
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/243831.html
標籤:其他





