一、网络应用层内容概述

1、网络应用的体系结构

(1)客户机/服务器(C/S结构);

(2)P2P(对等连接结构);

(3)混合结构;

2、网络应用的服务要求

(1)可靠性;

(2)带宽;

(3)时延;

3、Internet传输层服务模型

(1)TCP;

(2)UDP;

4、特定的网络应用及协议

(1)HTTP;

(2)SMTP、POP、IMAP;

(3)DNS;

(4)P2P引用;

5、Socket编程

(1)TCP;

(2)UDP;

二、网络应用的基本原理

1、网络应用的特点及示例介绍

(1)典型网络应用

百度、QQ、email、迅雷、支付宝、微信、百度云、淘宝、网易等。

(2)网络应用的特点

①信息的开放性;

②信息的互动性;

③信息传播的迅速性;

④能实现数据信息传输和集中处理;

⑤可以共享计算机系统资源;

⑥能进行分布式处理;

⑦综合信息服务;

2、网络应用体系结构

(1)客户机/服务器结构(C/S结构)

①客户是服务请求方,服务器是服务提供方;

②客户机和服务器都是指计算机进程(软件);

例:

(2)P2P结构

①没有永远在线的服务器;

②任意端系统/节点之间可以直接通讯;

③节点间歇性接入网络;

④节点可能改变IP地址;

(3)混合结构

例:

3、网络应用进程通信

(1)进程

主机上运行的程序。

(2)同一主机上运行的进程之间的通信方法

由操作系统提供的进程间的通信进制。

(3)不同主机上运行的进程的通信方法

消息交换;

(4)套接字:Socket

进程之间的通信利用socket发送/接收消息;

传输基础设施向进程提供API(传输协议的选择,参数的设置);

(5)寻址方法

①不同主机上的进程通信,每个进程必须拥有标识符(IP地址+端口号);

②为主机上每一个需要通信的进程分配一个端口号(注意不要随便用可能冲突);

4、应用层协议

(1)公开协议

是由RFC定义的,允许相互操作;

例:HTTP、SMTP等;

(2)私有协议

多数的P2P文件共享应用。

(3)应用层协议内容

①消息的类型:请求消息、相应消息;

②消息的语法/格式:消息中的字段,每个字段描述方法;

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

④规则:规定进程何时发送或响应消息,以及如何发送和响应消息;

注:网络应用需要遵循应用层协议。

5、网络应用需求与传输层服务

(1)网络应用对传输服务的需求

①数据丢失/可靠性

例:某些网络应用能够容忍一定会的数据丢失:网络电话;某些网络应用要求

100%可靠的数据传输,就像文件传输、talnet等;

②时间延迟

例:有些应用只有在延迟足够低的时候才“有效”,就像网络电话/网络游戏等;

③带宽

某些应用只有在带宽达到最低要求的时候才“有效”,网络视频等;还有些应用能够

适应任何带宽——弹性应用:email;

(2)Internet提供的传输服务

①TCP:面向连接(客户机和服务器之间);它提供可靠的传输;还有流量控制的功能

(即发送方的传输速率不会超过接收方的接收速率);还有拥塞控制(即网络负载过重

的时候能限制发送发的发送速度);但是,不提供时间、延迟保障,以及不提供最小宽

带保障。

②UDP:无连接,不提供可靠的数据传输,同时也不提供可靠性保障、流量控制、拥塞

控制、延迟保障、带宽保障等。

三、Web应用

1、Web应用概述

(1)Web与HTTP

①World Wide Web:网页;网页互相包含链接;

②网页包含多个对象:

对象:HTML、JPEG图片、视频文件、动态脚本等;

基本HTML文件:包含对其他对象引用的链接;

③对象的寻址

URL:统一资源定位器  RFC1738;

Scheme://host:port/path;host就是主机的IP,port就是端口号,path就是路径;

例:

这里最前面的协议名省略了,默认是http;

(2)HTTP协议概述

①万维网遵循HTTP协议(HyperText Transfer Protocol);

②C/S结构

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

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

③HTTP版本

1.0:RFC 1945;

1.1:RFC 2068;

④使用TCP传输服务

⑤无状态

服务器不维护任何有关客户端过去所发送请求的信息;

2、HTTP连接类型

(1)HTTP连接的两个类型

①非持久性连接

每个TCP对象最多允许传输一个对象;

HTTP1.0版本使用非持久性连接;

②持久性连接

