【计算机网络 - 第二章】应用层(更新中)

news2024/9/20 10:57:49

目录

一、应用层协议原理

1、网络应用程序体系结构

(1)客户/服务器模型(C/S)

(2)P2P模型(Peer-to-Peer)

2、进程通信

(1)客户和服务器进程

(2)进程与计算机网络间的接口

(3)进程寻址

(4)应用层协议的定义

(5)应用所需的传输层服务

(6)运输服务

二、Web和HTTP

1、Web术语

2、HTTP概述

3、非持续连接和持续连接

(1)非持续连接

(2)持续连接

4、HTTP报文格式

(1)HTTP请求报文

(2)HTTP响应报文

5、用户与服务器的交互:cookie

(1)四个组成部分

(2)cookie跟踪用户状态实例

6、Web缓存器(代理服务器)

(1)Web缓存器的工作过程

(2)Web缓存器效率分析

7、条件GET方法

(1)GET方法实例

三、FTP文件传输协议

1、FTP基本工作原理

(1)主动模式

(2)被动模式

四、电子邮件

1、概述

2、SMTP——邮件发送协议

(1)SMTP基本工作原理

(2)SMTP特点

3、POP3邮局协议——邮件读取协议

4、IMAP因特网邮件访问协议——邮件读取协议

五、DNS:因特网的目录服务

1、DNS概述

2、DNS提供的服务

(1)DNS特点:

(2)获取www.someschool.edu的IP地址过程

(3)DNS提供的服务

3、DNS工作机理概述

(1)为什么不用集中化DNS?

(2)分布式层次数据库

(3)DNS缓存

4、DNS记录和报文

(1)概述

(2)DNS报文


一、应用层协议原理

1、网络应用程序体系结构

(1)客户/服务器模型(C/S)

5c8c079883944642b214c09dd366fbf3.jpeg

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

  1. 永久提供服务
  2. 永久性访问地址/域名

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

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

应用:Web、文件传输FTP、远程登陆、电子邮件

(2)P2P模型(Peer-to-Peer)

8cf10b3de11b4ce0a8305a9b3b27af97.jpeg

  • 不存在永远在线的服务器
  • 每个主机既可以提供服务,也可以请求服务
  • 任意端系统/节点之间可以直接通讯
  • 节点间歇性接入网络
  • 节点可能改变IP地址
  • 可扩展性好
  • 网络健壮性强

2、进程通信

(1)客户和服务器进程

  • 发起通信的进程被标识为客户
  • 在会话开始时等待联系的进程是服务器

(2)进程与计算机网络间的接口

  • 进程通过一个称为套接字(socket)的软件接口向网络发送报文和从网络中接受报文
  • 在客户端,套接字是客户进程与运输层TCP连接之间的一扇“门”,将消息传给运输层
  • 在服务器端,套接字是服务器进程与TCP连接的一扇门
  • 套接字也称为应用程序与网络间的应用程序编程接口(API),也就是调用函数,开发者可以通过套接字进行网络编程
  • API控制:(1)选择运输层协议(2)设定某些参数

(3)进程寻址

  • 主机的地址——主机由IP地址标识(32bit,唯一标识主机)
  • 在目的主机中制定接收进程的标识符——端口号
  • 比如:Web服务器端口号80,邮件服务器进程端口号25

(4)应用层协议的定义

  • 交换报文的类型
  • 报文类型的语法
  • 字段的语义
  • 确定一个进程何时以及如何发送报文,对报文进行响应的规则

(5)应用所需的传输层服务

①可靠数据传输

  • 像一些多媒体应用,丢失一些数据导致音频出现小干扰并不影响,但像文件传输等应用,数据丢失后果非常严重。
  • 当运输协议提供可靠数据传输服务时,就可以完全相信该数据能无差错地到达接收进程

②吞吐量

  • 某些应用需要保证吞吐量至少为r bit/s,运输层需要保证吞吐量服务,不然该应用程序将以低速率进行编码或放弃运行
  • 具有吞吐量要求的应用称为带宽敏感的应用,弹性应用可根据可用带宽或多或少地利用可使用的吞吐量

