计算机网络——应用层

域名

计算机网络——应用层

  • 域名解析:

     主机向本地域名服务器递归查询,如果本地域名服务器不知道,则本地域名服务器向其它域名服务器询问

     本地域名服务器向根域名服务器(任播)迭代查询,根域名服务器要么给出IP地址,要么告诉本地域名服务器向哪个域名服务器进行查询

     使用UDP数据报

     使用缓存

计算机网络——应用层

 

 

文件传送协议

FTP,TFTP特点:必须获得本地文件副本,修改文件时,在副本上修改,然后将副本传回源节点

联机访问:NFS

文件传送协议FTP

基于TCP

服务器包括:1)主进程:打开端口21

                                         等待连接请求

                                         启动从属进程处理请求     

                     2)从属进程:处理单个请求

客户和服务器之间2个TCP连接:控制连接(21),数据连接(20)

       控制连接始终打开,客户通过控制连接发送传送请求

       服务器创建数据连接用来传送数据,传送完毕后关闭

计算机网络——应用层

  • 修改文件的不同

FTP:先将文件从服务器传给客户,客户修改后再将文件传给服务器

NFS:允许进程打开远地文件,并在其某个位置读写数据,只需传送少量修改数据

 

简单文件传送协议TFTP

基于UDP,代码所占内存小

控制连接(端口号69)+ 数据连接

发送完一个文件块后,等待确认

报文长度512字节

 

 

 

远程终端协议TELNET

利用TCP登录远程主机

服务器主进程+从属进程

网络虚拟终端NVT:用户击键和命令通过NVT格式传送

     

计算机网络——应用层

计算机网络——应用层

SSH:加密的远程登录系统

 

 

万维网WWW

统一资源定位符URL

计算机网络——应用层

URL:用来标识资源的具体位置

URI:可以作为所有资源的标识码

 

超文本传输协议HTTP

端口80

无状态、无连接

使用TCP连接

  • 步骤:

      1.服务器监听TCP端口80

      2.客户(浏览器)向服务器发出连接建立请求

      3.服务器建立TCP连接

            HTTP/1.0:每请求一个文档有2RTT的开销,非持续连接,服务器发送HTTP响应报文后就断开连接

            HTTP/1.1:持续连接,服务器发送HTTP响应报文后仍然保持一段时间的连接

                              持续连接工作方式:

                                     非流水线:客户收到前一个响应才能发送下一个请求

                                     流水线:不要等到响应就能发送下一个请求

            第三次握手,客户将HTTP请求报文作为响应

计算机网络——应用层

      4.客户向服务器发出浏览某个页面的请求,服务器返回所请求的页面

      5.释放TCP连接

 

代理服务器:

缓存请求和响应

可在客户端、服务器、中间系统工作

 

HTTP报文结构

计算机网络——应用层

请求报文:

计算机网络——应用层

计算机网络——应用层

响应报文:

计算机网络——应用层

计算机网络——应用层

 

  • 服务器存放用户信息:

      Cookie:为用户产生唯一识别码,作为用户在服务器后端数据库的索引,在HTTP响应报文中添加set-cookie

计算机网络——应用层

      客户收到响应后,浏览器会在Cookie文件中添加服务器主机名和识别码

      客户每发送HTTP请求报文,浏览器都会从Cookie文件中取出识别码,放在请求报文的首部中

计算机网络——应用层

 

  • 万维网的文档:

静态文档

动态文档:服务器需要运行应用程序,并动态创建文档内容

活动文档:浏览器请求时,服务器返回一端活动文档程序副本,浏览器负责运行该副本

 

 

电子邮件

邮件发送协议:SMTP, MIME(支持多种类数据)

邮件读取协议:POP3

电子邮件系统:用户代理;邮件服务器;邮件发送协议,邮件读取协议

均使用TCP连接

计算机网络——应用层

用户代理:客户端软件

步骤:1.用户代理把邮件用SMTP协议发送给发送方邮件服务器

           2.发送方服务器将邮件临时存放在缓存队列中。

           3.发送方SMTP客户与接收方SMTP服务器建立TCP连接,发送邮件

           4.接收方SMTP服务器把邮件放入收件人的用户邮箱

           5.收件人运行用户代理,使用POP3协议读取邮件

 

