计网笔记_2

HopeMaker3年前 (2021-12-12)计算机网络606

第2章 应用层

应用层内容很多,有很多协议和应用,但是这学期课程中涉及得比较少,基本只在QoS部分有所涉及,笔记里就大概罗列一下知识点。

2.1 应用层原理

应用层协议最多

可能的应用架构:C/S、peer2peer、混合架构

C/S模式:服务器ip不能动,信息数据应用都在服务器上,可扩展性可靠性比较差,随着用户访问量的增加,性能断崖式下降;

p2p模式:客户端也可以是服务器,但是管理复杂,性能不稳定,得客户端上线接入才可以作为服务器提供服务;

混合体:C/S目录查询,数据会话P2P方式。

 

进程通信:进程之间通信。

进程:在主机上运行的应用程序。

客户端进程:发起请求的进程;

服务器进程:等待连接的进程。

在同一个主机内,使用进程间通信机制来通信(机制由主机的操作系统定义);

不同主机上的两个进程之间想要通信,通过交换报文message来通信。

(p2p架构的进程也有客户端进程和服务器进程之分。)

 

分布式进程想要通信需要解决的问题,三个:

1.     进程需要标识自己,同时标识需要带有地址信息(能够寻址);

2.     传输层是如何向应用层提供服务的:位置(层间接口的SAP:TCP/IP socket),形式(应用程序接口API:TCP/IP socket API);

3.     如何使用传输层提供的服务,实现应用进程之间的报文交换,实现应用:定义协议。编制程序。

 

第一个问题:

对进程进行编址addressing,传输的报文数据(Service Data Unit , SDU)之外:

主机IP,TCP还是UDP,以及TCP or UDP 的端口号Port(发端和收端的端口,谁传的,传给谁)。此外还需要传输层实体对这些信息进行TCP/UDP的封装(源端口号,目标端口号,数据等;将IP地址下交IP实体,用于封装IP数据报,源IP,目标IP)

第二个问题:

每次应用层到传输层都要这三个部分的信息,而且必须包含,太过繁琐易错,有没有办法简化信息量?有,就是socket。通过一个整数,四元组(TCP)或二元组(UDP),来代表源IP/源端口/目标IP/目标端口,从而简化信息并便于管理。

TCP socket是个表,包含socket、四元组和连接状态,多步填完并一直更新;

UDP socket:两进程通信之前无需建立联系,所以只有二元组,包含源IP和源端口,但是传输时,需要提供对方的IP和端口

第三个问题:

定义应用层协议:报文格式,解释,时序等;

编制程序,通过API调用网络基础设施提供通信服务传输报文,解析报文,实现应用时序等。

 

应用层协议:

公开协议:RFC文档定义,HTTP,SMTP

私有协议:不公开,skype

应用层需要传输层提供什么样的服务?

四个方面的性能指标:数据丢失率、延迟、吞吐量、安全性

 

Internet传输层提供的服务:

TCP服务:面向连接,可靠,稍慢;

UDP服务:无连接,不可靠,实时。


TCP和UDP

都不提供安全性,都不加密

TCP用SSL安全套接字(Secure Sockets Layer在应用层,因为它在应用中运行,也有说在传输层,因为它为应用提供服务)。SSL也提供SSL socket API。

 

 

2.2 Web和HTTP

一些术语terms:

Web页,由一些对象组成,对象可以是HTML文件,JEPG图像,Java程序等。

Web页需含有一个基本的HTML文件,该基本文件含有对其他若干对象的引用。

可以通过唯一的URL对任何一个互联网中的对象进行引用、访问:

URL格式:协议名/用户:口令(支持匿名访问的可以省略)/主机名/路径名/端口(设置了默认端口号的话也可以省略)

 

HTTP:超文本传输协议,Web的应用层协议

C/S模式

使用TCP,默认端口号为80

HTTP是无状态的,服务器不维护用户的任何信息,即通信结束之后不保留请求用户的状态。

HTTP 1.0:非持久HTTP,TCP连接请求-确认(往返时间round-trip time RTT,可忽略),http请求-返回数据信息(数据传输有耗时,不可忽略),连接关闭请求-连接关闭;

HTTP 2.0:持久HTTP,连接请求-确认,http请求-返回数据信息,之后连接不关,再有数据请求不需要重新建立连接。

1.0开始默认流水线请求方式。

HTTP请求报文的形式:ASCII码,可读

 

服务器提交表单方式:post方式,URL方式

 

用户-服务器状态:cookies

服务器向新用户分配cookie,用户访问服务器时带上cookie,服务器就可以关联用户行为,从而可以维护客户端状态。

 

Web缓存Cache(代理服务器proxy server):代理服务器缓存用户请求过的原始服务器的内容,这样用户不需要访问原始服务器,就可以满足客户要求(本地访问),快,减少原始服务器请求,降低网络拥塞、网络载荷。

但是代理服务器需要一直更新本地的缓存,条件GET方法:代理服务器向原始服务器请求,内容没换,原始服务器回一个head,not modified,如果内容有更新,再带上body数据。

 

2.3 FTP

FTP: 文件传输协议,默认端口20。

可以把本地文件上传到服务器,也可以从服务器下载文件,达到信息数据共享的效果。

控制连接与数据连接分开:

连接请求-连接,FTP控制连接-连接完成(服务器主动跟客户端建立数据连接)-在此之上完成用户确认(用户名、口令,明文传输),原语调用-上传下载文件。

FTP需要维护用户状态,是有状态的协议。

命令响应报文、状态码也是ASCII码的形式。

 

2.4 E-Mail

3个主要组成部分:

用户代理(软件outlook等,代理用户去做一些操作),邮件服务器,简单邮件传输协议SMTP。