③定时(时效性)

  • 对于交互式实时应用,较低的时延比较高的时延好

④安全性

(6)运输服务

①TCP服务

  • 面向连接的服务:在应用数据报文开始流动之前,TCP让客户机与服务器互换运输层的控制信息,该握手过程提醒双方为大量分组到来做好准备。握手阶段后,一个TCP连接在两个进程中套接字间建立,双方进程可以在此连接上同时进行报文收发
  • 可靠的数据传送服务:通信进程能够依靠TCP,无差错地交付所发的数据
  • 拥塞控制
  • 不提供时效性,带宽保证

②UDP服务

  • UDP是一种不提供不必要服务的轻量级运输协议,仅提供最小服务
  • UDP协议提供一种不可靠数据传输服务,最重要的优点就是简单

二、Web和HTTP

1、Web术语

  • Web页面:由若干个对象组成
  • 对象:是一个文件,比如一个HTML文件、一个JPEG图形、一个JAVA小程序或一段视频,它们可以通过一个URL地址寻址
  • 每个URL地址由两部分组成:①存放对象服务器主机名②对象的路径名
  • http://www.someschool.edu/someDepartment/picture.gif  主机名
  • http://www.someschool.edu/someDepartment/picture.gif   对象路径名

2、HTTP概述

  • HTTP:超文本传输协议,Web应用层协议,是Web的核心
  • HTTP由两个程序实现:①客户程序——Web浏览器②服务器程序——Web服务器
  • HTTP定义了浏览器向服务器请求页面的方式,以及服务器向浏览器传送页面的方式
  • HTTP使用TCP作为它的支撑运输协议
  • HTTP协议工作过程:
  1. 客户初始化TCP连接(生成套接字),浏览器和服务器进程可以通过套接字接口访问TCP
  2. 客户和服务器之间进行HTTP请求报文的收发和HTTP响应报文的收发
  3. TCP连接关闭
  • HTTP是无状态协议,服务器不会维护过去浏览器的请求,假如某客户在短短几秒内两次请求同一个对象,服务器不会因为刚刚为客户提供了该对象就不再作出反应

3、非持续连接和持续连接

(1)非持续连接

一次TCP连接最多发送一个对象

eg:假设该页面含1个HTML基本文件和10个JPEG图形,这11个对象位于同一台服务器上

该HTML文件的URL:http://www.someschool.edu/someDepartment/home.index

  1. HTTP客户进程在端口号80初始化一个到服务器www.someschool.edu的TCP连接
  2. HTTP服务器www.someschool.edu在端口80等待TCP连接,通知客户
  3. HTTP客户经它的套接字向该服务器发送一个HTTP请求报文,请求报文包含路径名/someDepartment/home.index
  4. HTTP服务器经其套接字接收请求报文,从其存储器检索出对象http://www.someschool.edu/someDepartment/home.index,在一个HTTP响应报文中封装对象,并通过套接字向客户发送响应报文
  5. HTTP客户接收到响应报文,TCP连接关闭。客户从响应报文提取该HTML文件,得到对10个JPEG图形的引用
  6. 对每个引用的JPEG图形对象重复前四个步骤

非持续HTTP响应时间 = 2RTT + 文件传输时间

  • RTT定义:一个数据从客户到服务器再返回客户所花费的时间
  • 第一个RRT——初始化TCP连接
  • 第二个RRT——HTTP请求报文的发送和响应报文的返回

(2)持续连接

一次TCP连接可以发送多个对象

非持续连接的缺点:

  1. 必须为每一个对象建立和维护一个全新的连接,浏览器采用并行的TCP,要分配缓冲区,增加OS操作系统的负担
  2. 每个对象要2个RTT,效率低

持续连接的优点:

  1. 服务器发送响应报文后保存该TCP连接打开,后续请求和响应报文都在该TCP连接进行传送
  2. 一个对象用一个RTT,效率高

4、HTTP报文格式

(1)HTTP请求报文

Connection——Connection:close 非持续连接

