计算机网络基础--应用层

网络应用的体系结构

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

服务器
 7*24小时提供服务
 可永久性访问的地址/域名
 利用大量服务器实现可扩展性

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

点对点结构(Peer-to-peer, P2P)

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

优点:高度可伸缩
缺点:难管理

混合结构(Hybrid)

C/S和P2P的混合

网络应用进程通信

同一主机的进程间通信机制由操作系统提供,而网络中不同主机的进程通信依靠消息交换(操纵系统提供网络编程的API——socket)。发起通信的进程是客户机进程,等待通信请求的进程是服务器进程。
在这里插入图片描述

进程寻址

IP地址+端口号

网络层协议

网络应用需遵循应用层协议以允许互操作,公开协议RFC(Request For Comments)定义,多数P2P文件共享应用使用私有协议

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

数据丢失(data loss)/可靠性(reliability)
 某些网络应用能够容忍一定的数据丢失:网络电话
 某些网络应用要求100%可靠的数据传输:文件传输,telnet

时间(timing)/延迟(delay)
 有些应用只有在延迟足够低时才“有效”
 网络电话/网络游戏

带宽(bandwidth)
 某些应用只有在带宽达到最低要求时才“有效”:网络视频
 某些应用能够适应任何带宽——弹性应用:email

……

在这里插入图片描述

Internet提供的传输服务

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

UDP服务
 无连接
 不可靠的数据传输
 不提供:
• 可靠性保障
• 流量控制
• 拥塞控制
• 延迟保障
• 带宽保障
在这里插入图片描述

Web应用

在这里插入图片描述
Web由网页组成,网页间可相互链接。网页(Web Page)包含多个对象(objects)(HTML文件、JPEG图片、视频文件、动态脚本等),网页对象使用URL(Uniform Resoure Locator,统一资源定位器 RFC1738)定位。
在这里插入图片描述

HTTP协议概述

万维网遵循HTTP协议(HyperText Transfer Protocol,超文本传输协议)。

C/S架构
 客户机是浏览器(Browser),请求、接收和展示Web对象
 服务器(Web Server)响应客户请求,发送对象。

在这里插入图片描述
HTTP版本
 HTTP 1.0 RFC 1945
 HTTP 1.1 RFC 2068

使用TCP传输服务
 服务器在80端口等待客户的请求
 浏览器发起到服务器的TCP连接(创建套接字Socket)
 服务器接受来自浏览器的TCP连接
 浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息
 关闭TCP连接

无状态(stateless)
 服务器不维护任何有关客户端过去所发请求的信息
注:有状态的协议更复杂,需维护状态( 历史信息),如果客户或服务器失效,会产生状态的不一致,解决这种不一致代价高。

HTTP连接

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

持久性连接(Persistent HTTP)
 每个TCP连接允许传输多个对象
 HTTP 1.1版本默认使用持久性连接

在这里插入图片描述

HTTP请求消息

在这里插入图片描述
以GET请求为例(GET方式无Entity Body,POST方式有),如下图。在这里插入图片描述
HTTP/1.0提供了GET,POST和HEAD(请Server不要将所请求的对象放入响应消息中)方法。
HTTP/1.1提供了GET, POST, HEAD,PUT(将消息体中的文件上传到URL字段
所指定的路径)和DELETE(删除URL字段所指定的文件)方法。

HTTP响应消息

在这里插入图片描述

Cookie技术

HTTP协议是无状态的,但很多应用需要服务器掌握客户端的状态,如网上购物,如何实现?Cookie技术。

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

Cookie的组件
 HTTP响应消息的cookie头部行
 HTTP请求消息的cookie头部行
 保存在客户端主机上的cookie文件,由浏览器管理
 Web服务器端的后台数据库
在这里插入图片描述
Cookie应用
 身份认证(登录记住密码)
 购物车
 推荐
 …….

既然Cookie可以识别客户端,就能跟踪每个用户的在本网站上的行为,隐私啊!

Web 缓存/代理服务器技术

在这里插入图片描述

一个例子

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
怎么保证代理服务器中的版本是最新的?可以利用请求头中的If-modified-since: <date>确认是否更改,若没更改,原始服务器响应给缓存服务器的消息不含对象(HTTP/1.0 304 Not Modified),若更改了,就返回最新版本的就OK了。

Email应用

DNS

DNS(Domain Name System,域名系统) ,分布式层次式数据库,负责把域名翻译成IP地址。域名解析是Internet核心功能,用应用层协议DNS实现。
在这里插入图片描述
本地域名解析服务器(当主机进行DNS查询时,查询被发送到本地域名服务器,本地域名服务器代理主机查询)无法解析域名时,访问根域名服务器(全球有13个根域名服务器),根域名服务器如果不知道映射,访问顶级域名服务器(负责com, org, net,edu等顶级域名和国家顶级域名,例如cn, uk, fr等),顶级域名服务器如果也不知道映射,就访问权威域名服务器(组织的域名解析服务器),获得映射并向本地域名服务器返回映射。
在这里插入图片描述
只要域名解析服务器获得域名—IP映射,即缓存这一映射,一段时间过后,缓存条目失效(删除),本地域名服务器一般会缓存顶级域名服务器的映射,因此根域名服务器不经常被访问。

DNS里的资源记录(RR, resourcerecords)格式是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相对应的邮件服务器

P2P应用

Socket简介

在这里插入图片描述

在这里插入图片描述

几种典型的网络应用编程接口API

 Berkeley UNIX 操作系统定义了一种 API,称为套接字接口(socket interface),简称套接字(socket)。
 微软公司在其操作系统中采用了套接字接口API,形成了一个稍有不同的 API,并称之为 Windows Socket Interface,WINSOCK。
 AT&T 为其 UNIX 系统 V 定义了一种 API,简写为 TLI (Transport Layer Interface)。

Socket API概述

对外用IP地址+端口号确定一个socket,对内操作系统/进程利用套接字描述符管理socket。
在这里插入图片描述

参考资料

[1] 中国大学MOOC《计算机网络》 李全龙 聂兰顺

发布了329 篇原创文章 · 获赞 195 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/ccnuacmhdu/article/details/105613033