计算机网络笔记-应用层

术语

client-server architecture:用户-服务器结构;有一个永远开机的服务器,为用户的请求服务

P2P architecure:一群彼此连通的战绩(用户的电脑)进行交流

self-scalability:指P2P架构的扩展性

client/server process:用户/服务器进程;启动链接的进程是用户进程,等待连接的是服务器进程

socket:套接字;应用层通讯的接口

API(Application Programming Interface):编程接口

IP address:主机的编号

port number:端口号,主机上进程的编号

SSL(Secure Socket Layer):TCP传输中保证安全性的措施

UDP(User Datagram Protocol):轻量级,不保证数据送达的传输协议

HTTP(HyperText Transfer Protocol):应用层定义传递信息结构的协议,常用于网页

base HTML file:组成网页的一个文件

URL(Uniform Resource Locator):在互联网中一个文件的地址

stateless protocol:无记忆协议;不储存用户信息的协议

RTT(round-trip time):信息走过用户-服务器-用户这一路径的时间

cookies:网站储存用户信息的机制

proxy server:储存网页的缓存cache

CDN(Content Distribution Network):Google等公司储存网络文件的服务器组成的网络

SMTP(Simple Mail Transfer Protocol):电子邮件传递方式的协议

pull protocol:获得信息的协议(从用户的角度)

push protocol:送出信息的协议(从用户的角度)

POP3(Post Office Protocol-Version3):从邮件服务器收件的协议

IMAP(Internet Mail Access Protocol):作用同上

DNS(Domain Name System):将域名转换乘IP地址的系统

DNS server:提供DNS服务的服务器

Host aliasing:主机假名(混淆);多个域名对应一个真正的域名

Mail server aliasing:邮件地址的假名

Loading distribution:将对同一个域名的请求分配给不同IP地址分服务器

TLD(Top-Level Domain)运命的一部分,例如amazon.com

RR(Resource recover):域名-IP地址的映射记录

nslookup program:查询域名的软件

registrar:域名的登记信息

DHT(Distributed Hast Table):在P2P系统中文件分布情况的表格

DASH(Dynamic Adaptive Streaming over HTTP):动态选择视频清晰度的机制

manifest file:不同清晰度的视频的URL表

Enter Deep:将储存文件的服务器放在ISP(Internet Server Provider)旁边的策略

Bring Home:将储存文件的服务器放在IXPs旁边的策略

一、网络应用层概述

1.结构:用户-服务器结构;P2P结构

2.进程通讯

(1)区分用户进程和服务器进程

(2)进程之间的结构:套接字

(3)IP定位服务器;端口号定位服务器上具体哪一个进程

3.传输层服务

  • 传输的可靠性:数据不会丢失;吞吐量;延迟;安全性

  • TCP提供的服务:连接驱动(connection-oriented service)、可靠

  • UDP提供的服务:无连接、不可靠

二、HTTP

1.网页概念:一个网页由几个文件(视频、html文件……)组成,这些文件都可以通过URL定位

2.HTTP基础:HTTP使用TCP协议;客户和服务器都要同意HTTP协议;服务器不储存客户信息,为无记忆协议

3.非持续连接HTTP(non-persistent connection):每传递一个文件都要重新开启一个TCP连接,具体过程如下:

(1)用户和服务器的HTTP进程(端口号80)建立TCP连接

(2)客户端向服务器发送请求文件,其中包含了需要的文件的地址

(3)服务器找到文件并发送给客户

(4)服务器进程准备关闭TCP连接

(5)客户端收到信息并且关闭连接

注:持续连接直到所有的文件传送完才关闭TCP连接

4.客户端发送信息格式

GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/5.0
Accept-language: fr

第一行:请求信息(request message)

  • 方法:GET, POST, HEAD, PUT, DELETE;表示请求的类别
  • URL区:/somedir/page.html;请求文件的路径
  • HTTP版本:HTTP/1.1

之后的行:头信息(header line)

  • Host: www.someschool.edu 指定服务器的域名,在缓存机制中要用
  • Connection: close 传送完文件就关闭TCP连接
  • User-agent: Mozilla/5.0 浏览器版本
  • Accept-language: fr 要求法语版本

5.服务器回复信息格式

HTTP/1.1 200 OK
Connection: close
Data: Sun 22 Mar 2020 20:12:24 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 18, Aug 2018 15:11:03 GMT
Content-length: 6821
Content-Type: text/html

(data data ....)

200 OK 状态码,还有400 Bad Request,404 Not Found……

6.cookies:就是你的电脑在访问一个服务器时会有一个ID,这个ID保存了客户端的行为,下次访问可以使用这次访问的记录

7.网页缓存/代理(Web caching/proxy server)

(1)思路:根据人们访问的局部性,可以在ISPs等地方拷贝最近访问过的网站。这样可以减少网页传输的延迟,而且成本低

image-20200322201958126.png

(2)条件-GET(conditional-GET)

cache里的内容要和原本的服务器内容保持一致,为达到此目的,在每次HTTP回复的时候加一行

Last-Modified: Wed, 9 Sep 2019 09:23:24

因此每次cache只要和原本的服务器交流头文件即可,如果文件被更新再将整个文件传输

三、SMTP

思路:Alice给Bob发邮件,Alice和Bob的电脑不可能已知开机等待邮件到来,因此要有邮件服务器,SMTP就发生在服务器之间

image-20200322202704809.png

SMTP交流步骤

