计算机网络知识点及例题总结(二)应用层

知识点部分

1.计算机网络体系结构

①C/S(客户机/服务器结构)
服务器:a.持续提供服务(7*24小时提供服务)
b.永久性访问地址
c.利用大量服务器实现可扩展性
客户机:a.与服务器通信,使用服务器提供服务
b.间歇性接入网络
c.可能使用动态IP地址
d.客户机之间无通信能力
②P2P(点对点结构):优点高度可伸缩,缺点难于管理
a.没有永远在线的服务器
b.任意节点/端系统之间可以直接通讯
c.节点间歇性接入网络
d.节点可能改变IP地址
③混合结构
以Napster(中心化拓扑P2P)为例:
a.文件传输使用P2P结构
b.文件的搜索采用C/S结构——集中式
每个节点向中央服务器登记自己的内容
每个节点向中央服务器提交查询请求,查找感兴趣的内容
各个体系结构优劣对比:
a.可扩充性:P2P>C/S
b.可延续性:P2P>C/S
c.安全性:C/S>P2P
d.资源可为维护性:C/S>P2P
e.网络通信能力:P2P>C/S

2.网络应用进程通信

进程通信是网络应用的基础。进程:主机上运行的程序。客户机进程(发起通信的进程)服务器进程(等待通信请求的进程)。
同一主机上运行的进程通过进程间通信机制和操作系统提供来通信;不同主机上运行的进程通过消息交换来通信。P2P架构的应用也有客户机进程与服务器进程之分,只是角色转换非常自由。
①套接字Socket:进程间通信利用Socket接收/发送消息。Socket(套接字、插座)并不是一种协议,而是一种抽象API,将传输层TCP/UDP协议封装,作为一种门面模式提供应用层抽象的连接服务。Socket实质上提供了进程通信的端点。
Socket=(所用协议,本地IP地址,本地进程端口号)唯一,由本地操作系统分配
Socket面向C/S设计。
C/S连接建立过程
服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
②寻址:不同主机上的进程间通信,那么每个进程必须拥有标识符。
如何寻址主机?——IP地址
Q: 主机有了IP地址后,是否足以定位进程?
A: 否。IP地址只能定位主机,同一主机上可能同时有多个进程需要通信。
端口号/Port number:为主机上每个需要通信的进程分配一个端口号
HTTP Server:80 Mail Server:25
进程的标识符:IP地址+端口号

3.应用层协议

网络应用需遵循应用层协议,但是不仅只有应用层协议。
公开协议(由RFC定义):DNS,FTP,SMTP,HTTP,Telnet.
私有协议:多数P2P文件共享应用.
应用层数据传输依赖传输层协议:TCP,UDP
应用层协议内容:信息类型、信息语法、信息语义、信息规则
a.消息类型:请求消息,响应消息
b.消息的语法/格式:消息中有哪些字段,每个字段如何描述
c.字段的语义:字段中信息的含义
d.规则:进程何时/如何 发送/响应消息

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

Internet提供的传输层服务:
在这里插入图片描述

5.举例Web应用

web万维网是基于HTTP的Inernet因特网网络服务。web的功能是为用户提供资源索引展示服务。web将资源以URL定位,使用超文本(包含超链接的文本)和超链接将资源连接起来,是一个由许多互相链接的超文本组成的系统。
网页:超文本(如html)经浏览器解析渲染展现为网页。网页(Web Page)包含多个对象(objects)。①基本HTML文件:包含对其他对象引用的链接②对象:HTML文件、JPEG图片、视频文件、动态脚本等。
对象的寻址(addressing):URL(Uniform Resoure Locator):统一资源定位器 RFC1738
在这里插入图片描述
Web应用举例:常见的计数器、留言版、聊天室和论坛BBS等,都是Web应用程序,不过这些应用相对比较简单,而Web应用程序的真正核心主要是对数据库进行处理,管理信息系统(简称MIS)就是这种架构最典型的应用。

6.HTTP协议(C/S结构,端口号80,TCP传输协议,1.0&1.1两个版本,无状态)