简单邮件传送协议SMTP

1.连接建立

      端口:25

      服务器 -> 客户:220 Service ready

      客户 -> 服务器:HELO+发送方主机名

      服务器 -> 客户:250 OK / 421 Service not available

      不使用中间的邮件服务器,发送方和接收方直接建立连接

2.邮件发送

      客户 -> 服务器:MAIL FROM: <[email protected]>

      服务器 -> 客户:250 OK / 451(处理时出错)/ 452(存储空间不够)/ 500(命令无法识别)

      客户 -> 服务器:RCPT TO: <收件人地址>,

                                 每发送一个RCPT命令,都从SMTP服务器返回250/ 550(无此用户)

      客户 -> 服务器:DATA命令

                                服务器返回354 Start mail input; end with<CRLF>.<CRLF>/ 421(服务器不可用)/ 500(命令无法识别)

      客户 -> 服务器:<CRLF>.<CRLF>

      服务器 -> 客户:250 OK

3.连接释放

      客户 -> 服务器:QUIT

      服务器 -> 客户:221(服务关闭)

  • STMP缺点:

1.不经过鉴别

2.只支持ASCII码

3.明文,不利于保密

  • 扩充SMTP:

客户端鉴别

接受二进制报文

服务器接受分块传送的大报文并检查报文大小

安全传输TLS

使用国际化地址

使用扩充SMTP时,客户端发送EHLO报文,如果被拒绝,则依然要使用SMTP

 

邮件读取协议POP3和IMAP

  • 邮局协议POP:

目前使用POP3

只要用户从服务器读取了邮件,服务器就把该邮件删除

改进:设置读取后仍然存放的时间

  • 网际报文存取协议IMAP:

用户在自己的计算机可以操纵邮件服务器的邮箱

若用户需要打开某个邮件,则该邮件才传到用户计算机

计算机网络——应用层

 

通用互联网邮件扩充MIME

  • SMTP缺点:

不能传送可执行文件/二进制对象

限制传送ASCII码

拒绝超过一定长度的邮件

某些实现没有完全按照互联网标准

计算机网络——应用层

 

 

 

动态主机配置协议DHCP

允许一台计算机加入新的网络自动获取IP地址、子网掩码、默认路由器的IP地址、域名服务器的IP地址

  • 步骤:

1.客户(端口68)广播发现报文

2.DHCP服务器(端口67)查找数据库中该计算机的配置信息并返回提供报文

如果没有,则取一个地址分配给计算机(临时)

3.客户从多个DHCP服务器的返回中选择一个,向其发送确认报文,并绑定IP地址

每个网络有一个DHCP中继代理,配置了DHCP服务器的IP地址信息

计算机网络——应用层

  • IP地址时效限制:

IP地址设置计时器T1, T2

当T1(0.5T)时间到达,客户发送请求更新租用期

服务器同意,客户重新设置计时器;服务器不同意,客户重新申请IP地址

若T2(0.875T)时间到且服务器没有相应,则用户重新发送请求更新租用期

 

 

简单网络管理协议SNMP

计算机网络——应用层

基于UDP/IP协议

基本功能:监控网络性能,检验分析网络差错,配置网络设备

 

 

应用进程跨越网络的通信

套接字接口

socket系统调用请求创建套接字,分配网络通信所需资源,返回套接字描述符

通信完毕后,通过close系统调用通知操作系统回收套接字描述符相关的资源

计算机网络——应用层

  • 1.建立连接:

socket:创建套接字

bind:指明套接字的端口号和IP地址

          客户端可以不调用bind,由内核自动分配动态端口号

listen:服务器将套接字设置为被动方式,接受客户的服务请求

accept:服务器接受客户的连接请求

             并发状态下,主进程创建从属进程与客户进程建立连接,主进程继续调用accept接受下一个连接请求

connect:客户进程发送连接请求

  • 2.数据传送:

send

recv

  • 3.连接释放:

close

TCP系统调用流程:

计算机网络——应用层

 

UDP不使用listen和accept