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.



[Network]Application Layer的更多相关文章

  1. 课程一(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 ...

  2. ALPN(Application Layer Protocol Negotiation)

    ALPN (Application Layer Protocol Negotiation)是TLS的扩展,允许在安全连接的基础上进行应用层协议的协商.ALPN支持任意应用层协议的协商,目前应用最多是H ...

  3. Neural Networks and Deep Learning(week4)Deep Neural Network - Application(图像分类)

    Deep Neural Network for Image Classification: Application 预先实现的代码,保存在本地 dnn_app_utils_v3.py import n ...

  4. [Network]Transport Layer

    1 Principles behind Transport Layer Services 1.1 Multiplexing/Demultiplexing Multiplexing at sender ...

  5. 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 ...

  6. [Network] 计算机网络基础知识总结

    计算机网络学习的核心内容就是网络协议的学习.网络协议是为计算机网络中进行数据交换而建立的规则.标准或者说是约定的集合.因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标 ...

  7. 【Network】Calico, Flannel, Weave and Docker Overlay Network 各种网络模型之间的区别

    From the previous posts, I have analysed 4 different Docker multi-host network solutions - Calico, F ...

  8. Overlay network 覆盖网络

    From Wikipedia, the free encyclopedia An overlay network is a computer network that is built on top ...

  9. 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 ...

随机推荐

  1. Codeforces Round #218 (Div. 2) (线段树区间处理)

    A,B大水题,不过B题逗比了题意没理解清楚,讲的太不清楚了感觉= =还是英语弱,白白错了两发. C: 二分答案判断是否可行,也逗比了下...二分的上界开太大导致爆long long了...   D: ...

  2. Android菜鸟的成长笔记(3)——给QQ登录界面说So Easy

    原文:Android菜鸟的成长笔记(3)--给QQ登录界面说So Easy 上一篇:Android菜鸟的成长笔记(2)--第一个Android应用 我们前面已经做了第一个Android应用程序,虽然有 ...

  3. 14.2.5.7 Physical Row Structure 物理数据结构:

    14.2.5.7 Physical Row Structure 物理数据结构: InnoDB物理记录结构依赖行格式 在表创建的时候, 默认, InnoDB 使用Antelope 文件存储格式和它的压缩 ...

  4. 构建基于Javascript的移动web CMS——模板

    在上一篇<构建基于Javascript的移动CMS--Hello,World>讲述了墨颀 CMS的大概组成,并进行了一个简单的演示样例,即Hello,World.这一次,我们将把CMS简单 ...

  5. [Android学习笔记]Android中多线程开发的一些概念

    线程安全: 在多线程的情况下,不会因为线程之间的操作而导致数据错误. 线程同步: 同一个资源,可能在同一时间被多个线程操作,这样会导致数据错误.这是一个现象,也是一个问题,而研究如何解决此类问题的相关 ...

  6.   PS2: 这篇文章中的图片绘图工具使用的是Dia (sudo apt-get install dia)。据说yEd也很不错。

    SBCL编译过程 - O.Nixie的专栏 - 博客频道 - CSDN.NET PS2: 这篇文章中的图片绘图工具使用的是Dia (sudo apt-get install dia).据说yEd也很不 ...

  7. gradle学习系列之eclipse中简单构建android项目

    看不到图片能够去訪问这个网址看看:http://pan.baidu.com/s/1o6FrFkA 一.什么是Gradle 官网www.gradle.org上介绍Gradle是升级版(evolved)的 ...

  8. 利用用户自己的server、tomcat下的解决iOS7.1企业应用无法安装应用程序 由于证书无效的问题

    1.环境 )操作系统:Windows server 2003.Windows server2008 )JDK:jdk 1.6 )apache-tomcat-6.0.35(注意版本号号,版本号6.0.1 ...

  9. VC6迁移到VS2008几个问题——良好的代码,从我做起,从现在开始。

    最近.有一个项目开发,需要使用一次项目的代码.只有当项目VC6下编译通过的,在VS2008下不一定编译通过,能编译通过也不一定能链接成功.以下总结一下我在一个VC6项目移植到VS2008中遇到的一些问 ...

  10. Ubuntu 问题解决汇总

    汇总一些ubuntu相关的问题 1.Ubuntu支持安装多媒体播放插件(新系统安装后必备) ubuntu-restricted-extras package allows users to insta ...