HTTP,原名超文本传输协议,HyperText Transfer Protocol,是web万维网遵守的协议之一。功能是:建立web服务器和本地客户端(通常是浏览器)之间的数据交换。
无状态:服务器不维护任何有关客户端过去所发的消息。
①HTTP连接—非持久性连接(HTTP1.0):每个TCP连接最多允许传输一个对象
流程:假定用户在浏览器中输入URL:www.someSchool.edu/someDepartment/home.index(包含文本和指向10个jpeg图片的链接)
A.服务器等待TCP连接中
B.客户端使用socket申请TCP连接。
C.三次握手完成建立,在第三次握手同时传输Http请求信息。
D.HTTP服务器收到请求消息,解析,产生包含所需要对象的响应消息,并通过套接字发给客户端。HTTP服务器通知TCP连接断开。(不过客户端收到响应后才真正断开)
E.当客户端收到响应,TCP连接断开,解析html文件,显示html文件,发现有10个指向jpeg对象的超连接。
F.为每个jpeg对象重复步骤1-5。而不能接着上次的TCP连接继续交流。
时延:单位RTT,从客户端发送一个很小的数据包到服务器并返回所经历的时间。
响应时间:发起建立TCP连接:1个RTT,发送HTTP请求消息到HTTP响应消息的前几个字节到达:1个RTT。每个对象需要2(1+0.5+0.5)个RTT. Total=2RTT +文件发送时间(nx2).
存在问题:操作系统需要为每个TCP连接开销资源,同时创建大量的连接,浏览器打开多个并行的TCP连接给服务端造成恶劣影响,高密度TCP请求耗尽资源。
②HTTP连接—持久性HTTP(HTTP1.1):发送响应后,服务器保持TCP连接的打开,后续的HTTP消息可以通过这个连接发送。
a.无流水的持久性连接:客户端只有收到前一个响应后才发送新的请求,每个被引用的对象耗时1个RTT。 Total=2RTT +文件发送时间(nx1).
b.带有流水制的持久性连接:HTTP 1.1的默认选项,客户端只要遇到一个引用对象就尽快发出请求,理想情况下,收到所有的引用对象只需耗时约1个RTT。Total=2RTT+1RTT=3RTT.
①和②区别:HTTP 1.1支持长连接和请求的流水线处理,HTTP 1.1增加host字段,HTTP/1.1加入了一个新的状态码100 Status(节约带宽)
③HTTP消息格式—请求消息(request):使用ASCII书写:人直接可读
在这里插入图片描述
GET /somedir/page.html HTTP/1.1 请求行:方法+url+http版本
Host: www.someschool.edu 头部行
User-agent: Mozilla/4.0 头部行
Connection: close 头部行
Accept-language:fr 头部行
Cookies 头部行
空行(非常重要,讲请求头和消息体分开)
消息体,一般包括要填的表单
POST方法:网页经常需要填写表格(form),在请求消息的消息体(entity body)中上传客户端的输入,entity body在上述的name:value部分之后。
GET方法:使用URL传输,在url后link信息;输入信息通过request行的URL字段上传.
方法的类型:①HTTP/1.0:GET、POST、HEAD(请Server不要将所请求的对象放入响应消息,常常用来做测试)②HTTP/1.1:GET, POST, HEAD、PUT(将消息体中的文件上传到URL字段所指定的路径)、DELETE(删除URL字段所指定的文件).
④HTTP消息格式—响应消息(response)
date是生成该响应消息的时间
last-modified是请求的服务器资源(比如某个文件)最后的修改时间。
响应头下一个空行与响应正文分割,响应正文就是申请的内容.
HTTP响应状态代码:位置(响应消息的第一行)
示例:
在这里插入图片描述
200 OK
301 Moved Permanently(资源已被永久改变位置)
400 Bad Request
404 Not Found
505 HTTP Version Not Supported

7.FTP是什么:文件传输协议

文件传输协议(FTP)是一种客户端/服务器协议,用于将文件传输到主机或与主机交换文件(Internet上的控制文件的双向传输),它也是一个应用程序。它可以使用用户名和密码进行身份验证。匿名FTP允许用户从Internet访问文件和数据。

8.SMTP/POP3协议