每个TCP连接允许传输多个对象;

HTTP1.1版本默认使用持久性连接;

(2)非持久性连接

①每一个链接都需要请求一次,因为由于是非持久性连接,所以每一个连接请求完毕后

都会关闭连接;

例:一个包含多个图片的网页,一开始第一次请求后加载出整个页面的基本内容,

但是由于网页中有多个图片(即多个链接),因为第一次请求完毕后会关闭连接,所以

有时候网速比较慢的时候,就可以清楚的看到后面的图片会一个个慢慢出现,因为它需

要一个个去请求连接;

②响应时间分析与建模

RTT:

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

响应时间:

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

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

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

Total = 2RTT + 文件发送时间;

③非持久性连接的问题

每个对象都需要2个RTT以上的时间;

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

浏览器会打开多个并行的TCP连接以获取网页所需要的对象,多个并发连接给服务

器造成很大的影响;

(3)持久性连接

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

送;

②客户端只有收到前一个请求的响应后才发送新的请求,每个被引用的对象耗时1个

RTT;

③带有流水机制的持久性连接

HTTP1.1的默认选项;

客户端只要遇到一个引用对象就尽快发出请求;

在理想的情况下,收到所有的引用对象只需要耗时约1个RTT;

3、HTTP消息格式

(1)HTTP请求消息

①类别:请求消息;响应消息;

(2)请求消息

①ASCII:人是直接可读的;

例:

                ②HTTP请求消息的通用格式:

③上传输入的方法

POST:在请求消息的消息体中上传客户端的输入;

URL方法(GET方法):输入字段通过request行的URL字段上传;

注:上传的信息比较少的话,可以使用GET方法,多的话用POST方法。

(3)方法的类型

①HTTP/1.0:GET;POST;

HEAD:请Server不要将所请求的对象放入响应消息中;(一般用来做测试)

②HTTP/1.1:GET、POST、HEAD;

PUT:将消息体中的文件上传到URL字段所自定的路径;

DELETE:删除URL字段所指定的文件;

(4)HTTP响应消息

(5) HTTP响应状态代码

4、Cookie技术

(1)应用介绍

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

经过加密);

②RFC6265;

(2)Cookie的组件

①HTTP响应消息的cookie头部行;

②HTTP请求消息的cookie头部行;

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

④Web服务器端的后台数据库;

(3)Cookie的原理

(4)Cookie的作用

(5)Cookie的问题以及未来的展望

隐私问题;国际上的互联网巨头们都在琢磨Cookie的替代技术,Cookie差不多快走到头

了;

5、Web缓存技术(代理服务器请求)

(1)功能

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

(2)发明这种技术的原因

①缩短客户请求的响应时间;

②减少机构/组织的流量开销;

③在大范围内(互联网)实现有效的内容分发;

(3)Web缓存/代理服务器

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

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

注:如果所请求对象在缓存中,则缓存直接返回对象,否则的话缓存服务器向原始服务

器发送HTTP请求,获取对象,然后返回客户端并保存该对象;

③缓存既充当客户端,也充当服务器;一般由ISP架设;

例:

(4)Web缓存技术的不足以及改进方法

①有时候缓存服务器中的数据和原始服务器中的数据不一致

解决方法:条件性GET方法;

②条件性GET方法基本思想:如果缓存有最新版本,则不需要发送请求对象;

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

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

⑤HTTP/1.0 304 Not Modified;

例:

四、Email应用

1、Email应用的构成

(1)Email应用的组成构件

①邮件客户端;

②邮件服务器;

③SMTP协议;

(2)邮件客户端

①读、写Email消息;

②与服务器交互,收、发Email消息;

③Outlook,Foxmail,Thunderbird;

④Web客户端;

(3)邮件服务器

①邮箱:存储发给用户的Email;

②消息队列:存储等待发送的Email;

(4)SMTP协议

①邮件服务器之间传递消息所使用的的协议;

②客户端:发送消息的服务器;

③服务器:接收消息的服务器;

④使用TCP进行email消息的可靠传输;端口25;

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

⑥命令/响应模式:命令(ASCII文本),响应(状态代码和语句);

⑦Email消息只能包含7位ASCII码;

⑧持久性连接;

⑨利用CRLF.CRLF来确定消息的结束。

(5)Email应用示例

(6)与HTTP对比

2、Email消息格式与POP协议

(1)Email消息格式

①SMTP:email消息的传输/交换协议;