User-agent——用户代理,向服务器发送请求的浏览器类型

  • POST方法:使用实体体,当用户提交表单时,常使用POST方法,实体体中包含用户在表单字段中的输入值

  • GET方法:实体体为空。GET方法也可以将输入内容通过请求报文传给服务器,但是放置位置在URL中
  • 例如:一个表单用GET方法,分别填写“monkey”和“bananas”,则其URL结构为www.somesite.com/animalsearch? monkeys&bananas

  • HEAD方法:用一个HTTP报文进行响应,但不返回请求对象,一般用来调试
  • PUT方法:让实体体中包含要上传的文件,把这个文件上传到URL路径里边指定的位置
  • DELETE方法:删除URL指定的一个文件

(2)HTTP响应报文

Server——服务器

Last-Modified——对象创建或最后修改的日期和时间

Content-Type—— 文本内容类型

常见的状态和相关短语:

  • 200 OK:请求成功,信息在返回的响应报文中
  • 301 Moved Permanently:请求的对象已经被永久转移了,新的URL定义在响应报文的Location:首部行中。客户软件将自动获取新的URL
  • 400 Bad Request:格式错误,一个通用差错代码,指示该请求不能被服务器理解
  • 404 Not Found:被请求的文档不在服务器上
  • 505 HTTP Version Not Supported:版本不支持,服务器不支持请求报文使用的HTTP协议版本

5、用户与服务器的交互:cookie

cookie可以用于标识一个用户,维护状态

cookie可以在无状态HTTP之上建立一个用户会话层

(1)四个组成部分

  • HTTP响应报文的一个cookie首部行
  • HTTP请求报文的一个cookie首部行
  • 保留用户端系统的cookie文件,供用户浏览器管理
  • Web站点后台数据库

(2)cookie跟踪用户状态实例

  • Susan访问亚马逊网站(假设她已经访问过eBay站点),浏览器初始化一个HTTP请求报文,当报文到达亚马逊服务器时,站点生成一个cookie唯一ID,并在后端数据库里生成一条与该ID相对应的表项。
  • 亚马逊服务器返回一个包含cookie:1678首部的响应报文,浏览器收到报文后,在浏览器特定的cookie文件中添加一行,该行包括服务器主机名+cookie。该cookie文件已经有用于eBay的表项,因为Susan过去访问过eBay。
  • 一周后,Susan继续浏览亚马逊网站,每请求一个Web网页,浏览器就会查询该cookie文件并抽取该网站识别码,放到HTTP请求报文首部行中,亚马逊网站将知晓过去Susan在该网站留下的所有信息,达到跟踪用户的目的。

6、Web缓存器(代理服务器)

目的:不用访问初始服务器而满足客户请求

优点:大大减少对客户请求的响应时间,减少通信量

(1)Web缓存器的工作过程

  • 假设浏览器正在请求对象http://www.someschool.edu/campus.gif
  • 浏览器创建一个到Web缓存器的TCP连接,并向Web缓存器的对象发送一个HTTP请求报文
  • Web缓存器检查本地是否存储该对象的副本。如果有,Web缓存器就向浏览器返回HTTP响应报文
  • 如果Web缓存器没有存储该对象,它就建立一个到该对象的初始服务器的TCP连接,并发送该对象的HTTP请求报文,收到请求报文的初始服务器给Web缓存器发送响应报文
  • 当Web缓存器接受到该响应报文时,它在本地存储一份副本,并向浏览器用HTTP响应报文发送该副本

(2)Web缓存器效率分析

  • L:假设对象的平均大小=1Mb
  • a:浏览器平均访问速率=15/s
  • R:浏览器平均访问速率为15Mbps,局域网平均访问速率100Mbps
  • 往返时延(从路由器转发请求报文到它收到响应报文的时间)为2s

总响应时间 = 局域网时延+接入时延(两台路由器之间的时延)+因特网时延

局域网时延=La/R=1*15/100=0.15(可忽略)

接入时延=La/R=1*15/15=1

当流量强度接近1时,链路上时延无限大,必须想办法改进

  • 解决办法1:增加接入链路的速率,将流量强度降低,但是成本高
  • 解决办法2:安装Web缓存器,成本低,响应时延低

7、条件GET方法

