应用层 | Personal Blog

应用层

DNS

域名系统DNS用来将机器名字转化为IP地址

当某个进程需要将主机名解析为IP地址时,该进程就调用解析程序,向本地域名服务器发送UDP报文,由本地域名服务器查找域名,发送回答报文

域名最多不能超过255个字符,每一个标号不能超过63个字符,由左往右域名等级逐级升高

一个域可以分为多个区,每个区设立一个权限域名服务器,保存区内所有主机的域名与IP地址的映射关系

FTP

文件传输协议FTP是使用的最广泛的文件传送协议

工作流程

1、建立连接阶段

该阶段是FTP客户端通过TCP三次握手与FTP服务器端进行建立连接。客户端向FTP服务器发出建立连接请求,FTP服务器对请求进行应答。如果FTP服务器上的21端口是启用的,可以接受来自其他主机的请求,给出应答220,表示服务就绪,即告诉客户端需要的FTP服务已经准备好了。返回应答以后,FTP服务器需要客户端进行身份认证,向客户端发送身份认证请求。

2、身份认证阶段

身份认证是指客户端需要向FTP服务提供登录所需的用户名和密码。FTP服务器对客户端输入的用户名和密码都会给出相应的应答。如果客户端输入的用户名和密码正确,将成功登录FTP服务器,此时进入FTP会话。

3、命令交互阶段

在FTP会话中,用户可以执行FTP命令进行文件传输,如查看目录信息、上传或下载文件等。客户端输入要执行的FTP命令后,服务器同样会给出应答。如果输入的执命令正确,服务器会将命令的执行结果返回给客户端。执行结果返回完成后,服务器继续给出应答。

4、断开连接阶段

当客户端不再与FTP服务器进行文件传输时,需要断开连接。客户端向FTP服务器发送断开连接请求,服务器收到断开连接后给出相应的应答。

  • FTP的服务端有两个进程
  1. 控制进程: 负责发送和接收请求,在会话过程中始终开启

  2. 数据传送进程: 在实际上完成文件的传输

WWW

万维网是一个大规模的、联机式的信息储藏所

URL

统一资源定位符URL用于表示互联网上资源的位置和访问方法

HTTP

万维网网点的某个进程不断地监视80端口,若有浏览器向其发送连接建立请求,则建立连接;浏览器向其发送浏览请求,服务器返回页面作为响应

HTTP使用TCP协议作为运输层协议

HTTP/1.0每发送一个文档需要一次TCP连接,即两倍RTT时间

HTTP/1.1采取持续连接,有两种工作方式

  • 非流水线方式:在客户收到响应后才能发送下一个请求,每次消耗一个RTT时间

  • 流水线方式: 客户端连续发送多个请求,服务器收到后就发送连续的响应,总共消耗一个RTT时间

  • 代理服务器:又称万维网高速缓存,把最近的请求和响应存放在磁盘中;本区域中的用户向代理服务器发送请求,若缓存中有对应的响应,则直接返回响应;若没有,则代替用户向源点服务器发送请求,

  • 报文结构

请求报文

响应报文

HTTP请求报文分为三个部分:

  1. 开始行:区分请求报文还是响应报文

  2. 首部行:用来说明浏览器,服务器或报文主体的信息

  3. 实体主体:一般不使用

1
2
3
4
5
6
GET /dir/index.htm HTTP/1.1      #相对URL
Host: www.xyz.edu.cn             #首部行的开始 提交主机域名
Connection: close                #表示服务器发送完请求文档就可以释放连接
User-Agent: Mozilla/5.0          #用户代理是使用火狐浏览器
Accept-Language: cn              #表示用户希望得到中文版本的文档
                                 #最后有一个空行
  • Cookie:为了方便服务器对某一用户的跟踪,使用Cookie作为服务器和客户之间的状态信息;当用户访问某一网站时,网站的服务器就产生一个唯一识别码作为该用户在数据库中的索引

DHCP

动态主机配置协议允许计算机不用手动参与即可加入网络获得IP地址

主机启动时即广播发现报文,DHCP中继代理收到广播后,即向DHCP服务器发送单播报文,DHCP服务器返回提供报文,由DHCP中继代理返还给主机

SNMP

简单网络管理协议通过客户程序和服务器程序控制网络

SMI

管理信息结构规定:

被管对象应怎样命名

所有的被管对象必须处于对象命名树上

用来储存被管系统数据类型有哪些

在网络上传送的管理数据应如何编码

T字段

L字段

单字节

多字节

V字段用于定义数据元素的值

MIB

SNMP报文

  • 请求标识符(request ID):这是由管理进程设置的一个整数值。代理进程在发送 get-response 报文时也要返回此请求标识符。 管理进程可同时向许多代理发出 get 报文, 这些报文都使用 UDP 传送, 先发送的有可能后到达。设置了请求标识符可使管理进程能够识别返回的响应报文对于哪一个请求报文。

  • 差错状态(error status):代理进程回答时填入0-5中的一个数字

  • 差错索引(error index):当出现 noSuchName、badValue 或 readOnly 的差错时,由代理进程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。

  • get/set变量部分:指明一个或多个变量的名和对应的值

应用进程跨越网络的通信

系统调用和应用编程接口

系统调用接口又称应用编程接口API,在应用程序和操作系统之间进行控制权的转移

系统调用

  • 连接建立:创建套接字,应用进程指明本地端口号及本地IP地址,服务器端将熟知端口号和本地IP填写入套接字中

  • 数据传送:客户和服务器都使用send系统调用传送数据,使用recv系统调用接收数据

  • 连接释放:调用close释放连接和撤销套接字

本文共2846字符