Email应用由邮件客户端(读写Email消息),邮件服务器(核心,消息队列)和SMTP协议组成。
①SMTP协议 RFC 2821:简单的邮件传输协议,邮件服务器之间传递消息所使用的协议。
使用TCP进行email消息可靠传输,端口25,传输分为三个过程(TCP握手,消息传输,TCP挥手),命令(ASCII文本)/响应(状态代码和语句)交互模式。Email消息只能包含7位ASCII码,因为email系统开发是非常早期的时代。“推式”协议。
SMTP特点:使用持久性连接;消息必须由7位ASCII码组成;利用CRLF.CRLF确定消息结束。
与HTTP协议对比:均为命令/响应模式,命令和状态代码都是ASCII码;HTTP“拉”式、每个对象封装在独立响应消息中;SMTP“推”式、多个对象在由多个部分构成的消息中发送。
②POP3协议:邮件访问协议(从服务器获取邮件),邮局协议版本3,主要用于支持使用客户端远程管理在服务器上的电子邮件,TCP可靠传输,端口号110。认证过程(两次握手)
在这里插入图片描述
“下载并删除”模式:下载到本地,删除服务器上的信息,POP仅支持该模式(若换了客户端软件,无法重读该邮件),POP3支持。
“下载并保持”模式:不同客户端都可以保留消息的拷贝,POP3支持,POP不支持。
POP3是无状态的,客户端动作(客户端删除文件,标记已读,移动文件等)不能保存到服务器上。

9.Cookie作用

①身份认证 ②购物车 ③推荐 ④Web-email

10.DNS 域名解析系统

人使用域名:www.hit.edu.cn 而计算机使用IP,两者之间映射需要DNS。DNS是多层命名服务器构成的分布式数据库,本身也是一个应用层协议(完成名字的解析)。
DNS服务的具体内容:①域名向IP地址的翻译②主机别名③邮件服务器别名④负载均衡(轮换web服务器排名)。集中式DNS存在的问题:①单点失败②流量③举例④维护性问题
DNS的迭代查询示例:客户端想要查询www.amazon.com的IP
①先向本地DNS申请查询,本地DNS查看缓存,有责返回无则继续查询;
本地域名解析服务器:不严格属于层级体系,每个ISP(网络提供商)有一个本地域名服务器(默认域名解析服务器),当主机进行DNS查询时,查询被发送到本地域名服务器,先查本地缓存再递归查询(作为代理,将查询转发给域名解析服务系统)。
②客户端查询根域名服务器,找到com域名解析服务器;
本地域名解析服务器无法解析域名时,有一个递归访问过程,起点是根域名解析器。
根域名服务器(root name server)是互联网域名解析系统(DNS)中最高级别的域名服务器,负责返回顶级域的权威域名服务器地址,在根域名服务器中虽然没有每个域名的具体信息,但储存了负责每个域(如.com,.xyz,.cn,.ren,.top等)的解析的域名服务器。
③客户端查询com域名解析服务器,找到amazon.com域名解析服务器;
顶级域名服务器(TLD, top-level domain): 负责com, org, net,edu等顶级域名和国家顶级域名,例如cn, uk, fr等。
权威域名服务器:权处于DNS服务端的一套系统,该系统保存了某个响应域名的权威信息。权威DNS即通俗上“这个域名我说了算”的服务器。表示域名所有者。即“amazon.com域名解析服务器”。
④客户端查询amazon.com域名解析服务器,获得www.amazon.com的IP地址。
递归DNS查询:DNS服务器从根域名“.”服务器、顶级域名服务器“.com”、一级域名服务器“taobao.com”一级一级递归查下来最终找到权威服务器取得结果,并返回给客户,同时将取得的结果根据域名设置的TTL时间,缓存在自己的系统当中,以便下次使用。

迭代查询
查询失败,则被查询服务器返回域名解析服务器的名字
我不认识这个域名,但是你可以问这服务器
重试工作由查询者承担
递归查询
将域名解析的任务交给所联系的服务器
重试工作由被查询者承担,形成一个查询链路,每个查询者仅发送一次信息

**DNS记录缓存和更新:**只要域名解析服务器获得域名—IP映射,即缓存这一映射,一段时间后,缓存条目失效(删除),本地域名服务器一般会缓存顶级域名服务器映射,所以根域名服务器不经常被访问;记录的更新/通知机制:RFC 2136,Dynamic Update in DNS.
DNS记录:资源记录RR,格式:(name,value,type,ttl)。
四种type:
Type=A(主机类)
Name: 主机域名
Value: IP地址

Type=NS(DNS):解析服务器记录。用来表明由哪台服务器对该域名进行解析。这里的NS记录只对子域名生效。
Name: 域 Value: 该域权威域名解析服务器的主机域名

Type=CNAME(别名类):别名记录。这种记录允许您将多个名字映射到另外一个域名。
Name: 某一真实域名的别名
Value: 真实域名

Type=MX(邮件服务类)
Value是与name相对应的邮件服务器
在这里插入图片描述

例题:

在这里插入图片描述