如果Web缓存器中存储的对象副本可能是陈旧的,该对象可能自缓存后会进行更新,为解决更新问题,HTTP协议提供一种机制,允许Web缓存器证实它的对象是最新的。

如果  ①请求报文使用GET方法  ②请求报文中包含"If-Modified-Since:"首部行,则该HTTP请求报文就是一个条件GET请求报文

(1)GET方法实例

Web缓存器向某web服务器发送一个请求报文:

GET /fruit/kiwi.gif HTTP/1.1
Host:www.exotiquecuisine.com

web服务器向Web缓存器发送具有被请求对象的响应报文:

HTTP/1.1 200 OK
Date:Sat, 3 Oct 2015 15:39:29
Server:Apache/1.3.0 (Unix)
Last-Modified:Wed, 9 Sep 2015 09:23:24  //最后修改日期
Content-Type:image/gif

(data data data...)

Web缓存器转发该对象时,也在本地保存了该对象的副本,存储了最后修改日期

一周后,另一个用户提供该缓存器请求同一个对象,由于存储在本地的对象可能已经更新,该Web缓存器通过发送一个条件GET执行最新检查:

GET /fruit/kiwi.gif HTTP/1.1
Host:www.exotiquecuisine.com
If-modified-since: Wed, 9 Sep 2015 09:23:24

该条件GET报文告诉web服务器,仅当自指定日期之后该对象被修改过,才发送该对象

①如果该对象没有被修改

HTTP/1.1 304 Not Modified
Date:Sat, 10 Oct 2015 15:39:29
Server:Apache/1.3.0 (Unix)

②如果该对象被修改

HTTP/1.1 200 OK
Date:Sat, 10 Oct 2015 15:39:29
Server:Apache/1.3.0 (Unix)

(data data data...) //将新的版本装载

三、FTP文件传输协议

FTP提供交互式访问,允许客户指明文件类型与格式,允许文件具有存取权限

FTP适合在异构网络中任意计算机间传送文件

1、FTP基本工作原理

(1)主动模式

  • FTP客户向FTP服务器建立命令通道:FTP客户随机选择一个临时端口号与FTP服务器的熟知端口号21建立TCP连接,该连接用于传送FTP相关控制命令
  • FTP服务器向FTP客户建立数据通道:当有数据要传送,FTP客户通过命令通道告知FTP服务器,在其熟知端口号20来与自己的另一临时端口建立tcp连接,该连接用于传输数据
  • 控制连接在整个会话期间一直保持打开
  • 数据连接只有在每次传输文件时才打开,传输完就关闭

(2)被动模式

和主动模式的不同在于:当有数据要传输时,FTP客户通过命令通道告知FTP服务器开启某个临时端口,被动等待FTP客户的TCP连接

四、电子邮件

1、概述

电子邮件系统采用C/S方式

由三个主要组成部分:用户代理、邮件服务器、电子邮件所需的协议

  • 用户代理:是用户与电子邮件的接口,又称电子邮件客户端软件
  • 邮件服务器:功能是发送和接收邮件,维护用户邮箱(eg:qq邮箱,谷歌邮箱)
  • 协议:包括邮件发送协议(SMTP)和邮件读取协议(POP3、IMAP)

2、SMTP——邮件发送协议

(1)SMTP基本工作原理

  • 发送方邮件服务器周期性地扫描邮件缓存,如果发现有待转发的邮件,则发送方邮件服务器中有SMTP客户,与接收方邮件服务器的SMTP服务器进行TCP连接(熟知端口号25)
  • 发送方邮件服务器可通过该连接发送SMTP命令,接收方邮件服务器可通过该连接发送SMTP应答
  • TCP连接成功建立后,SMTP服务器会主动推送服务就绪应答给SMTP客户,应答代码220后可能跟有描述信息
  • SMTP客户收到该应答后,向服务器表面身份,告知自己的SMTP服务器域名
  • 如果SMTP服务器认为身份有效,发应答代码250,否则发其他代码,例如421表示服务不可用
  • SMTP客户使用命令MAIL FROM告诉服务器邮件来自何方
  • 如果SMTP服务器认为合理返回应答代码250,否则返回其他错误代码
  • SMTP客户使用命令RCPT TO告诉服务器邮件去往何地
  • 如果SMTP服务器认为合理返回应答代码250,否则返回其他错误代码
  • SMTP客户使用DATA命令告诉服务器邮件内容
  • 如果SMTP服务器准备好接收,返回应答代码354,否则返回其他错误代码
  • SMTP客户发送邮件内容,接着发送结束符
  • 如果SMTP服务器收件成功返回应答代码250,否则返回其他错误代码
  • SMTP客户使用QUIT命令向服务器请求断开连接
  • SMTP服务器认为合理返回应答代码221表示接受请求并主动断开连接