②RFC 822:文本消息格式标准:

③MIME:多媒体邮件扩展RFC 2045,2056;通过在邮件头部增加额外的行为声明MIME

的内容类型;

例:

(2)邮件访问协议

邮件访问协议:从浏览器获取邮件;

(3)POP协议

①认证过程:

客户端命令:User(声明用户名);Pass(声明密码);

服务器响应:+OK;-ERR;

②事务阶段:

List:列出消息数量;

Retr:用编号获取消息;

Dele:删除信息;

Quit:退出;

③“下载并删除”模式

用户如果换了客户端软件,无法重读该邮件;

④“下载并保持”模式

不同客户端都可以保留消息的拷贝;

⑤POP3协议是无状态的;

(4)IMAP协议(有状态协议)

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

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

③IMAP支持跨会话(session)用户状态:文件夹的名字;文件夹与消息ID之间的映射

等;

五、DNS应用

1、DNS概述

(1)DNS解决的问题

①Internet上主机/路由器的识别问题:

IP地址(网络内部真正用作识别);

域名(人使用);

(2)IP地址和域名的映射(域名解析系统DNS)

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

②应用层协议:完成名字的解析(Internet的核心功能就是用应用层协议实现;网络边界

很复杂);

(3)DNS服务

①域名向IP地址的翻译;

②主机别名;

③邮件服务器别名;

④负载均衡:Web服务器;

(4)不使用集中式DNS的原因

①单点失败问题;

②流量开销问题;

③使用点距离远近的问题;

④维护性问题;

所以DNS是不可伸缩的;

(5)DNS分布式层次数据库

①第一层是根服务器,第二层是顶级域名服务器,第三层是权威域名服务器。

②图例:

例:

(6)DNS根域名服务器

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

②根域名服务器如果不知道映射,就会访问权威域名服务器,然后获得映射之后向本地

域名服务器返回映射;

(7)TLD和权威域名解析服务器

①顶级域名服务器(TLD):

负责com、net、org、edu等顶级域名和国家顶级域名,例如cn、uk、fr等;

组织维护关系(例):

Network Solution维护com顶级域名服务器;

Educause维护edu顶级域名服务器;

②权威域名服务器:

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

组织负责维护或服务提供商负责维护;

(8)本地域名解析服务器

①不严格属于层级体系;

②每个ISP有一个本地域名解析服务器(是默认域名解析服务器);

③当主机进行DNS查询时,查询被发送到本地域名服务器(作为代理,将查询转发给

(层级式)域名解析服务系统);

④迭代查询:

                ⑤递归查询:

(9)DNS记录缓存和更新

①只要域名解析服务器获得域名——IP映射,即缓存这一映射(一段时间过后,缓存条

目失效(删除);本地域名服务器一般会缓存顶级域名服务器的映射,因此根域名服务

器不经常被访问);

②记录的更新/通知机制

2、DNS记录和消息

(1)DNS记录(资源记录)

①Type=A

Name:主机域名;

Value:IP地址;

②Type=NS

Name:域(edu.cn);

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

③Type=CNAME

Name:某一真实域名的别名(例:www.ibm.comservereast.backup2.ibm.com)

④Type=MX

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

(2)DNS协议与消息

①DNS协议:

查询和回复(消息);

消息格式相同;

②消息头部:

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

Flags:查询或回复;期望递归;递归可用;权威回答;

3、如何注册域名