11.如何提高DNS解析效率

①DNS采用了树状结构,分级查找。
②DNS采用多级缓存,缓存查找成功的条目。

12.P2P应用

①文件分发:(C/S与P2P对比)

例题

服务器向N个对等方(用户)分发F=15GB的文件,该服务器具有us=30Mbps的上传速率,每个对等方的下载速率di=2Mbps,上传速率为u。
C/S:服务发送时间:NF/us
客户机(对等方)下载时间:F/di
C/S最小分发时间:dcs=max{NF/us, F/di}

P2P:服务器必须发送一个副本时间:F/us
客户机下载时间:F/di
总共需要下载文件大小:NF
最快可能上传速率:us+∑ui
最小时间:dp2p=max{F/us,F/di,NF/(us+∑ui)}
答案:
在这里插入图片描述

文件分发典型例子:BitTorrent(tracker:跟踪参与torrent的所有节点;torrent:交换同一个文件的文件块的节点组;chunk:交换文件夹)。
过程:文件划分为256KB的chunk(块),节点加入torrent,没有chunk,但是会逐渐积累,向tracker注册以获得节点清单,与某些节点(“邻居”)建立连接;下载的同时,节点需要向其他节点上传chunk(从网络下载的或者是节点自身有的);节点自由的加入或离开;一旦节点获得完整的文件,它可能(自私地)离开或(无私地)留下;获取chunk:①给定任一时刻,不同的节点持有文件的不同chunk集合②节点(Alice)定期查询每个邻居所持有的chunk列表③请求原则(请求获取缺失的chunk):稀缺优先的请求建立原则:先去拿自己没有的chunk中最稀少的;发(送原则):
tit-for-tat(以牙还牙):Alice向4个邻居发送chunk:正在向Alice发送Chunk的邻居中速率最快的4个,每10秒重新评估top 4;上传速率高,则能够找到更好的交易伙伴,从而更快地获取文件。
每30秒随机选择一个其他节点,向其发送chunk,则alice可能成为chunk的top4,从而建立新的连接。
②索引技术:信息到节点位置(IP地址+端口号)的映射。
文件共享(电驴):利用索引动态跟踪、存储节点所共享的问价位置,此节点告诉索引所拥有的文件,其他节点搜索索引从而货值能够得到的文件;
即时消息(QQ):建立好友并聊天是一个P2P过程,索引负责将用户名映射到位置,当用户开启IM应用时,通知索引它的位置,节点检索索引确定用户的位置。
索引设计分类:
(1)集中式索引:Napster最早采用这种设计
每个节点加入都会通知中央服务器,A想要m文件,向中央服务器查找,中央服务器查找告知B有,A不通过中央服务器直接向B请求文件m。
缺点:单点失效;性能瓶颈;版权问题。(内容和文件传输是分布式的,但内容定位必须是集中式)
(2)洪泛式查询:完全分布式架构 Gnutella采用这个设计
每个节点对它共享的文件进行索引,且只对它共享的文件进行索引。
节点X与Y之间如果有TCP连接,那么构成一个边(虚拟链路),所有的活动节点和边构成覆盖网络,节点A将查询消息发送给自己所有邻居节点,所有邻居节点继续转发查询消息,若查询命中则利用反向路径发回节点A。
缺点:信息泛滥,带宽压力,网络负担大,无效的垃圾信息;网络形成之初,难以形成网络,称为各个独立分支,造成信息缺失。
(3)层次式覆盖网络:介于集中式与洪泛式之间的查询的方法
在这里插入图片描述
每个节点或者是一个超级节点(负责跟踪子节点的内容,为子节点提供索引服务;每个超级节点之间维持TCP连接),或者被分配一个超级节点(即为子节点,节点与超级节点之间维持TCP连接,子节点无TCP连接)

查询过程:普通节点(子节点)想要查询,通知超级节点,超级节点之间洪泛式查询。

典型应用:Skype(最成功之一)
通话时是P2P的;私有应用层协议;采用层次式覆盖网络架构;索引负责维护用户名与IP地址间的映射;索引分布在超级节点上。

13.DHT(哈希表)是什么

DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。
基于“键”的路由方法,每个文件与一个键相结合,拥有相似键的文件被相似节点所保管。
具有①离散性②伸缩性③容错性

例题部分

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了8 篇原创文章 · 获赞 3 · 访问量 324

猜你喜欢

转载自blog.csdn.net/qq_41507243/article/details/104339400
今日推荐