哈工大MOOC计算机网络第二章网络应用上

2.1网络应用层内容概述

2.2网络应用的基本原理

1.网络应用的体系结构

1>客户机/服务器结构(Client-Server,C/S)                如Web

        服务器不间断提供服务,客户机使用服务

        

        服务器:需要不间断提供服务,有永久性访问地址/域名,要有大量的服务器并行处理用户请求,同时具有可扩展性

        客户机:与服务器通信使用服务器提供的服务,可以间歇性接入网络,可能使用动态IP地址,不与其他客户机直接通信。

2>点对点结构(Peer-to-peer,P2P)                如文件共享

              

         没有永远在线的服务器,任意端系统/节点之间可以直接通讯,节点间歇性接入网络,节点可能改变IP地址。

         优点:高度可伸缩

         缺点:难于管理

3>混合结构(Hybird)                如Napster

        Mapster中文件传输使用P2P结构,文件搜索使用C/S结构。每个节点向中央服务器登记自己的内容,每个节点向中央服务器提交查询请求,查找感兴趣的内容。

        避免了都从服务器下载,避免了服务器成为性能瓶颈

2.网络应用进程通信

1>网络应用的基础:进程间通信

        同一主机上运行的进程之间如何通信?

                通过进程间通信机制,由操作系统提供

        不同主机上运行的进程间如何通信?

                通过消息交换

        客户机进程:发起通信的进程。服务器进程:等待通信请求的进程。(P2P架构中也存在客户机进程和服务器进程)

2>套接字Socket

        进程间通信利用Socket发送/接受消息实现,socket是操作系统提供的关于网络编程的API

        

 3>寻址进程

        不同主机上的进程间通信,那么每个进程必须拥有标识符。

        仅有IP地址不足以定位进程,因为同一主机上可能同时又多个进程需要通信

  端口号:为主机上每个需要通信的进程分配一个端口号(0-65536)

        HTTP Server:80端口

        Mail Server:25端口

        IP地址加上端口号唯一的标识一个网络上的进程

4>应用层协议

公开协议(HTTP,SMTP,.......)

          1.由RFC(Request For Comments)定义

           2.允许互操作

私有协议

            多数P2P文件共享应用

应用层协议的内容:

        消息类型:请求消息,响应消息

        消息的语法/格式:

                消息中有哪些字段,每个字段如何描述

   

         字段的语义:字段中信息的含义

        规则:进程何时发送/响应消息,进程如何发送/响应消息

3.网络应用的需求与传输层服务

网络应用对传输服务的需求:

        1.数据丢失/可靠性

                某些应用可以有一部分数据丢失:网络电话,视频丢帧

                某些应用要求100%可靠数据传输:文件传输,银行汇款等

        2.时间/延迟 

                有些应用只有在延迟足够低时才”有效“:网络电话,网络游戏

        3.带宽

                某些应用要求带宽达到最低要求时才有效:网络视频

                某些应用能够适应任何带宽——弹性应用:email

Internet提供的传输服务:

TCP服务UDP服务
面向连接客户机/服务器进程间需要建立连接无连接
传输可靠的传输        不可靠的数据传输
流量控制发送方不会发送过快超过接收方的处理能力
拥塞控制当网络负载过重时能够限制发送方的发送速度
延迟保障
带宽保障

2.3Web应用

1.Web与HTTP

Web基本构成要素: 

        网页,网页互相链接。

        网页包含多个对象(HTML文件/JPEG图片/视频文件/动态脚本等),基本HTML文件包含对其他对象引用的链接

        对象的寻址:URL统一资源定位器        Scheme://host:post/path

HTTP(超文本传输协议)协议概述:万维网应用遵循的协议

采用C/S结构

        客户——Browser:请求、接收、展示Web对象

        服务器——Web Server:响应客户的请求,发送对象

使用TCP传输服务

        1.服务器在80端口等待客户的请求

        2.浏览器发起到服务器的TCP连接(创建套接字Socket)

        3.服务器接受来自浏览器的TCP连接

        4.浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息

        5.关闭TCP连接

无状态机制:服务器不维护任何有关客户端过去所发请求的信息

2.HTTP连接