(2)SMTP特点

  • SMTP协议只能传送ASCII码文本数据,不能传送可执行文件或其他的二进制对象
  • SMTP不能传送多媒体邮件,许多其他非英语国家的文字也无法用SMTP传送

3、POP3邮局协议——邮件读取协议

  • 用户只能以下载并删除方式或下载并保留方式从邮件服务器下载邮件,不允许用户在邮件服务器上管理自己的邮件
  • 采用基于TCP连接的C/S服务器方式
  • 采用熟知端口110

4、IMAP因特网邮件访问协议——邮件读取协议

  • IMAP是一个联机协议,用户在自己的计算机上就可以操控邮件服务的邮箱
  • 采用基于TCP连接的C/S服务器方式
  • 采用熟知端口143

五、DNS:因特网的目录服务

1、DNS概述

用于标识主机有:

  • 域名,给用户识别——www.google.com
  • IP地址,数据报寻址——121.7.106.83

将域名与IP地址通过DNS系统进行映射

DNS(域名系统)是一种能进行主机名(域名)到IP地址转换的目录服务

DNS协议运行在UDP之上,使用53号端口

2、DNS提供的服务

(1)DNS特点:

一个由分层的DNS服务器实现的分布式数据库

一个使得主机能够查询分布式数据库的应用层协议

(2)获取www.someschool.edu的IP地址过程

  • 同一台用户主机运行DNS应用的客户端
  • 浏览器从URL抽取主机名www.someschool.edu,并将该主机名传给DNS应用的客户端
  • DNS客户向DNS服务器发送一个包含主机名的请求
  • DNS客户最终收到一份回答报文,其中含有对应该主机的IP地址
  • 浏览器收到IP地址,它将向位于该IP地址80端口的HTTP服务器发起TCP连接

(3)DNS提供的服务

  • 主机名到IP地址的翻译
  • 获得主机别名对应的主机规范名以及IP地址
  • 邮件服务器别名
  • 负载分配:繁忙站点被冗余分布在多台服务器上,每台服务器均运行在不同端系统上,多个IP地址与同一个规范主机名相联系。DNS数据库中存着这些IP地址的集合。因为客户机通常向IP地址排在前面的服务器发送HTTP请求报文,DNS就循环分配IP地址(第一个人给第一个IP地址,第二个人给第二个IP地址……把用户分散在不同的服务器上)

3、DNS工作机理概述

(1)为什么不用集中化DNS?

  • 单点故障:如果一方瘫痪,整个因特网均崩溃
  • 通信负载:单个DNS服务器处理所有DNS查询
  • 延迟极高
  • 维护困难

(2)分布式层次数据库

根DNS服务器

  • 有400多个根服务器遍及全世界
  • 根服务器提供TLD的IP地址

顶级域服务器(TLD)

  • 对于每个顶级域(如com、org、net、edu、gov)和所有国家的顶级域(如uk、fr、ca、jp),都有TLD服务器(或服务器集群)
  • TLD服务器提供权威DNS服务器的IP地址

权威DNS服务器

  • 一个单位的域名服务器

本地DNS服务器(LNS)

  • 一个本地的DNS服务器并不属于该服务器的层次结构
  • 每个ISP都有一台本地DNS服务器,当主机发出DNS请求,该请求将发往本地DNS服务器中,LNS起代理作用,并将请求转发到DNS服务器层次结构中