计算机网络——网络应用(上)相关推荐

  1. 计算机网络-网络应用(上)

    目录 专栏 网络应用(上) 网络应用(层)内容概述 网络应用的基本原理 网络应用体系结构 客户机/服务器结构 纯P2P结构 混合结构 网络应用进程通信 网络应用的基础:进程间通信 套接字:Socket ...

  2. 计算机网络笔记--1 计算机网络与网络应用(上)

    计算机网络笔记–1 计算机网络与网络应用(上) 文章目录 计算机网络笔记--1 计算机网络与网络应用(上) 前言 1.1初识计算机网络 1.2计算机网络结构 1.3网络核心 1.4计算机网络性能 1. ...

  3. 计算机网络-网络应用(下)

    目录 专栏 网络应用(下) P2P应用 原理与文件分发 纯P2P架构 文件分发:客户机/服务器 vs. P2P 客户机/服务器 P2P 例子 BitTorrent技术 索引技术 搜索消息 集中式索引 ...

  4. cat6 万兆_CAT5E、CAT6和CAT6A在系统性能及网络应用上有什么区别?

    [导读]CAT5E.CAT6和CAT6A在系统性能及网络应用上有什么区别? 设计网络系统的一个重要原则是尽量将整个计算机网络的传输瓶颈尽量从无源网络中排除,正常情况下应使其形成于交换机背板上或服务器连 ...

  5. 计算机考研复试面试常问问题 计算机网络篇(上)

    计算机考研复试面试常问问题 计算机网络篇(上) 在复习过程中,我用心查阅并整理了在考研复试面试中可能问到的大部分问题,并分点整理了答案,可以直接理解背诵并加上自己的语言润色!极力推荐打印下来看,效率更 ...

  6. CAT5E、CAT6和CAT6A在系统性能及网络应用上有什么区别

    在过去100M快速以太网的时代,我们的综合布线系统使用5类的布线就已经可以满足这种带宽下的网络应用,但是随着计算机网络技术的发展以及各种层出不穷的网络应用(比如:视频会议.在线高清视频等高带宽数据业务 ...

  7. 计算机网络-网络应用

    网络应用 网络应用的体系结构 客户机/服务器结构(Client-Server, C/S),点对点结构(Peer-to-peer, P2P),混合结构(Hybrid)5 客户机/服务器结构 服务器 7* ...

  8. 高斯课堂 计算机网络(上)

    第一章.概述 0.第一章导图 1.计算机网络概述 (1)计算机网络发展历史1:ARPANET->互联网 小写internet是一个宽泛的概念,指的就是互联网 大写Internet是一个专有名词, ...

  9. 计算机网络网络应用专科自考科目,自考计算机网络难度大吗?计算机网络自考本科有哪些科目?...

    自考计算机网络难度大吗? 计算机网络专业在自考专业中是属于有难度的一个专业,首先,这个专业的考试涉及到了计算机原理.数学.数据库.编程语言等方面知识,这些知识对考生的逻辑思维和数学能力有较高的要求,不 ...

  10. 计算机网络大一上学期期末考试试题及答案,大一第一学期期末计算机考试题及答案)...

    大一第一学期期末计算机考试题及答案 学计算机基础试题 一.单项选择 1.完整的计算机系统由(C)组成. A.运算器.控制器.存储器.输入设备和输出设备 B.主机和外部设备 C.硬件系统和软件系统 D. ...

最新文章

  1. 不用asp.net MVC,用WebForm照样可以实现MVC(请看最后一句话)
  2. 解题报告 poj 2109
  3. semget创建文件_linux信号灯操作
  4. 浮点卷积winograd算法
  5. python 获取 字典中的指定键_python中字典方法的详细教程
  6. git 创建webpack项目_从0到1开发一个小程序cli脚手架(一)创建页面/组件模版篇...
  7. 1.4Hadoop伪分布式安装
  8. 【华为云技术分享】云图说|第三方云厂商数据如何迁移至华为云OBS?真相在这里......
  9. 红橙Darren视频笔记 缓存方案 缓存到数据库(数据库操作) 上
  10. bes2300 tws配对_tws 耳机春天来了!
  11. Vijos 1303
  12. cs231n学习笔记 CNN 目标检测 定位 分割
  13. C语言:文章各类字符数统计
  14. 使用WPS邮件合并功能和文档部件插入图片制作准考证
  15. php读取路由器arp表,详解ARP地址解析协议的工作流程
  16. C++获取文件夹内子文件夹名
  17. 因果分析系列2--随机试验
  18. 云栖大会放大招,浪潮的JDM模式别人学不会
  19. 三步完整实现运放负反馈电路稳定性设计
  20. 谈谈eve-ng仿真模器

热门文章

  1. CentOS 7.6基于lvm2快照备份恢复MariaDB
  2. python读txt写入excel_python实现读Excel写入.txt的方法
  3. VS Code 字体推荐
  4. 悼念512汶川大地震遇难同胞
  5. 一文看懂任务挖掘和流程挖掘的区别是什么?
  6. 全球及中国EOG放大器行业运营前景与发展动态研究报告2022版
  7. linux编译lame,linux 下安装lame以及tritonus-mp3enc
  8. 常见的网络摄像机方案
  9. 【已解决】点击Import Package没有Environment与Effects等问题(从官网下载Environment等相关资源包)
  10. 英特尔携手生态伙伴亮相InfoComm,赋能协作办公迈向智能时代