应用层内容

article/2024/5/23 2:46:39

1.1应用层概念

应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分。

  • 最早期基于文本的应用(电子邮件、远程登录、文件传输、新闻组)
  • 20世纪90年代将因特网带入千家万户的万维网WWW
  • 当今流行的即使通信、p2p文件共享及各种音频应用
  • 计算设备的小型化和“无处不在”,宽带住宅接入和无线网接入的日益普及和迅速发展,为未来更多的新型应用提供了广阔的舞台。

2.1客户/服务器方式(C/S方式)和对等方式(P2P方式)

客户/服务端(Client/Server,C/S)方式

  • 客户和服务器是指通信中所涉及的两个应用进程。
  • 客户/服务器方式所描述的是进程之间服务和被服务的关系。
  • 客户是服务请求方,服务器是服务提供方。
  • 服务器总是处于运行状态,并等待客户的服务请求。服务器具有固定端口(例如HTTP服务器的默认端口为80),而运行服务器的主机也具有固定的IP地址。

C/S方式是因特网上传统的,同时也是最成熟的方式,很多我们熟悉的网络应用采用的都是C/S方式。包括万维网WWW、电子邮件、文件传输FTP等。

基于C/S方式的应用服务通常是服务集中型的,即应用服务集在网络中比客户计算机少得多得服务器计算机上。

  • 由于一台服务器计算机要为多个客户端提供服务,在C/S应用中,常会出现服务器计算机跟不上众多客户机请求得情况。
  • 为此,在C/S应用中,常用计算机集群(或服务器场)构建一个强大得虚拟服务器

3.1动态主机配置协议DHCP

DHCP是应用层中的协议:用来自动分配IP地址、子网掩码、默认网关、DNS服务器

DHCP的工作过程

DHCP中继代理

4.1域名系统DNS

域名系统DNS的作用:便于用户记忆

DNS使大多数域名都在本地解析,仅少量解析需要在英特网上同行,因此系统效率很高。

由于DNS是分布式系统,即使单个计算机出了故障,也不会妨碍整个系统的正常运行。

域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。

根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器。

域名解析的过程

  • 递归查询
  • 迭代查询

 

 DNS报文使用运输层的UDP协议进行封装,运输层端口号为53

5.1文件传送协议FTP

文件传送协议FTP是因特网上使用最广泛的文件传送协议。

  • FTP提供交互的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限
  • FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间的传送文件。

FTP的常见用途是在计算机之间传输文件,尤其是用于批量传输文件

FTP的另一个常见的用途是让网站设计者将构成网站内容的大量文件批量上传到他们的Web服务器。

FTP的基本工作原理:

控制指令的通道一直打开(20端口),用于传送数据的通道(21端口)当传送时才打开,不传送的时候就关闭。

6.1电子邮件

简单邮件传送协议SMTP的基本工作原理

电子邮件的信息格式并不是由SMTP定义的,而是在RFC 822中单独定义的。一个电子邮件有信封和内容两部分。而内容又有首部和主体两部分构成。

SMTP协议只能传送ASCII码文本数据,不能传送可执行文件或其他的二进制对象。

为了解决SMTP传送非ASCII码文本的问题,提出了多用途因特网邮件扩展MIME

实际上,MIME不仅仅用于SMTP,也用于后来的同样面向ASCII字符的HTTP

常用的邮件读取协议有两种:

  • 邮局协议POP:110端口(不允许用户在邮件服务器上管理自己的邮箱,只能下载保留或删除等操作
  • 因特网邮件访问协议IMAP:143端口(用户在自己的计算机上就可以操纵邮箱服务器中的邮箱)

基于万维网的电子邮件

7.1万维网WWW

为了方便地访问在世界范围的文档,万维网使用统一资源定位符URL来指明因特网上任何种类资源的位置

超文本传输协议HTTP

HTTP的报文格式

  • HTTP是面向文本的,其报文中的每一个字段都是ASCII码串,并且每个字段的长度都是不确定的。

 使用Cookie在服务器上记录用户信息

  • Cookie是一种对无状态的HTTP进行状态化的技术

万维网缓存与代理服务器

  • 在万维网中还可以使用缓存机制以提高万维网的效率
  • 万维网缓存又称为Web缓存,可位于客户机,也可位于中间系统上,位于中间系统上的Web缓存又称为代理服务器
  • web缓存把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若发现这个请求与缓存的请求相同,就返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源。


http://www.ngui.cc/article/show-1007727.html

相关文章

【Redis笔记01】Redis环境搭建之单机模式和主从模式

这篇文章,主要介绍Redis环境搭建之单机模式和主从模式。 目录 一、单机模式和主从模式 1.1、单机模式 1.2、主从模式 (1)主从模式原理 (2)主从模式搭建 1.3、主从复制(数据同步) &#x…

Leetcode究极刷题笔记(21~25)

(21)合并两个有序链表(简单) 实现思路: 本题的实现类似于归并排序,我们先创建一个新链表的头结点与尾结点,然后同时遍历list1与list2,分别将二者之中较小的那一个插入新的链表即可…

编程题 进制转换(Java实现)

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

4005. 取石子游戏

Powered by:NEFU AB-IN Link 文章目录4005. 取石子游戏题意思路代码4005. 取石子游戏 题意 Alice 和 Bob 正在玩一个取石子游戏。 共有 n个石子,双方轮流采取行动。 每当轮到一人行动时,该名玩家需要从石子堆中取走恰好 1或 2或 k个石子。 如果轮到一人…

一维与二维前缀和(蓝桥杯复习+例题讲解+模板c++)

文章目录前缀和二维前缀和总结3956. 截断数组99. 激光炸弹文章首发于: My Blog 欢迎大佬们前来逛逛前缀和 前缀和是一种常见的算法,用于快速计算数组中某一段区间的和。前缀和的思想就是预处理出数组中前缀和,然后用后缀和减去前缀和&#x…

【零基础入门SpringBoot2】—— Web开发_3

一、Web原生组件注入 如何向SpringBoot中注入Web的原生组件? 1、使用Servlet API (1)Servlet原生组件 创建一个Servlet类,让它继承原生的Servlet的实现类 HttpServlet ,使用WebServlet注解指定我们的请求,…

MobaXterm 链接Linux Ubuntu

MobaXterm 链接Linux Ubuntu 1.查看是否安装 openssh-server sudo apt-get install open-server2.开启ssh服务 sudo /etc/init.d/ssh start3.查看虚拟机的IP ifconfig5.打开MobaXterm 将ip输入即可 如果传输文件,选择SFTP,步骤和上面一样

c++加解密算法总结

不可逆加密 概述 单向加密,主要是对明文的保密和摘要提取。算法包括MD5、SHA、HMAC等。 特点 压缩性:任意长度的数据,单向加密后长度都是固定的;抗修改性:对原数据进行任何改动,哪怕只修改1个字节&…

JAVA Session会话 Thymeleaf - 视图模板技术配置步骤

JAVAWebSession会话会话跟踪技术session保存作用域Thymeleaf - 视图模板技术配置过程Session会话 HTTP是无状态的:服务器无法区分这两个请求是同一个客户端发过来的,还是不同的客户端发过来的 现实问题:第一次请求是添加商品到购物车&#x…

model.train()、model.eval()什么时候用

model.train() 在使用 pytorch 构建神经网络的时候,训练过程中会在程序上方添加一句model.train(),作用是 启用 batch normalization 和 dropout 。 如果模型中有BN层(Batch Normalization)和 Dropout ,需要在训练时…