(3)DNS缓存

  • 当某DNS接到一个DNS回答(例如,包含某主机名到IP地址的映射),它能将映射缓存在本地存储器中,另一个对相同主机名的查询到达该DNS服务器时,该DNS服务器能立刻提供所要求的IP地址
  • 改善时延性能,并减少在因特网传输的DNS报文数量

4、DNS记录和报文

(1)概述

资源记录——RR,提供了主机名到IP地址的映射

每个DNS报文包含一条或多条资源记录

资源记录是包含下列字段的4元组【Name,Value,Type,TTL】

TTL决定RR应当从缓存中删除的时间

Name和Value的值取决于Type:

  • Type=A,Name是主机名,Value是该主机名对应的IP地址——类型为A的RR提供规范主机名到IP地址的映射
  • Type=NS,Name是一个域,Value是一个知道如何获得该域中主机IP地址的权威DNS服务器的主机名
  • Type=CNAME,Value是一个别名为Name的主机对应的规范主机名
  • Type=MX,Value是一个别名为Name的邮件服务器的规范主机名

  1. 如果一台DNS服务器是权威DNS服务器,该服务器会包含一条用于该主机名的类型A记录
  2. 如果不是权威DNS服务器,该服务器将包含一条NS类型记录和一条A类型记录(NS知道权威DNS的主机名,A知道NS所知道权威DNS主机名对应的IP地址)

(2)DNS报文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/462781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

重载是什么?只有返回值类型不同算不算重载?为什么?

重载定义 首先,重载,从简单说,就是函数或者方法有相同的函数名,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者重载方法,例子如下: 重载但…

机房一体化监测解决方案

随着5G、工业互联网等最新基建项目的扎实推进,我国数字经济发展也在不断开拓,很多地区也在积极建设新型信息基础设施,围绕规划、网络、用能等方面加大支持力度。在信息网络技术不断发展的背景下,各类网络设备机房广泛分布。但很多…

品牌商业笔记怎么写,投放笔记总结

小红书的用户当中有百分之五十以上都是来自一线城市,这证明着平台蕴藏着巨大的流量价值。这其中,品牌为了利益自然会去追求如何写商业笔记。今天就来和大家一起分享一下品牌商业笔记怎么写,在投放笔记的时候需要注意什么呢。 根据最新的数据显…

【22-23 春学期】人工智能基础--AI作业2-监督学习

【22-23 春学期】AI作业2-监督学习_HBU_David的博客-CSDN博客 用自己的语言,解释以下概念 1 结构风险最小化 2 正则化 3 线性回归 4 逻辑斯蒂回归 5 Sigmoid 与 SoftMax 函数 6 决策树 7 信息熵 条件熵 信息增益 8 线性判别分析 LDA 9 概率近似正确 PAC …

TCP分岔:优化云服务的性能

云服务器问题 对于搜索、电子邮件和社交网络等云服务,非常需要提供高水平的响应性,因此这些服务运行在自己的端系统(包括其智能手机)中 由于用户经常位于远离数据中心的地方,而这些数据中心负责为云服务管理的动态内…

刷爆朋友圈!前百度总裁陆奇最新AI重磅演讲:我的大模型世界观

文 / 高扬 陆奇的演讲刷屏了,我认真看了他的演讲稿,收获颇丰。 陆奇提到,人类社会的发展,大致可分为:农业化、工业化和数字化三个阶段。 在三个递进的阶段中,人类一直在探索如何减少烦琐且消耗能量的体力和…

紧密联结玩家 | 2023 Google 游戏开发者峰会

玩家的选择是对游戏莫大的认可,重视玩家反馈并和他们建立联系是您的游戏取得成功的关键。我们也在努力创造更多机会,让您的游戏从琳琅满目的列表中脱颖而出,帮助您吸引更多用户。 上篇内容我们介绍了帮助您优化游戏性能的几大功能更新&#x…

【Anaconda】更换清华源实现pip提速

Anaconda用pip安装package时,经常会遇到安装过慢或安装失败的情况,使用以下方法,可以实现package的快速安装。 目录 一、修改配置文件 1.1 生成生成.condarc文件 1.2 修改~/.condarc文件,写入源文件 1.3 配置成功 二、通过A…

中国的chatGpt-中国chatGPT软件