(1)HTTP连接的两种类型

        1>非持久性连接:每个TCP连接最多允许传输一个对象(HTTP 1.0版本使用)

      

                响应时间分析:Total=2RTT+文件发送时间

                        1.发起、建立TCP连接:1个RTT

                        2.发送HTTP请求消息到HTTP响应消息的前几个字节到达:1个RTT

                        3.响应消息中所含文件/对象传输时间

                                                

                        注:RTT从客户端发送一个很小的数据包到服务器并返回所经历的时间

                问题:

                        1.每个对象都需要2个RTT

                        2.操作系统需要为每个TCP连接开销资源

                        3.浏览器打开多个并行的TCP连接以获取网页所需对象,给服务器造成负担

        2>持久性连接:每个TCP连接允许传输多个对象 (HTTP1.1版本默认使用)

                发送响应后服务器保持TCP连接的打开,后续的HTTP消息可以通过这个连接发送

                分类:

                        1.无流水的持久性连接:客户端只有收到前一个响应后才发送新的请求

                                每个被引用的对象耗时一个RTT

                        2.带有流水机制的持久性连接:

                                客户端只要遇到一个引用对象就尽快发出请求,理想情况下收到所有的引用

                         对象只需耗时约1个RTT

3.HTTP消息格式

        请求消息、响应消息

        (1)HTTP请求消息

                使用ASCII码写成,人直接可读

        HTTP请求消息的通用格式:

        上传输入的方法:

                1>POST方法。在请求消息的消息体(entity body)中上传客户端的输入

                2>URL方法。使用GET方法,输入信息通过request行的URL字段上传

HTTP/1.0 HTTP/1.1
GETGET,POST,HEAD
POSTPUT 将消息体中的文件上传到URL字段所指定的路径
HEAD 请Server不要将所请求的对象放入响应消息中DELETE 删除URL字段所指定的文件

      (2)HTTP响应消息

      (3)HTTP响应状态代码

                处于响应消息的第一行

                常见状态代码:200 OK

                                          301  Moved Permanently

                                          400  Bad Request

                                          404  Not Found

                                          505  HTTP Version Not Supported

4.Cookie技术

        某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

        Cookie组件

                1.HTTP响应消息的cookie头部行

                2.HTTP请求消息的cookie头部行

                3.保存在客户端主机上的cookie文件,由浏览器管理

                4.Web服务器端的后台数据库

        原理:

        应用:身份认证,购物车,推荐,Web email.....

        问题:隐私问题

5.Web缓存/代理服务器技术

功能:在不访问服务器的前提下满足客户端的HTTP请求

作用

        1.缩短客户请求的响应时间

        2.减少机构/组织流量

        3.在大范围内实现有效的内容分发

原理

        1.用户设定浏览器通过缓存进行Web访问

        2.浏览器向缓存/代理服务器发送所有的HTTP请求

                case 1>如果所请求对象在缓存中,缓存返回对象

                case 2>否则,缓存服务器向原始服务器发送HTTP请求,获取对象,然后返回给客户端并保存该对象

                        

        因此缓存既充当客户端又充当服务器,一般由ISP架设

条件性GET方法

目标:如果缓存有最新的版本,则不需要发送请求对象

                

         缓存:在HTTP请求消息中声明所持有版本的日期。if-modified-since:<date>

          服务器:如果缓存版本是最新的,则响应消息中不包含对象。

                返回HTTP/1.0   304 Not Modified

                如果不是最新的,则返回数据

                 返回HTTP/1.0   200  OK  <data>

2.4Email应用

1.Email应用

构成:

        1.邮件客户端(外围):读、写Email消息,与服务器交互,收发Email消息

        2.邮件服务器(核心):为每一个用户存储一个邮箱;创建消息队列,存储等待发送的Email

        3.SMTP协议:邮件服务器之间传递消息所使用的协议

                1>使用TCP进行email消息的可靠传输

                 2>端口25

                3>传输过程的三个阶段:握手、消息的传输、关闭

                4>命令/响应交互模式

                        命令:ASCII文本

                        响应:状态代码和语句

                5>Email消息只能包含7位ASCII码 

Email应用示例:

SMTP交互示例:

SMTP与HTTP协议对比:

        不同点:HTTP是拉式(pull)获取网页信息,SMTP是推式(push)发送信息

                      HTTP每个对象封装在独立的响应消息中,SMTP多个对象在由多个部分构成的消息                中发送

        相同点:都使用命令/响应交互模式,命令和状态码都是ASCII码

 2.Email消息格式与POP3协议

