| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> [计算机网络]第二章——应用层 -> 正文阅读 |
|
[系统运维][计算机网络]第二章——应用层 |
[计算机网络]第二章——应用层仅供交流,请勿转载,侵权必删 概述
一、应用层协议原理广播、电视、报纸、网站:四大媒介 网络核心设备并不在应用层上起作用,而是在较低层起作用。将应用软件限制在端系统,促进了大量的网络应用程序的迅速研发和部署。 研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序。
1、网络应用程序体系结构有两种主流的结构:客户端-服务器体系结构与P2P(对等)体系结构 客户-服务器体系结构C/S服务器:不间断的主机;永久的IP地址;用于扩展的服务器群 客户端:与服务器通信;可能是间歇性连接;可能有动态IP地址
P2P(对等)体系结构没有不间断服务器;任意端系统直接通信;对等体之间间歇式连接,IP地址变化 高度可扩展但难以管理
P2P模型从本质上来看仍然是使用客户/服务器方式,只是对等连接中的每一个主机即是客户又是服务器。多个客户机之间可以直接共享文档。 混合C/S加P2P的体系结构1?? Skype
2?? 即时通信
2、进程通信进程:在主机上运行的程序。 1?? 在同一个主机中,两个进程使用进程间通信(由操作系统定义)进行通信。 2?? 不同主机上的进程通过交换消息进行通信 客户和服务器进程客户端进程:发起通信的进程 服务器进程:等待联系的进程 进程与计算机网络之间的接口进程通过一个称为socket套接字的软件接口向网络发送报文和从网络接受报文
套接字是同一台主机内应用层与传输层之间的接口。由于该套接字是建立网络应用程序的可编程接口,因此套接字也称为应用程序和网络之间的应用程序编程接口(API) 进程寻址为了接受报文,进程需要有标识符
3、应用层协议的定义应用层协议定义了:
RTP:实时传输协议 种类:
应用层只是网络应用的一部分 4、互联网上的QoS(服务质量)要求1?? 丢包率data loss 一些应用程序(如音频)可以承受一些损失 其他应用程序(例如,文件传输,telnet)需要100%可靠的数据传输 2?? 实时性timing 一些应用程序(如网络电话、互动游戏)需要低延迟才能“有效”。 3?? 吞吐量throughput 一些应用程序(如多媒体)需要一定的吞吐量才能“有效”:带宽敏感应用 其他应用程序(“弹性应用程序”)利用他们所获得的任何吞吐量 4?? 安全security 加密的数据,数据的完整性 一些常用应用的需求
5、因特网提供的传输服务TCP传输控制协议(Transmission Control Protocol)服务1?? 连接管理:客户端和服务器进程之间需要设置 2?? 可靠性控制:发送和接收过程之间的可靠传输 3?? 流量控制:发送方不会淹没接收方 4?? 拥塞控制:网络过载时对发送方进行节流 不提供:实时性,最小吞吐量保证,安全性
UDP用户数据报协议(User Datagram Protocol)服务发送和接收过程之间不可靠的数据传输 不提供:连接管理,可靠性,流量控制,拥塞控制,实时性,吞吐量保证,安全性 流行的因特网应用机器应用层协议和支撑的传输协议
二、Web和HTTPWeb页面由对象组成:对象可以是HTML文件,JPEG图像,Java applet,音频文件,… Web页面由基本HTML(超文本标记语言)文件组成,其中包括几个引用的对象 每个对象都可通过URL寻址: someschool.edu是域名 1、HTTP概况HTTP:hypertext transfer protocol超文本传输协议 Web的应用层协议:用于通信 客户机/服务器模型
HTTP使用TCP作为它的支撑传输协议
HTTP是一个无状态stateless的协议:服务器不保存以前的客户端的请求信息,因为保存这些状态十分复杂 2、非持续连接和持续连接非持续的HTTP:Non-Persistent HTTP非持续连接:每个请求/响应对是经过一个单独的TCP连接发送;一个TCP连接最多发送一个对象。 假设用户进入网址:
过程如下:
非持续性连接中每个TCP连接只传输一个请求报文和响应报文,因此上例中当用户请求该Web页面时需要产生11个TCP连接 RTT(round trip time)的定义:往返时间,一个小数据包在客户端和服务器之间往返传输的时间。 全部的时间 = 2RTT+文件发送时间 持续连接的HTTP:Persistent HTTP持续连接:客户端和服务器之间可以通过单个TCP连接发送多个对象。 非持久的HTTP问题:
持续的HTTP
3、HTTP报文格式两种类型的HTTP消息:请求request,响应response
HTTP请求报文request messageASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言 HTTP响应报文response message4、用户和服务器的交互:cookie许多主要网站使用cookie:存储在客户端中的小文件;用于身份验证 四个组件:
举例
5、Web缓存(代理服务器)使用Web缓存的原因:减少客户端请求的响应的时间;改善用户体验;节省主干带宽的流量 举例:假设浏览器正在请求对象:http://www.someschool.edu/campus.gif
Web cache的类别:代理cache:proxy cache;客户端cache:client cache;分布式cache:distributed cache;服务端cache:cluster(集群)
proxy cache目标:在不涉及源服务器的情况下满足客户端请求
🌐 举例:如下图右两个网络:内部网络和公共因特网的一部分。内部网络是一个高速的局域网,它的一台路由器与因特网上的一台路由器通过一条15Mbps的链路。这些初始服务器与因特网相连但位于全世界各地。假设对象的平均长度为1Mb,从机构内的浏览器对这些初始服务器的平均访问速率为每秒15个请求。假设HTTP请求报文小到可以忽略,因而不会在网络中以及接入链路(从机构内部路由器到因特网路由器)上产生什么通信量。我们还假设在图中从互联网路由器到任何源服务器和返回路由器的延迟= 2秒。我们非正式地将该持续时延称为“因特网时延”. 1?? 对于情况一
2?? 对于情况二
3?? 对于情况三
Client Cache: Conditional Get保存在服务器中的对象自该副本缓存在客户上以后可能已经被修改了。HTTP协议有一种机制,允许缓存器证实它的对象是最新的。这种机制就是条件GET(conditional GET)方法。如果:①请求报文使用 GET方法;并且②请求报文中包含一个“If-Modified-Since;”首部行。那么,这个HTTP 请求报文就是一个条件 GET 请求报文。 缓存器在将对象转发到请求的浏览器的同时,也会在本地缓存了该对象,同时会存储最后修改日期。只有当缓存对象被修改了才从服务器中发送对象,否则直接读取cache中的对象。 distributed cache许多缓存是合作的
如果邻居没有数据,则访问源服务器 操作不便,一般采用镜像服务器 server cache:cluster多台服务器以集群方式构造 内容相同或不同的内容 连接被传输到轻载服务器(缓存)
受到广泛的采用 三、因特网的电子邮件1、FTP—— file transfer protocol向远程主机传输文件 客户机/服务器模型
ftp: RFC 959 FTP server: 21端口,用于控制连接 独立的控制连接和数据连接在进行文件传输时,FTP的客户机和服务器之间要建立两个TCP连接,一个用于传输控制命令和响应,称为控制连接(21),一个用于实际的文件内容传输,称为数据连接(20) 2、电子邮件三个主要组件:
以下通过Alice发电子邮件给接收方Bob的场景进行说明。 用户代理用户代理允许用户阅读、回复、转发、保存和撰写报文。微软的 Outlook 和 Apple Mail 是电子邮件用户代理的例子。当Alice 完成邮件撰写时,她的邮件代理向其邮件服务器发送邮件,此时邮件放在邮件服务器的外出报文队列中。当 Bob 要阅读报文时,他的用户代理在其邮件服务器的邮箱中取得该报文。 邮件服务器邮件服务器形成了电子邮件体系结构的核心。每个接收方(如Bob)在其中的某个邮件服务器上有一个邮箱(mailbox)。Bob 的邮箱管理和维护着发送给他的报文。一个典型的邮件发送过程是:从发送方的用户代理开始,传输到发送方的邮件服务器,再传输到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中。当 Bob 要在他的邮箱中读取该报文时,包含他邮箱的邮件服务器(使用用户名和口令)来鉴别 Bob。 当邮件无法发送成功,在邮件服务器的一个报文队列中保持该报文并在以后再次尝试发送,多次尝试失败后则进行删除并通知给发送方。 SMTP协议在邮件服务器之间发送邮件消息
SMTP使用TCP在客户端和服务器之间可靠地传输邮件消息,端口号为25 直连:发送服务器到接收服务器,没有通过中间服务器
消息必须是7位ASCII码——只是英文邮件 SMTP使用的是持续连接 🏷 具体的场景说明
3、与HTTP的对比相同点
区别
4、邮件报文格式5、邮件访问协议SMTP:发送/存储到接收者的服务器 邮件访问协议:从服务器取回邮件 1?? POP3: Post Office Protoco-version 3 第三版邮局协议
2?? IMAP: Internet邮件访问协议
3?? HTTP: gmail, Hotmail, Yahoo邮件等。 5、非ASCII数据的MIME扩展MIME:Multipurpose Internet Mail Extension多用途互联网邮件扩展,RFC 2045, 2056 对于非ASCII文本,需要在msg中添加额外的头信息 消息头中的其他行声明MIME内容类型
四、DNS:域名服务主机的一种标识方法是用它的主机名hostname,例如www.baidu.com 也可以使用IP地址进行标识,例如192.168.1.202 域名:baidu.com IP和域名是多对多的关系 ps:DNS属于网络内核的功能,但是放在网络边缘
1、DNS提供的服务DNS是1?? 一个由分层的DNS服务器实现的分布式数据库 2?? 一个使得主机能够查询分布式数据库的应用层协议 DNS运行在UDP上,使用53号端口 提供的服务如下:
2、DNS工作机理概述集中式的DNS服务器缺点:单点故障、通信容量、远距离的集中式数据库造成延时长、维护困难 分布式、层次数据库
本地DNS服务器:不属于上面的层次结构,通常与主机位于同一个局域网中。 DNS域名解析示例主机向本地域名服务器的查询都是采用递归查询,如果主机所在询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份向其他域名服务器继续发出查询请求报文。 例如:主机在cis.poly.edu需要IP地址gaia.c.s.umass .edu 1?? 迭代式查询(接近广度查询) 当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器“下一步要向哪一个域名服务器进行查询”,然后让本地域名服务器进行后续查询。 这种查询方式其实也是混合的,因为主机向本地域名服务器的查询都是采用递归查询 2?? 递归式查询(接近深度查询) 本地域名服务器只需要向根域名服务器查询一次,其他后面的几次查询都是在其他几个域名服务器之间进行的 3?? 混合式查询 DNS缓存和更新记录在一个请求链中,当某个DNS服务器接收到一个回答,他能缓存包含在该回答中的任何信息 举一个例子,假定主机 3、DNS记录和报文共同实现DNS分布式数据库的所有DNS服务器存储了资源记录(RR) RR的格式如下:
TTL是该记录的生存时间,它决定了资源记录应当从缓存中删除的时间。在下面给出的记录例子中,我们忽略掉TTL字段。Name和Value的值取决于Type 1?? 如果Type =A,则Name是主机名,Value是该主机名对应的IP地址。因此,一条类型为A 的资源记录提供了标准的主机名到IP 地址的映射。例如 2??如果Type =NS,则Name是个域(如foo.com),而Value是个知道如何获得该域中主机 IP 地址的权威 DNS 服务器的主机名。这个记录用于沿着查询链来路由 DNS查询。例如 3?? 记录如果Type = CNAME,则Value 是别名为Name的主机对应的规范主机名。该记录能够向查询的主机提供一个主机名对应的规范主机名,例如 4?? 如果Type = MX,则Value是个别名为Name的邮件服务器的规范主机名。举例来说, DNS协议,报文DNS协议:查询和应答报文,报文格式相同 前面12个字节是首部区域header 五、搜索引擎万维网可以视作一个大的 索引
需要三种数据结构 1?? 线性数组:存储发现的url指针和标题/页面指针 2?? 堆:存储可变长度的标题/页面和url 3?? 哈希表:将url哈希成更短的条目,避免重复访问 索引创建具体过程 1?? 第一:搜索(广度优先搜索)
2?? 第二:索引
六、Socket编程服务器必须在客户端可以发送任何东西之前处于运行状态。 服务器必须有一个socket(门),通过它接收和发送段segment 类似地,客户端需要一个套接字 套接字在本地由一个端口号标识 类似于建筑物中的apt # 客户端需要知道服务器的IP地址和socket端口号 练习题1?? What are features of the TCP/IP Transport layer? (Choose two.)
2?? Which OSI layer defines the functions of a router?
3?? Which type of institution does the domain suffix .org represent?
4?? What is established during a connection-oriented file transfer between computers? (Choose two.) 在计算机之间的面向连接的文件传输过程中建立了什么?(选择两个)
5?? Which of the following services is used to translate a web address into an IP address?
6?? Which part of the URL http://www.awsb.ca/teacher gives the name of the domain?
7?? Using the data transfer calculation T=S/BW, how long would it take a 4MB file to be sent over a 1.5Mbps connection?
8?? If a network administrator needed to download files from a remote server, which protocols could the administrator use to remotely access those files? (Choose two.)
9?? Which of the following protocols are used for e-mail transfer between clients and servers? (Choose three.)
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 23:37:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |