当前位置: 首页 > news >正文

计算机网络第六章——应用层

应用层导图:

应用层的功能:对应用程序的通信提供服务。

一.网络应用模型

网络应用模型有:客户/服务器模型(C/S模型)和P2P模型(Peer-to-Peer)

1.客户/服务器模型

客户机:请求计算服务的主机

客户机有以下功能:

  • 与服务器通信,使用服务器提供的服务。
  • 间歇性接入网络
  • 可使用动态IP地址

服务器:提供计算服务的设备。

服务器有以下功能:

  • 永久提供服务
  • 永久性访问地址/域名

2.P2P模型

P2P模型中不存在永久在线的服务器,每一个主机既可以提供服务,也可以请求服务。对于任意一端的系统或者节点之间都可以直接通讯。

比如王者荣耀,在游戏中,有一个玩家掉线了,其它玩家依然可以继续游戏,不会受到影响,这其实就是P2P模型,而如果腾讯里为王者荣耀游戏提供服务的服务器全部坏掉了,那么所有王者荣耀玩家就都无法请求服务,也就玩不了这个游戏,这就是C/S模型。

二.域名解析系统(DNS)

当我们要访问某个网站时,我们一般不会输入相应的IP地址,因为IP地址不好记忆,因此就有了域名,比如:www.baidu.com,当我们输入域名时,DNS服务器就会负责将域名解析成IP地址

1.域名

域名树

2.DNS服务器

3.域名解析过程

域名解析过程分为:递归查询和迭代查询

高速缓存:为了提高DNS的查询效率,并减轻根域名服务器的负担,和减少因特网上的DNS查询报文数量,在域名服务器中广泛的使用了高速缓存。

高速缓存用来存放最近查询过的域名,以及从何处获得域名映射信息的记录,如图所示,如果不久前已经有用户查询过域名为y.ABC.COM的IP地址,则本地域名服务器的高速缓存中,应该存有该域名对应的IP地址。当主机向本地域名服务器递归查询该域名时,本地域名服务器就没有必要再向某个根域名服务器进行迭代查询了,而是直接把高速缓存中存放的上次查询结果,即该域名的IP地址告诉用户主机。

三.文件传输协议(FTP)

文件传送协议分为FTP和TFTP(简单文件传送协议),TFTP非常适用于UDP环境,FTP提供了不同种类主机系统之间的文件传输能力。

1.FTP服务器和用户端

FTP是基于C/S协议

2.FTP工作原理

四.电子邮件

1.电子邮件信息格式

2.组成结构

3.简单邮件传送协议(SMTP)

SMTP规定了两个相互通信的SMTP进程之间如何交换信息。

复制发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器

SMTP通信阶段

SMTP的缺陷:

  • SMTP不能传送可执行文件或者其他二进制对象
  • SMTP仅限于传送7位ASCll码,不能传送其它非英语国家的文字
  • SMTP服务器会拒绝超过一定长度的邮件

因此,就有了通用因特网邮件扩充MIME,使电子邮件传输内容丰富多彩,可以支持声音、图像、视频、多国家语言等。

4.邮局协议(POP3)

5.网际报文存取协议(IMAP)

6.基于万维网的电子邮件

五.万维网和HTTP协议

1.万维网

万维网是一个大规模的、联机式的信息储藏所,是无数个网络站点和网页的集合。

2.超文本传输协议(HTTP)

HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。

HTTP协议的特点

  • HTTP协议是无状态的。
  • HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文前不需要建立HTTP连接)

HTTP的连接方式:

报文结构

HTTP报文分为请求报文和响应报文,HTTP报文是面向文本的,因此在报文中每一个字段都是ASCll码串。

相关文章:

  • 速盾:cdn是怎么加速视频的?
  • 【解密 Kotlin 扩展函数】顶级函数和顶级属性(十五)
  • 极狐GitLab 17.4 重点功能解读【一】
  • springboot基于学习行为的学生选课成绩分析系统设计与实现
  • 计算机视觉实战项目4(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
  • oracle数据备份和导入
  • RT_Thread内核源码分析(二)——链表和对象管理
  • 2024.9.27 Python面试八股文
  • Linux权限解析
  • 自学网络安全(黑客技术)2024年 90天学习计划
  • 微信小程序加载H5页面及与H5页面通信的实战教程
  • 多旋翼无人机“仿鸟类”精确拦截飞行目标,助力低空安全
  • 鹏哥C语言55-57---二维数组+数组越界+数组传参(冒泡排序)
  • 婚恋交友小程序的设计思路与用户体验优化
  • JavaScript 从事件处理入手的优化
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 08.Android之View事件问题
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • dva中组件的懒加载
  • GitUp, 你不可错过的秀外慧中的git工具
  • HashMap剖析之内部结构
  • React16时代,该用什么姿势写 React ?
  • SQLServer之创建显式事务
  • text-decoration与color属性
  • Web标准制定过程
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 大整数乘法-表格法
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 规范化安全开发 KOA 手脚架
  • 汉诺塔算法
  • 和 || 运算
  • 力扣(LeetCode)965
  • ​如何使用QGIS制作三维建筑
  • !!Dom4j 学习笔记
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #Linux(Source Insight安装及工程建立)
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (4)logging(日志模块)
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)大型网站架构演变和知识体系
  • (转)项目管理杂谈-我所期望的新人
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET BackgroundWorker
  • .Net Core与存储过程(一)