chatGPT中文免费版 您是否在寻找一款免费且实用的聊天软件来更好地与别人交流?那么,“chatGPT中文免费版”将是您的不二选择! 作为一款由 OpenAI 训练的大型语言模型,chatGPT 中文免费版可以让您轻松地与其他人进行交流&#xf…

主引导记录(MBR)、硬盘分区表(DPT)、扩展引导记录(EBR)

前言 最近在研究使用grub引导自制操作系统时,发现grub链式引导过程中向boot传递的硬盘分区表表项数据有疑问,特此记录下。 一、主引导记录(MBR) MBR是存储在计算机硬盘的第一个物理扇区的512字节的数据块,它包含了引…

【Linux】线程池|单例模式|STL、智能指针线程安全|读者写者问题

文章目录 线程池线程池代码线程池单例模式STL,智能指针和线程安全其他锁(了解)读者写者问题(了解) 线程池 我们去处理任务时,一个任务对应一个创建一个线程进行处理,效率是比较低的。我们可以预先创建一批线…

软件框架技术-实现在数据库中建立信息表,在id当中进行编写显示、查询、增加、修改、删除数据的代码,最后在localhost8080端口进行输出并显示在网页上

友情提示:本文代码较长,逻辑上较为复杂,若有需要建议详细阅读!!! 目录 前言 一、代码目录结构 二、数据库Student表的建立 三、idea代码配置 3.1 Student.java类(entity软件包中) 3.2 StudentDao接口类&#xff…

一图看懂 openai 模块:ChatGPT的API python库, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 openai 模块:ChatGPT的API python库, 资料整理笔记(大全) 摘要模块图类关系图结束 摘要 全文介绍系统内置 openai ——ChatGPT的API pyt…

300张现场照片,揭秘移动云大会!

今天,中国移动主办的移动云大会,在苏州金鸡湖国际会议中心正式开幕。 移动云这两年发展很猛,营收从2020年的110多亿,到2021年的240多亿,2022年更是飙到了500多亿,每年翻番。据说,未来三年&#…

《面试1v1》java多线程

我是 javapub,一名 Markdown 程序员从👨‍💻,八股文种子选手。 面试官: 说说你对多线程的理解? 候选人: 多线程就是同时运行多个线程,实现一件事的并行处理。比如开个程序,同时下载多个文件,同时处理多个…

linux-基础语法

本篇博客使用的是 Xshell 登录的云服务器。 Xshell 使用 Alt Enter 的快捷键就可以自动全屏和 取消全屏。 Linux 基础语法 空文件也是需要存储空间的,假设我们创建一个空的 txt 文本文档,虽然我们看着文件大小是 0kb 但是 文件当中时候文件属性的&…

智能AI文档管理新方式,手把手教你打造自己的文档聊天机器人

一个快速指南,为您构建一个聊天机器人网站,可以接受外部文档作为上下文。 随着每天涌现的信息和知识在我的屏幕上呈现,我们面临着人类阅读和记忆自然限制的挑战,这使得跟上信息更新变得越来越困难。现在,像ChatGPT和Ll…

游戏企业如何做用户行为序列分析?

用户行为序列是指固定时间内单个用户按照时间顺序依次触发的部分或全部事件。通过对用户行为序列进行分析,企业可以归纳出群体用户的行为特征,辅助产品运营和迭代。 通常,企业可以将用户行为序列分析应用于所有的分析场景。比如,当…

深入解析CFS任务的负载均衡(框架篇)

本文出现的内核代码来自Linux5.4.28,如果有兴趣,读者可以配合代码阅读本文。 一、什么是负载均衡 1、什么是CPU负载(load) CPU负载是一个很容易和CPU利用率(utility)混淆的概念。CPU利用率是CPU忙闲的比例…

全面学习Selenium和Python的Web自动化测试项目实战

目录 摘要: 1.安装依赖项 2.编写测试用例 3.执行测试用例 4.结论 摘要: 随着Web应用程序的不断发展和更新,保证其质量和稳定性变得越来越重要。为了实现这一目标,Web自动化测试已经成为了必不可少的一部分。本文将介绍一个基…