0%

计网总结(二):应用层

应用层

应用层协议原理

应用层程序体系结构

客户机/服务器体系结构:Web、FTP、Telent、e-mail

P2P体系结构:电话、文件分发、PTV

发起通信的进程为客户机,会话开始时等待联系的进程为服务器

套接字

应用程序通过套接字收发报文,套接字是应用程序进程和传输层协议之间的接口

支持应用的传输层协议

应用 应用层协议 传输层协议
邮件 SMTP TCP
远程终端访问 Telent TCP
Web HTTP TCP
文件传输 FTP TCP
流媒体 HTTP、RTP TCP或UDP
因特网电话 SIP、RTP UDP
目录服务 DNS UDP

进程寻址

识别接受进程需要的信息

  • 主机的名称或地址:ip地址
  • 用来指定目的主机上接受进程的标识:端口号

HTTP

超文本传输协议

HTTP是无状态协议:不保存关于用户机的任何信息

报文结构

请求报文

响应报文

HTTP状态码

类别 原因短语
1XX Informational(信息性状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求
5XX Server Error(服务器错误状态码) 服务器处理请求出错

Cookie和Session的区别

Cookie和session都是用来跟踪浏览器用户身份的会话方式

Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

Web缓存

Web缓存器也称代理服务器,有自己的磁盘存储空间,并在该存储空间中保存最近请求过的对象的拷贝

p70 2-11

优点
  • 可以减少对客户机请求的相应时间
  • 可以减少一个机构内部网与因特网接入链路上的通信量

条件GET方法

持久与非持久HTTP

  • 持久HTTP:连接持续期间,C-S经由一个服务器套接字交换HTTP报文
  • 非持久HTTP:对每一对请求/响应,都有一个新的TCP连接被创建,完成后即关闭

HTTP详见https://www.jianshu.com/p/a6d086a3997d

FTP

FTP使用两个并行的TCP连接来传输文件,一个是控制连接(21端口)一个是数据连接(20端口)

控制连接贯穿了整个用户会话期间,但是会话中的每一次文件传输都需要建立一个新的数据连接

FTP使用分离的控制连接,故FTP的控制信息是带外的

FTP命令与回答用ASCII格式在控制连接上传送

邮件传输协议

SMTP

p76 2-16

邮件服务器之间使用SMTP传送邮件

SMTP一般不用中间邮件服务器发送文件(两端直连)

邮件报文的主体部分职能用7位ASCII码表示,在传送邮件之前和之后需要编码和解码

与HTTP的区别
  • 拉协议vs推协议
  • SMTP要求7位ASCII码
  • HTTP用带内控制,FTP用带外控制

DNS

DNS组成

  • 分层的DNS服务器实现的分布式数据库
  • 允许主机查询数据库的应用层协议

DNS服务器的层次结构

根DNS服务器->顶级域服务器(TLD)->权威DNS服务器->本地DNS服务器

p89 2-21

DNS缓存:当DNS服务器接收到一个DNS回答时会将其缓存

使用UDP协议的原因:

客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过TCP三次握手,这样DNS服务器负载更低,响应更快。虽然从理论上说,客户端也可以指定向DNS服务器查询的时候使用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包

资源记录

提供主机名到IP地址的映射

(Name,Value,Type,TTL)

TTL:记录的生存时间(资源应从缓存中删除的时间)

Type Value
A IP地址
NS 权威DNS服务器的主机名
CNAME 别名为Name的主机对应的规范主机名
MX 别名为Name的邮件服务器的规范主机名

DNS报文

p91 2-23

P2P应用

C-S体系结构的缺点:分发时间由NF/u决定,随着对等方的数量N线性地增加

socket编程

TCP的socket编程