(1)客户端和服务器建立TCP连接(端口号25)

(2)客户端和服务器传递信息来确认彼此身份(不是TCP的握手)

(3)客户端传递信息,完成后关闭TCP

3.传递信息格式

S表示server,站名为hamburger.edu

C表示client,站名为crepes.fr

S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr ... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with ”.” on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection

其中服务器返回“回复码”(reply code)220, 250……

客户端发送指令HELO, MAIL FROM, RCPT TO……

4.从邮件服务器获取邮件的协议(POP3,IMAP)

(1)思路:Bob的电脑要从邮件服务器取回新建,因为SMTP时送出信息的协议,因此需要另外的协议

(2)POP3:协议很简单,但是取走邮件后邮件服务器会删除邮件,同一封邮件只能在一个终端上阅读

(3)IMAP:协议比较复杂,但是可以在多终端上读邮件

四、DNS

1.DNS作用:把站名(例如www.someschool.com)传递给DNS,就可以获得服务器的IP地址;HTTP等应用要使用DNS;

DNS应用使用UDP传输协议,端口号为53

2.基础DNS结构

(1)根DNS服务器(root DNS server),TLD服务器(Top-Level Domain Server),权限DNS服务器(authoritative DNS server),本地DNS服务器

3.DNS服务过程

(1)PC将请求给本第DNS服务器(www.amazon.com)

(2)本地DNS服务器,从根DNS服务器获得.com的TLD服务器的IP地址

(3)本地DNS服务器,从TLD服务器获得amazon.com的权限DNS服务器的IP地址

(4)本地DNS服务器从权限DNS服务器获得www.amazon.com的IP地址

(5)本地DNS服务器把IP地址给PC
image-20200323141207394.png

4.DNS缓存:本地DNS会储存站名-IP地址对(2天),当由相同的请求到来时直接返回IP地址

5.DNS记录

DNS服务器内的记录(RR),有如下形式

(Name, Value, Type, TTL)

TTL(time to live):表示记录的有效时长

TypeNameValue
A站名IP地址(relay1.bar.foo.com, 145.37.93.126, A)
NS域名站名(foo.com, dns.foo.com, NS)
CNAME站名(假名)真站名(foo.com, relay1.bar.foo.com, MX)
MX站名(假名)真正的邮件站名(foo.com, mail.bar.foo.com, MX)

6.DNS消息:请求和回复消息格式一样
image-20200322210728634.png

identification:这条消息的编号

Flags:请求/回复标志(为0请求,为1回复);权限标志(为1表示为权限DNS回复的消息)……

Question:(1)请求的Name(2)请求的记录的Type

Answer:回复消息中对应请求的DNS记录

权限信息:其他权限DNS服务器的信息

附加信息:如果回答中有假名,附加信息可能真正站名对应的IP地址

五、P2P文件传输

1.客户-服务器结构:所有的客户都从一个主机下载文件,延迟为
D c s = max ⁡ { N F / u s , F / d m i n } D_{cs} = \max \{NF / u_s, F / d_{min}\} Dcs=max{NF/us,F/dmin}
其中F:一个文件的大小;N:客户数量; u s u_s us服务器上传速度; d m i n d_{min} dmin:最小客户下载速度

客户服务器结构的示意图如下,在上述计算公式中将Internet的传输速度理想化为无限快。

image-20200323140009672.png

2.P2P结构:有一个服务器和N个已经开始下载文件的的电脑,新加入了Alice的电脑开始下载,则延迟为:
D P 2 P = max ⁡ { F / u s , F / d m i n , N F / ( u s + ∑ i = 1 N u i ) } D_{P2P} = \max \{F / u_s, F / d_{min}, NF / (u_s + \sum^N_{i = 1}u_i)\} DP2P=max{F/us,F/dmin,NF/(us+i=1Nui)}
其中 u i u_i ui:N个正在下载电脑的上传速度,其他符号和上面公式相同,下面是P2P结构的示意图

image-20200323140121101.png

比较一下两种结构的延迟增长

image-20200323135938797.png

六、视频流和CDN

1.DASH:视频已经被处理乘不同的大小和质量;使用DASH传视频时,会给不同网速的客户传递不同质量的视频

2.CDN的分布方式

(1)Enter Deep:在ISPs附近不知服务器,这样服务器的数量会比较大,Akamai采用这种方法

(2)Bring Home:在Internet Exchange Points(IXPs)布置服务器,这样服务器数量较少,Limelight等CDN公司采用这种方法

3.CDN的操作步骤

例:客户要访问www.NetCinema.com上的http://video.netcinema.com/666视频,NetCinema使用KingCDN的服务

(1)客户访问了www.NetCinema.com的网站

(2)客户点击了http://video.netcinema.com/666,因此客户将信息传递给本地DNS服务器

(3)最终NetCinema的权限DNS服务器将KingCDN权限DNS服务器的IP地址返回给本地DNS服务器,而不是返回的视频的IP地址

(4)本地DNS服务器获得KingCDN提供的视频服务器IP地址

(5)本地DNS服务器将IP地址返回给客户

(6)客户从KingCND的服务器上获得视频

这一过程的示意图如下
image-20200323140237740.png

4.选择CDN服务器方法:由于CDN服务器有很多,因此要选择具体的一个

(1)地理位置最近:简单有效,但有时地理位置近,不一定最快

(2)实时测速:选择实时测试速度最快的服务器,比较复杂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值