[Network]Application Layer
1 Principles of Network Applications
1.1 Application Architectures
Client-Server
Peer-to-Peer
Hybird of C/S and P2P
--Skypeclient-server: find the address of the remote clientclient-client: direct communication--Instant messagingSimilar with Skype
1.2 Application Requirements(From Transport Layer Services)
1. About Data Loss2. Timing3. Throughput4. 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 connection2) FTP is stateful
2.3 Email
1. SMTP: reliably transfer email messages(TCP connection)
Compare with HTTPHTTP: pull(GET); No such restriction;
each object encapsulated in its own response msgSMTP: push(transfer); 7-bit ASCII;
multiple objects sent in multiple msgMessage Format: 7-bit ASCIIheader lines (if extention, add some lines to declare the file type)body2. 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 - ibmdomain is part of URL you can consider as. - ibm.comalias name is URL - www.ibm.comcanonical name is real name - servereast.backup2.ibm.com2. DNS Protocol, Message
query and reply messagesheader: identification and flagssome fields3. 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 server2) end systems directly communicate3) 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".
BitTorrenttracker: track peers participating in torrent. - an individualtorrent: group of peers exchanging chunks of a file. - a groupThe 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 bloodis 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.
[Network]Application Layer的更多相关文章
- 课程一(Neural Networks and Deep Learning),第四周(Deep Neural Networks) —— 3.Programming Assignments: Deep Neural Network - Application
Deep Neural Network - Application Congratulations! Welcome to the fourth programming exercise of the ...
- ALPN(Application Layer Protocol Negotiation)
ALPN (Application Layer Protocol Negotiation)是TLS的扩展,允许在安全连接的基础上进行应用层协议的协商.ALPN支持任意应用层协议的协商,目前应用最多是H ...
- Neural Networks and Deep Learning(week4)Deep Neural Network - Application(图像分类)
Deep Neural Network for Image Classification: Application 预先实现的代码,保存在本地 dnn_app_utils_v3.py import n ...
- [Network]Transport Layer
1 Principles behind Transport Layer Services 1.1 Multiplexing/Demultiplexing Multiplexing at sender ...
- Core abstraction layer for telecommunication network applications
A new sub-system, the core abstraction layer (CAL), is introduced to the middleware layer of the mul ...
- [Network] 计算机网络基础知识总结
计算机网络学习的核心内容就是网络协议的学习.网络协议是为计算机网络中进行数据交换而建立的规则.标准或者说是约定的集合.因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标 ...
- 【Network】Calico, Flannel, Weave and Docker Overlay Network 各种网络模型之间的区别
From the previous posts, I have analysed 4 different Docker multi-host network solutions - Calico, F ...
- Overlay network 覆盖网络
From Wikipedia, the free encyclopedia An overlay network is a computer network that is built on top ...
- How Network Load Balancing Technology Works--reference
http://technet.microsoft.com/en-us/library/cc756878(v=ws.10).aspx In this section Network Load Balan ...
随机推荐
- IDFA的值什么时候会发生改变
在何种情况下 , 应用的IDFA值会发生改变? 近期工作中须要获得一个能够唯一地标示每个不同应用的ID,之前的苹果UDID已经不让使用了. 那么我们须要使用新的IDFA来引用.可是在某些情况下这个ID ...
- 调用一个系统命令,并读取它的输出值(使用QProcess.readAll)
下面我们再看一个更复杂的例子,调用一个系统命令,这里我使用的是 Windows,因此需要调用 dir:如果你是在 Linux 进行编译,就需要改成 ls 了. mainwindow.h #ifndef ...
- c++中虚函数和纯虚函数定义
只有用virtual声明类的成员函数,使之成为虚函数,不能将类外的普通函数声明为虚函数.因为虚函数的作用是允许在派生类中对基类的虚函数重新定义.所以虚函数只能用于类的继承层次结构中. 一个成员函数被声 ...
- 【剑指offer】和为定值的两个数
转载请注明出处:http://blog.csdn.net/ns_code/article/details/24933341 题目描写叙述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的 ...
- 承载于以太网帧之上的数据包的解析——ARP、IPv4、IPv6
承接上一博文而来,继续解析网络数据包,对于承载在以太网上的三种协议进行了解析,主要是分为依据RFC定义的标准先解析头部数据,然后得到有效载荷,即为协议包括的实体数据,更上层进行进一步处理. 一.ARP ...
- Caché Monitor 2.03发布,Caché的SQL开发工具 - 开源中国社区
Caché Monitor 2.03发布,Caché的SQL开发工具 - 开源中国社区 Caché Monitor 2.03发布,Caché的SQL开发工具
- Nginx分时段限制下载速度解决方案(原创)_于堡舰_新浪博客
Nginx分时段限制下载速度解决方案(原创)_于堡舰_新浪博客 Nginx分时段限制下载速度解决方案(原创) (2011-03-02 16:40:49) 转载▼ 标签: ngi ...
- Oracle 调用存储过程执行CRUD的小DEMO
-----------------------------修改(表名,主键ID,要修改的列) create or replace procedure pro_code_edit(p_tbname in ...
- Windows - Windows的文件名的全路径(Fully Qualified File Name)的最大长度为260字节
例如,你可以做以下实验来验证这个限制值: 在随意文件夹下新建一个文件夹. 在该新建文件夹下创建一个随意文件.使其名字长度不能再输入为止. 把该文件的全路径名copy到Microsoft Word中进行 ...
- zoj2314(有上下界的网络流)
传送门:Reactor Cooling 题意:给n个点,及m根pipe,每根pipe用来流躺液体的,单向的,每时每刻每根pipe流进来的物质要等于流出去的物质,要使得m条pipe组成一个循环体,里面流 ...