SMTP协议传输的email消息格式

        头部行:To    From     Subject        与SMTP命令不同

        消息体:消息本身,只能是ASCII字符

MIME:多媒体邮件扩展

        通过在邮件头部增加额外的行以声明MIME的内容类型

        

         使用特定格式编码,收到邮件后解码

邮件访问协议:从服务器获取邮件

        1.POP协议

                1.认证/授权阶段  2.下载

        2.IMAP协议

                更多功能,更加复杂,能够操纵服务器上存储的信息

        3.HTTP协议

                163,QQ,Mail等

POP协议(无状态协议):

        1.认证过程

                客户端命令:User:声明用户名,Pass:声明密码

                服务器响应:+OK,-ERR

        2.事务阶段

                List:列出消息数量

                Retr:用编号获取消息

                Dele:删除消息

                Quit

                ​​​​​​​        ​​​​​​​        ​​​​​​​        

        几个模式

                1>下载并删除模式:用户如果切换客户端软件,无法重读该邮件

                2>下载并保持模式:不同客户端都可以保留消息的拷贝

IMAP协议(有状态协议)

        所有消息统一保存在一个地方:服务器

        允许用户利用文件夹组织消息

        IMAP支持跨会话的用户状态:文件夹的名字,文件夹与消息ID的映射等

2.5DNS应用

1.DNS概述:Domain Name System

        解决Internet上主机/路由器的识别问题:IP地址,域名

1.DNS域名解析系统:将域名翻译成IP地址

        多层命名服务器构成的分布式数据库

        应用层协议:完成名字的解析(Internet核心功能,用应用层协议实现)

DNS服务
        1>域名向IP地址的翻译

        2>主机别名

        3>邮件服务器别名

        4>负载均衡

为什么不使用集中式的DNS

        1>单点失败问题

        2>流量问题:流量巨大,成本高昂

        3>距离问题

        4>维护性问题

2.分布式层次式数据库

        1>.根域名服务器  全球13个

                本地域名解析服务器无法解析域名时,访问根域名服务器

                1.如果不知道映射,访问权威域名服务器

                2.获得映射

                3.向本地域名服务器返回映射

        2>.顶级域名服务器TLD

                负责com,org,net,edu等

                顶级域名和国家顶级域名,如cn,uk,fr等

        3>.权威域名服务器

                组织的域名解析服务器,提供组织内部服务器的解析服务

                组织和服务提供商负责维护

        4>.本地域名解析服务器

                不严格属于层级体系

                每个ISP有一个本地域名服务器(默认域名解析服务器),当主机进行DNS查询时,查询被发送到本地域名服务器

                本地域名服务器作为代理(proxy),将查询转发给(层级式)域名解析服务器系统

3.DNS查询方式:

        1>迭代查询

                

        2> 递归查询

             

4.DNS记录缓存和更新

缓存:

        只要域名解析服务器获得域名——IP映射,即缓存这一映射。一段时间后,缓存条目失效(删除)。

        本地域名服务器一般会缓存顶级域名服务器的映射,因此根域名服务器不经常被访问。

更新:RFC 2136

2.DNS记录和消息格式

1.DNS记录

资源记录:RR format:(name,value,type,ttl)

Type=A

        Name:主机名

         Value:IP地址

Type=NS

        Name:域(edu.cn)        

        Value:该域权威域名解析服务器的主机域名

Type=CNAME

        Name:某一真实域名的别名

        Value:真实域名

 Type=MX

        Value是与name相对应的邮件服务器

2.DNS协议与消息

DNS协议:

        查询和回复消息,消息格式相同

        消息头部:

                Identification:16位查询编号,回复使用相同编号

                 flags:查询或回复,期望递归,递归可用,权威回答

3.注册域名

在域名管理机构注册域名

        向域名管理机构提供权威域名解析服务器的名字和IP地址

        域名管理机构向顶级域名解析服务器中插入两条记录(一条插入域名,dns服务器,资源类型记录,一条插入对应的IP地址)

如图:

在权威域名解析服务器中加入为域名加入Type A记录,为域名加入Type MX记录

        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SZn..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值