[Network]Application Layer

本文探讨了网络应用程序的基础架构,包括客户端-服务器模型、对等(P2P)模型及其混合形式,并详细解析了HTTP、FTP、电子邮件及DNS的工作原理和技术特点。此外,还介绍了P2P网络中的文件分发和资源搜索机制。

1 Principles of Network Applications


1.1 Application Architectures

Client-Server
Peer-to-Peer
Hybird of C/S and P2P
--Skype
client-server: find the address of the remote client
client-client: direct communication
--Instant messaging

Similar with Skype


1.2 Application Requirements(From Transport Layer Services)

1. About Data Loss
2. Timing
3. Throughput
4. Security


2 Application-Layer Protocols


2.1 Web and HTTP

1. Properties of HTTP 

Uses TCP

Nonpersistent HTTP: One TCP connection for One object transmission

RTT: time for a small packet from client to server and back.

Response time: RTT(TCP connection) + RTT(HTTP request) + file transmission

 

Persistent HTTP: Multiple Objects on One TCP connection

HTTP is stateless: 

server maintains no information about past client requests.


2. HTTP Request messages:

Request line: method path protocol

Header lines

Entity body


3. HTTP Response messages:

Status line: protocol statuscode statusphrase

Header lines

Data


4. Cookies

As we have disscussed above, HTTP is stateless, so if we want to keep states of users, we must utilize the process of HTTP to get it. 

Most of Web Sites use cookies.

Four components:

1) cookie header line in HTTP request message

2) cookie header line in HTTP response message

3) cookie file kept on user's host, managed by user browser

4) cookie file kept on server database of Web sites

To sum up, HTTP is stateless for it does not store the information of user states. But we can store the cookies in user hosts and servers and let the HTTP messages carry states.


5. Web cache

Why caching

1) reduce response time

2) reduce traffic

With HTTP:

Use conditional GET: If-modified-since, Not-modified


2.2 FTP

FTP seperate control and data connections, see following:
out-of-band: 是控制和数据分离,当有紧急情况(控制数据须要传输时。控制传输具有较高的优先级)
1) client build control connection, server build data connection
2) FTP is stateful


2.3 Email

1. SMTP: reliably transfer email messages(TCP connection)
 
Compare with HTTP
HTTP: pull(GET); No such restriction; each object encapsulated in its own response msg
SMTP: push(transfer); 7-bit ASCII; multiple objects sent in multiple msg
Message Format: 7-bit ASCII
header lines (if extention, add some lines to declare the file type)
body
2. POP3
Store email locally.
3. IMAP
Store on mail server.

4. The difference of them
This part I most quoted from the page.
SMTP is the basis. POP3(locally, stateless) and IMAP(on the server, stateful-folder) are used to access the mails.

2.4 DNS

TLD: Top-Level-Domain com, cn, org ...

1. DNS records
hostname is the name of a host - ibm
domain is part of URL you can consider as. - ibm.com
alias name is URL - www.ibm.com
canonical name is real name - servereast.backup2.ibm.com
2. DNS Protocol, Message
query and reply messages
header: identification and flags
some fields
3. An Example: Inserting records into DNS

(networkutopia.com,dns1.networkutopia.com, NS)

(dns1.networkutopia.com,212.212.212.1, A)

Then others can find your web site at IP 212.212.212.1

2.5 P2P

There are some properties of P2P: 
1) no always-on server
2) end systems directly communicate
3) peers change IP

1. File Distribution
C/S is "N copies upload and N copies download", but P2P is "One copy uploads and N copies download".

BitTorrent  
tracker: track peers participating in torrent.  - an individual
torrent: group of peers exchanging chunks of a file. - a group
The processes of bit torrent consist of pulling chunks and sending chunks. 
- When downloading chunks, the peer will request a list of chunks from its neighbors, and choose the rarest chunks first. (从最稀缺的内容開始)
- When uploading chunks, the peer will send chunks to four neighbors currently sending it chunks at highest rate.(投桃报李)
So one file will be held by several peers in the network and each peer can both download and upload. And there are some prescriptions for peers to down and up.
2. Searching for Information
Query blood
is a method to find resource in a P2P network. Because the graph of P2P network may not be connected by each node. So a query must be broadcasted in the network to find a resource.
It may cause DoS attack. 
The TCP connection built in the process of blooding form a hierarchical searching graph.
3. Skype
Almost similar with BitTorrent and Query blood.





End.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值