使用TCP在客户端和服务器之间传输报文,默认端口号为25。

直接传输,从发送方到接收方服务器。

传输分三个阶段:握手建立连接、传输报文,关闭连接。

命令响应报文都是ASCII码形式,响应报文包含状态码和状态信息,报文必须为7位ASCII码。

报文格式:多媒体邮件扩展MIME multimedia mail extension

POP3协议:邮局协议第三版,Post Office Protocol - Version 3,支持客户端远程管理服务器上的邮件,下载、删除、保留,加上了保密协议加密方式SSL的POP3称为POP3S。

IMAP协议: Internet Mail Access Protocol(交互式邮件存取协议),服务器将每个报文与一个文件夹联系起来,允许用户使用目录来组织报文,允许用户读取报文组件,会话中保留用户状态。

 

2.5 DNS

DNS (Domain Name System) 域名解析系统,一个基础性的系统,是给应用用的,主要提供域名到IP地址的转换,还可以均衡访问请求。

问题:怎样命名,怎样解析,怎样维护。

分级命名,国家:.cn .jp .us等,类型:.com .edu .gov等;

怎么解析:

互联网名字空间分成一个个区域zone,zone之间互不重叠,每个区域都有一个区域名字服务器Name Server,维护区域内所有的域名和IP的对应关系。

TLD顶级域服务器,上层服务器包含对下层服务器的指针,能够按需求向下查询。

区域名字服务器维护资源记录resource records,维护域名-IP地址的映射关系,位置在Name Server的分布式数据库中。

 

DNS domain name server:保存资源记录RR的分布式数据库。

RR格式:name,value,type,ttl

 

DNS大致工作过程:

应用调用解析器resolver;

解析器作为客户 向Name Server发出查询报文(封装在UDP段中);

Name Server返回响应报文(name/IP)

 

Local name server 本地名字服务器:

并不严格属于层次结构,顺着树根向上递归查询,计算量大,通过迭代查询解决。

迭代查询iterated queries,查根DNS,没有查二级DNS,二级DNS也会缓存。

 

 

2.6 P2P应用

P2P架构:

没有(或极少)一直运行的服务器;

任意端系统都可以直接相互通信;

利用peer的服务能力;

Peer节点间歇性上网,每次IP地址都有可能发生变化。

 

文件分发:对比C/S模式对比p2p模式:

C/S下载时间:D_c/s >= max{NF / u_s, F / d_min };

P2P下载时间:D_p2p >= max{F / u_s, F / d_min, NF / (u_s + u_i的和) }.

p2p总共只需要一份F就够了,不需要NF,还多出了N个u_i作服务器提供数据下载服务,大大节省了文件分发的耗时,所付出的代价就是管理变得更加困难,但是绝对是利大于弊的模式改进。


C/S管理容易,可扩展性差;

p2p高度动态性,管理难,可扩展性强。


P2P文件共享两大问题:

如何定位所需资源;如何处理对等方peer的加入和离开。

 

解决方法:

1.     集中式目录:当对等方连接时,告知中心服务器(IP地址、内容)

问题:单点故障、性能瓶颈、侵犯版权

2.     完全分布式:查询泛洪flooding:在已有TCP连接上向所有邻居查询,邻居再向所有邻居查询。节点加入和离开网络都要告知邻居。

问题:要限制泛洪,而且管理困难。

3.     混合体:小范围的集中式目录查询,小范围内用户向组长查询,组长层面上是分布式的。统一哈希值命名,加快搜索速度。

 

 

2.7 CDN (Content Delivery Network) 内容分发网络

在应用层形成一个分发网络,解决互联网杀手级应用的内容加速服务。

DASH(Dynamic Adaptive Streaming over HTTP)动态自适应流化服务:

通过域名解析,重定向最近的缓存节点(缓存服务器)。


扫描二维码推送至手机访问。

版权声明:本文由借曦光发布,如需转载请注明出处。

本文链接:http://dawnblog.cn/?id=24

分享给朋友:
返回列表

上一篇:计网笔记_1

下一篇:计网笔记_3

相关文章

计算机网络临考笔记

计算机网络临考笔记

这是计网的临考笔记作为考研调剂才转专业到计算机的我来说,虽然本科接触过计算机网络,但是跟那些考研已经强化过一遍的同学一比,相对来说基础还是不大行的,而且这学期老师是全英文授课,考试也是全英文,所以针对期末考试这档子事儿,在深度学习和Pyth...

计网笔记_1

计网笔记_1

第一章:概论主要概念和术语,主要框架技术总括了整体的框架和知识点,打基础,最重要。(以互联网Internet为例)从大的构成来看互联网,包含三个子系统:网络边缘edge – 接入网access – 网络核心core 网络的划分(由...

计网笔记_3

计网笔记_3

第3章 传输层3.1 概述传输层的工作原理:多路复用/解复用RDT reliable data transfer流量控制、拥塞控制 传输服务和协议:位运行在不同主机上的应用进程提供逻辑通信TCP: Transmission Con...

计网笔记_6

计网笔记_6

第6章 链路层和局域网LAN6.1 引论和服务链路层的功能基本通过网卡/网络适配器NIC (Network Interface Controller)实现。存在一些寻址问题和网络控制问题。 链路层导论:包括优先链路、无线链路,也可...

计算机网络 - 总结

计算机网络 - 总结

到这儿基本郑老师课上的内容就都结束了,后面一些网络安全技术的延申个人觉得对计算机网络而言不甚重要,所以没有学习笔记,另外第八版中有关MPLS、wireless网络的一些内容,比如VPN、CSMA/CA等技术和协议,虽然对本科生不作要求,但是...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。