计算机网络 应用层
文章目录
- 应用层
- 域名系统 DNS
- 域名系统概述
- 互联网的域名结构
- 域名服务器
- 文件传送协议
- FTP 概述
- FTP 的基本工作原理
- 简单文件传送协议 TFTP
- 远程终端协议 TELNET
- 万维网 WWW
- 统一资源定位符 URL
- 超文本传送协议 HTTP
- 万维网的信息检索系统
- 电子邮件
- 电子邮件概述
- 简单邮件传送协议 SMTP
- 邮件读取协议 POP3和IMAP
- 基于万维网的电子邮件
- 通用互联网邮件扩充 MIME
- 动态主机配置协议 DHCP(Dynamic Host Configuration Prot ocol)
- 简单网络管理协议 SNMP
- 网络管理的基本概念
- 管理信息结构 SMI
- 管理信息库 MIB
- 应用进程跨越网络的通信
- 几种常用的系统调用
- P2P 应用
- 具有集中目录服务器的 P2P 工作方式
- 具有全分布式结构的 P2P 文件共享程
应用层
域名系统 DNS
域名系统概述
域名系统 DNS (Domain Name System) 是互联网使用的命名系统,用来把便于人们使用的机器名字转换为 IP 地扯
互联网的域名系统 DNS 被设计成为一个联机分布式数据库系统,并采用客户服务器方式。 DNS 使大多数名字都在本地进行解析(resolve).
互联网的域名结构
采用层次树管理
(1) 国家顶级域名nTLD:
(2) 通用顶级域名gTLD:
最先确定的通用顶级域名有7个,即:
com (公司企业), net(网络服务机构), org(非营利性组织),int(国际组织), edu(美国专用的教育机构),gov (美国的政府部门),mil表示(美国的军事部门)。
以后又陆续增加了 13 个迪用顶级域名:
aero (航空运输企业), asia(亚太地区),biz(公司和企业), cat(使用加泰隆人的语言和文化团体), coop(合作团体),info(各种情况),jobs (人力资源管理者), mobi(移动产品与服务的用户和提供者), museum (博物馆), name (个人),pro (有证书的专业人员),tel (Telnic 股份有限公司),travel (旅游业)。
(3) 基础结构域名(infrastructure domain): 这种顶级域名只有一个,即arpa, 用于反向域名解析,因此又称为反向域名。
域名服务器
分为以下四种不同的类型:
(I)根域名服务器(root name server): 根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。全世界的根域名服务器只使用 13 个不同 IP 地址的域名,虽然互联网的根域名服务器总共只有 13 个域名,但根域名服务器并非仅由 13机器所组成,在互联网中是由 13 套装置 构成这13 组根域名服务器的[W-ROOT] 。每一套装置在很多地点安装根域名服务器(也可称为镜像根服务器),但都使用同一个域名。
(2) 顶级域名服务器(即 TLD 服务器):这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到 DNS 杳询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。
(3) 权限域名服务器:当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
(4) 本地域名服务器(local name server): 当一台主机发出 DNS 查询诮求时,这个查询请求报文就发送给本地域名服务器。
第一,主机向本地域名服务器的查询一般都采用递归查询(recurs ve uery)。
第二,本地域名服务器向根域名服务器的查询常采用迭代查询。
在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最查询过的域名以及从何处获得域名映射信息的记录。
文件传送协议
FTP 概述
文件传送协议 FTP (File Transfer Protocol)
FTP 提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用 ASCII 码),允许文件具有存取权限。
文件共享协议中的另一大类是联机访问(online access) 。联机访问意味允许多个程序同时对一个文件进行存取。
FTP 的基本工作原理
经常遇到的问题是:
(I) 计算机存储数据的格式不同。
(2) 文件的目录结构和文件命名的规定不同。
(3) 对于相同的文件存取功能,橾作系统使用的命令不同。
(4) 访问控制方法不同。
FTP 使用客户服务器方式。 FTP 服务器进程可同时为多个客户进程提供服务。 FTP的服务器进程由两大部分组成: 主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个诸求。
主进程的工作步骤如下:
(I) 打开熟知端口(端口号为 21), 使客户进程能够连接上。
(2) 等待客户进程发出连接请求。
(3) 启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
(4) 回到等待状态,继续接受其他客户进程发来的诸求。主进程与从屈进程的处理是并发进行的。
NFS 允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。
简单文件传送协议 TFTP
TCP/IP 协议族中还有一个简单文件传送协议 TFTP (Trivial File Transfer Protocol), 它是一个很小且易于实现的文件传送协议虽然 TFTP 也使用客户服务器方式,但它使用 UDP 数据报,因此 TFTP 视频要有自己的差错改正措施。 TFTP 只支持文件传输而不支待交互。
TFTP 的主要优点有两个。第一, TFTP 可用于 UDP 环境。第二, TFTP 代码所占的内存较小。这对较小的计算机或某些特殊用途的设备是很重要的。
TFTP 的主要特点是:
(I)每次传送的数据报文中有 512 字节的数据,但最后一次可不足 512 字节
(2) 数据报文按序编号,从1开始。
(3) 支持 ASCII 码或二进制传送。
(4) 可对文件进行读或写。
(5) 使用很简单的首部。
远程终端协议 TELNET
TELNET 是一个简单的远程终端协议。用户用TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一台主机上(使用主机名或 IP 地址)。 TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上的。因此, TELNET 又称为终端仿真协议。
万维网 WWW
万维网 WWW (World Wide Web) 是一个大规模的、联机式的信息储藏所,英文简称为Web
万维网是一个分布式的超媒体(hypermedia) 系统.它是超文本(hyp rtext)系统的扩充。所谓超文本是指包含指向其他文档的链接的文本(text)。一个超文本由多个信息源链接成,而这些信息源可以分布在世界各地,并且数目也是不受限制的。利用一个链接可使用户找到远在异地的另一个文档,而这又可链接到其他的文档(依此类推)。这些文档可以位于世界上任何一个接在互联网上的超文本系统中。超文本是万绯网的基础。
统一资源定位符 URL
- URL 的格式
统一资源定位符 URL 是用来表示从互联网上得到的资源位置和访问这些资源的方法。
协议://主机名:端口/路径 - 使用 HTTP URL
超文本传送协议 HTTP
- HTTP 的操作过程
从层次的角度看, HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
协议 HTTP 是无状态的(stateless) 。也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同.
(1) HTTP/1.1 具有流水线的工作方式。这就是在 TCP 连接建立后客户可以连续向服务器发出许多个请求,而不必等到收到一个响应后再发送下一个请求。但服务器发回响应时必须按先后顺序排队,逐个地发送给客户。有时遇到某个响应迟迟不能发回,那么排在后面的一些响应就必须等待很长的时间。 HTTP/2 把服务器发回的响应变成可以并行地发回(使用同一个 TCP 连接),这就大大缩短了服务器的响应时间。
(2) 使用 HTTP/ 1.1 时,当客户收到服务器发回的响应后,原来建立的 TCP 连接就释放了。如果客户还要继续向该服务器发送新的诸求,就必须重新建立 TCP 连接。 HTTP/2 允许客户复用 TCP 连接进行多个请求,这样就节省了 TCP 连续多次建立和释放连接所花费的时间。
(3) HTTP/ 1.1的请求和响应报文是面向文本的(tex -or en ed) 。当客户连续发送请求并受到响应时,在 TCP 连接上传送的 HTTP 报文首部成为不小的开销。在这些首部中有很多字段是重复的。为此, HTTP/2 把所有的报文都划分为许多较小的二进制编码的帧,并采用了新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率。
- 代理服务器
代理服务器(prox server) 是一种网络实体,它又称为万维网高速缓存(Web cache) 。代理服务器把砐近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,
万维网的信息检索系统
在万维网中用来进行搜索的工具叫作搜索引擎(search engine) 。搜索引擎的种类很多,但大体上可划分为两大类,即全文检索搜索引擎和分类目录搜索引擎。
全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件(例如一种叫作“蜘蛛”或“网络机器人”的 pider 程序)到互联网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站,像蜘蛛爬行一样。然后按照一定的规则建立一个很大的在线索引数据库供用户查询。用户在查询时只要输入关键词,就从已经建立的索引数据库里进行查询(并不是实时地在互联网上检索到的信息)
分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。因此,分类目录搜索也叫作分类网站搜索。
值得注意的是,目前出现了垂直搜索引擎(vertical search engine), 它针对某一特定领域、特定人群或某一特定需求提供搜索服务。垂直搜索也是提供关键字来进行搜索的.
元搜索引擎(meta search engine), 它把用户提交的检索请求发送到多个独立的搜索引擎上去搜索,并把检索结果渠中统一·处理,以统一的格式提供给用户,因此是搜索引擎之上的搜索引擎。
2. Google 搜索技术的特点
它的核心技术就是 PageRank™, 译为网页排名。
电子邮件
电子邮件概述
简单邮件传送协议 SMTP (Simple Mail Transfer Protocol)
用互联网邮件扩充 MIME (Multipurpose Internet Mail Extensions)
一个电子邮件系统应具有三个主要组成构件,这就是用户代理、邮件服
务器,以及邮件发送协议(如 SMTP) 和邮件读取协议(如 POP3) POP3 是邮局协议(PosOffice Protocol)
用户代理 UA (User Agent)就是用户与电子邮件系统的接口,在大多数情况下它就是运行在用户计算机中的一个程序。用户代理向用户提供一个很友好的接口(目前主要是窗口界面)来发送和接收邮件。
用户代理至少应当具有以下4个功能。
(1) 撰写。给用户提供编辑信件的环境。例如,应让用户能创建便于使用的通信录。回信时不仅能很方便地从来信中提取出对方地址,并自动地将此地址写入到邮件中合适的位置,而且还能方便地对来信提出的问题进行答复
(2) 显示。能方便地在计算机屏器上显示出来信(包括来信附上的声音和图像)。
(3) 处理。处理包括发送邮件和接收邮件。例如,阅读后删除、存盘、打印、转发等,以及自建目录对来信进行分类保存。
(4) 通信。发信人在撰写完邮件后,要利用邮件发送协议将邮件发送到用户所使用的邮件服务器。
邮件服务器需要使用两种不同的协议。一种协议用于用户代理向
邮件服务器发送邮件或在邮件服务器之间发送邮件,如 SMTP 协议,而另一种协议用于用户代理从邮件服务器读取邮件,如邮局协议 POP3。
简单邮件传送协议 SMTP
-
连接建立
发件人的邮件送到发送方邮件服务器的邮件缓存后, SMTP 客户就每隔一定时间对邮件缓存扫描一次。如发现有邮件,就使用 SMTP 的熟知端口号码 25 与接收方邮件服务器的 SMTP 服务器建立 TCP 连接。在连接建立后,接收方 SMTP 服务器要发出"220 Service ready"(服务就绪)。然后 SMTP 客户向 SMTP 服务器发送 HELO 命令,附上发送方的主机名。 SMTP 服务器若有能力接收邮件,则回答: “250 OK", 表示已准备好接收。若 SMTP 服务器不可用,则回答 “421 Service not ava lable" (服务不可用)。
如在一定时间内(例如三天)发送不了邮件,邮件服务器会把这个情况通知发件人。 -
邮件传送
邮件的传送从 MAIL 命令开始。 MAIL 命令后面有发件人的地址。如:<x ex en@ hua.or .cn> 。若 SMTP 服务器已准备好接收邮件,则回答 “250 OK”。否则,返回一个代码,指出原因。如: 451 (处理时出错)、 452 (存储空间不够)、 500 (命令无法识别)等。 -
连接释放
邮件发送完毕后, SMTP 客户应发送QUIT 命令。 SMTP 服务器返回的信息是 “221(服务关闭)“,表示 SMTP 同意释放 TCP 连接。邮件传送的全部过程即结束。
邮件读取协议 POP3和IMAP
POP3 和网际报文存取协议IMAP (Internet Message Aecess Protocoll) 。
邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议。
POP3 也使用客户服务器的工作力式。在接收邮件的用户计算机中的用户代理必须运行POP3 客户程序,
IMAP POP3 的主要功能比较
操作位置 | 操作内容 | IMAP | POP3 |
---|---|---|---|
收件箱 | 阅读、标记、移动、删除邮件等 | 客户端与邮箱更新同步 | 仅在客户端内 |
发件箱 | 保存到已发送 | 存户端与邮箱更新同步 | 仅在客户端内 |
创建文件夹 | 新让自定义的文件夹 | 客户端与邮箱更新同步 | 仅在客户端内 |
草稿 | 保存草稿 | 客户端与邮箱更新同步 | 仅在客户墙内 |
垃圾文件夹 | 接收并移入垃圾文件夹的邮件 | 支持 | 不支什 |
广告邮件 | 接受并移入广告邮件夹的邮件 | 支持 | 不支待 |
基于万维网的电子邮件
通用互联网邮件扩充 MIME
- MIME 概述
前面所述的电子邮件协议 SMTP 有以下缺点:
(I) SMTP 不能传送可执行文件或其他的二进制对象。
(2) SMTP 限于传送 位的 ASCII 码。
(3) SMTP 服务器会拒绝超过一定长度的邮件。
(4) 某些 SMTP 的实现并没有完全按照 SMTP 的互联网标准。常见的问题如下:
• 回车、换行的删除和增加;
• 超过 76 个字符时的处理;截断或自动换行;
• 后面多余空格的删除;
• 300 •
• 将制表符tab 转换为若干个空格。
通用互联网邮件扩充 MIME
MIME 主要包括以下三部分内容:
(I) 5个新的邮件首部字段,它们可包含在原来的邮件首部中。这些字段提供了有关邮件主体的信息。
(2) 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
(3) 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。
下面是 MIME 增加的 个新的邮件首部的名称及其意义(有的可以是选项)。
(I) MIME-Version: 标志 MIME 的版本。现在的版本号是1.
(2) Content-Description: 这是可读字符串,说明此邮件主体是否是图像、音频或视频。
(3) Content-Id: 邮件的唯一标识符。
(4) Conntent -Transfer-Encoding:在传送时邮件的主体是如何编码的。
(5) Content-Type: 说明邮件主体的数据类型和子类型
动态主机配置协议 DHCP(Dynamic Host Configuration Prot ocol)
是动态主机配置协议 , 它提供了一种机制,称为即插即用连网(plug -and-play networking)。这种机制允许一台计算机加入新的网络和获取 IP 地址而不用手工参与。
DHCP 使用客户服务器方式。需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文(DHCPDISCOVER) (将目的 IP 地址置为全1 ,即 255.255.255.255), 这时该主机就成为 DHCP 客户。发送广播报文是因为现在还不知道 DHCP 服务器在什么地方,因此要(DISCOVER)DHCP 服务器的 IP 地址。这台主机目前还没有自己的 IP 地址,因此它将 IP数据报的源 IP 地址设为全0。这样,在本地网络上的所有主机都能够收到这个广插报文,但只有 DHCP 服务器才对此广播报文进行回答。 DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池(address pool) 中取一个地址分配给该计算机。 DHCP 服务器的回答报文叫作提供报文(DHCPOFFER),表示“提供”了 IP 地址等配置信息。
但是我们并不愿意在每一个网络上都设置一个 DHCP 服务器,因为这样会使 DHCP务器的数量太多。因此现在是使每一个网络至少有一个 DHCP 中继代理(relay agent),它配置了 DHCP 服务器的 IP 地址信息。当 DHCP 中继代理收到主机以广播形式发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。收到 DHCP 服务器回答的提供报文后, DHCP 中继代理再把此提供报文发回给主机 。
简单网络管理协议 SNMP
网络管理的基本概念
虽然网络管理还没有精确定义,但它的内容可归纳为:
网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等。网络管理常简称为网管。
管理站又称为管理器,是整个网络管理系统的核心。所有向被管设备发送的命令都是从管理站发出的。管理站的所在部门也常称为网络运行中心 NOC (Network Operations Center) 。
在被管网络中有很多的被管设备(包括设备中的软件)。被管设备可以是主机、路由器、打印机、媒线器、网桥或调制解调器等。在每一个被管设备中可能有许多被管对象(Managed Object)。
在每一个被管设备中都要运行一个程序以便和管理站中的管理程序进行通信。这些运行着的程序叫作网络管理代理程序。
简单网络管理协议 SNMP (Simple Network Management Protocol) 中的管理程序和代理程序按客户服务器方式工作。管理程序运行 SNMP 客户程序,而代理程序运行 SNMP 服务器程序。在被管对象上运行的 SNMP 服务器程序不停地监听来自管理站的 SNMP 客户程序的请求(或命令)。一旦发现了,就立即返回管理站所需的信息,或执行某个动作。在网络系统中往往是一个(或少数几个)客户程片与很多的服务器程序进行交互。
若网络元素使用的不是 SNMP 协议而是另一种网络管理协议,那么 SNMP 协议就无法控制该网络元素。这时可使用委托代理(proxy agent)。委托代理能提供如协议转换和过滤操作等功能对被管对象进行管理。
SNMP 的网络管理巾三个部分组成,即 SNMP 本身、管理信息结构 SMI (Structure of Management Information)和管理信息库 MIB (Management Information Base) 。
SNMP 定义了管理站和代理之间所交换的分组格式。所交换的分组包含各代理中的对象名及其状态。 SNMP 负责读取和改变这些数值。
SMI 定义了命名对象和定义对象类型(包括范围和长度)的通用规则,以及把对象和对象的值进行编码的规则。
MIB 在被管理的实体中创建了命名对象,并规定了其类型。
管理信息结构 SMI
-
被管对象的命名
SMI 规定,所有的被管对象都必须处在对象命名树(object naming tree)上
-
被管对象的数据类型
分为简单类型和结构化类型
几种简单类型
数据类型 sequence 类似于 语言中的 sruct或 record, 它是一些简单数据类型的组合(不一定要相同的类型)。而数据类型 sequence of类似于 语言中的 array,它是同样类型的简单数据类型的组合,或同样类型的 sequence 数据类型的组合。
3. 编码方法
SMI 使用 ASN.I 制定的基本编码规则 BER (Basic Encoding Rule)进行数据的编码。
(1)*T(tag)*字段又叫作标记字段,占1字节。 字段比较复杂,因为它要定义的数据类型较多。 字段又再分为以下三个子字段:
• 类别(2 位)共四种:通用类(00), ASN.I 定义的类型;应用类(01), SMI义的类型;上下文类(10), 即上下文所定义的类型;专用类(11), 保留为特定厂商定义的类型。
• 格式 (1 位)共两种,指出数据类型的种类:简单数据类型(0), 结构化数据类型
• 编号 (5 位)用米标志不同的数据类型。编号的范围一般为 0~30。当编号大于 30时, 字段就要扩展为多个字节。
(2) L(length)字段又叫作长度字段(单乍节或多字节)。
(3) V(value)字段又叫作值字段,用于定义数据元素的值。
管理信息库 MIB
所谓“管理信息”就是指在互联网的网管框架中被管对象的集合。被管对象必须维持可供管理程序读写的若干控制和状态信息。这些被管对象构成了一个虚拟的信息存储器,所以才称为管理信息库 MIB。
应用进程跨越网络的通信
应用编程接口 API(Application Programming Interface) API 从程序设计的角度定义了许多标准的系统调用函数。应用进程只要使用标准的系统调用函数就可得到操作系统的服务。因此从程序设计的角度看,也可以把 API 看成是应用程序和操作系统之间的接口。
现在 TCP/IP 协议软件已驻留在操作系统中。
UNIX 橾作系统定义的一种 APl ,它又称为套接字接口 (socket interface) 。
微软公司在其操作系统中采用了套接字接口 API ,形成了一个稍有不同的 API ,并称之为 Windows Socket.
从另一种角度看,计算机之间的通信就是本计算机要读取另一个地点的计算机中的数据,或者要把数据从本计算机写入到另一个地点的计算机中
当应用进程(客户或服务器)需要使用网络进行通信时,必须首先发出 socket系统调用,请求操作系统为其创建一个“套接字“。这个调用的实际效果是诸求操作系统把网络通信所需要的一些系统资源(存储器间、 CPU 时间、网络带宽等)分配给该应用进程。操作系统为这些资源的总和用一个叫作套接字描述符(socket descriptor) 的号码来表示,然后把这个套接字描述符返回给应用进程。此后,应用进程所进行的网络操作(建立连接、收发数据、调整网络通信参数等)都必须使用这个套接字描述符。所以,几乎所有的网络系统调用都把这个套接字描述符作为套接字的许多参数中的第一个参数。在处理系统调用的时候,通过套接字描述符,操作系统就可以识别出应该使用哪些资源来完成应用进程所请求的服务。通信完毕后,应用进程通过一个关闭套接字的 close 系统调用通知操作系统回收与该套接字描述符相关的所有资源。
几种常用的系统调用
- 连接建立阶段
套接字被创建后,它的端口号和 IP 地址都是空的,因此应用进程要调用 bind(绑定)米指明套接字的本地地址。
服务器在调用bind 后,还必须调用 listen(收听)把在接字设置为被动方式,以便随时接受客户的服务请求。
服务器紧接着就调用 accept(接受),以便把远地客户进程发来的连接请求提取出来。系统调用 accept的一个变量就是要指明足从哪一个套接字发起的连接。
- 数据传送阶段
客户和服务器都在 TCP 连接上使用 send 系统调用传送数据,使用 recv 系统调用接收数据。
调用 send 需要三个变量:数据要发往的套接字的描述符、要发送的数据的地址以及数据的长度。通常 send 调用把数据复制到操作系统内核的缓存中。若系统的缓存已满, send就暂时阻塞,直到缓存有空间存放新的数据。
调用 recv 也需要三个变昼:要使用的套接字的描述符、缓存的地址以及缓存空间的长度。 - 连接释放阶段
一旦客户或服务器结束使用套接字,就把套接字撤销。这时就调用close 释放连接和撤销套接字
UDP 服务器由于只提供无连接服务,因此不使用 listen 和accept系统调用。
P2P 应用
P2P 应用的范围很广,例如,文件分发、实时音频或视频会议、数据库系统、网络服务持(如 P2P 打车软件、 P2P 理财等)
具有集中目录服务器的 P2P 工作方式
一个数据库管理资源和IP的映射,想要获取资源需要去数据库查ip和资源的映射,选择合适的ip下载。
具有全分布式结构的 P2P 文件共享程
了一种有限范围的洪泛查询。
用分散定位和分散传输技术
相关文章:

计算机网络 应用层
文章目录 应用层域名系统 DNS域名系统概述互联网的域名结构域名服务器 文件传送协议FTP 概述FTP 的基本工作原理简单文件传送协议 TFTP 远程终端协议 TELNET万维网 WWW统一资源定位符 URL超文本传送协议 HTTP万维网的信息检索系统 电子邮件电子邮件概述简单邮件传送协议 SMTP邮…...

拥有你的微调大模型,零代码定制+算力免费送
2023年,ChatGPT的横空出世掀起了人工智能领域的新一轮革命。 很快大模型的潮水就越过广袤的太平洋,席卷国内科技圈和投资圈,几乎所有科技公司都在押注大模型。根据工信部赛迪研究院数据,预计2023年我国语言大模型市场规模将达到1…...

《Docker技术革命:从虚拟机到容器化,全面解析Docker的原理与应用-上篇》
文章目录 Docker为什么会出现总结 Docker的思想Docker历史总结 Docker能干嘛虚拟机技术虚拟机技术的缺点 容器化技术Docker和虚拟机技术的区别 Docker概念Docker的基本组成镜像(image)容器(container)仓科(repository)…...
C,C++,C# 的区别
C,C,C# 是三种不同的编程语言。它们有一些共同点,但也有很多区别。 C是一种过程式编程语言,被广泛用于系统级编程和嵌入式开发。它具有简单的语法和较小的标准库,适合于高效的低级编程和处理底层细节。 C是一种面向对…...

操作筛选器的 1 个应用实例:自动启用事务
前言 在数据库操作过程中,有一个概念是绕不开的,那就是事务。 事务能够确保一系列数据库操作要么全部成功提交,要么全部失败回滚,保证数据的一致性和完整性。 在 Asp.Net Core Web API 中,我们可以使用操作筛选器给…...

搭建基于Java的分布式爬虫系统
目录 前言 一、分布式爬虫系统的架构设计 二、系统搭建步骤 1. 创建爬虫项目 2. 导入相关依赖 3. 编写分布式爬虫系统的核心代码 3.1 节点管理器(Node Manager) 3.2 调度器(Scheduler) 3.3 下载器(Downloader…...

rancher证书过期问题处理
问题 起初,打开rancher ui页面打不开,telnet rancher的服务端口也不通。查看rancher 控制节点,日志显示,X509:certificate has expired or is not ye valid。证书已过期 解决 现在网上大部分的解决方案都是针对的2…...

Spring Boot 中文件上传
Spring Boot 中文件上传 一、MultipartFile二、单文件上传案例三、多文件上传案例四、Servlet 规范五、Servlet 规范实现文件上传 上传文件大家用的最多的就是 Apache Commons FileUpload,这个库使用非常广泛。Spring Boot3 版本中已经不能使用了。代替它的是 Sprin…...
2023年06月CCF-GESP编程能力等级认证Python编程一级真题解析
一、单选题(共15题,共30分) 第1题 以下不属于计算机输出设备的有()。 A:麦克风 B:音箱 C:打印机 D:显示器 答案:A 第2题 ChatGPT 是 OpenAI 研发的聊天机器人程序,它能通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,完成很多工作。请你…...
unity 使用数字图片来代替数字0到9显示
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Trackracecomplete : MonoBehaviour { /// /// 数字图片 /// [SerializeField] private Sprite[] sprites; private string _Time “23:57:49”; [Ser…...
单片机如何实现延时1ms或者1us
1us //适配主频为120MHz的单片机 void Delay_us(int16_t nus) {int32_t temp; SysTick->LOAD nus*15; //120MHzSysTick->VAL0X00;SysTick->CTRL0X01;do { tempSysTick->CTRL;}while((temp&0x01)&&(!(temp&(1<<16))));SysTick->CTRL0x0…...

全国网络安全行业职业技能大赛WP
word_sercet 文档被加密 查看图片的属性 在备注可以看到解压密码 解密成功 在选项里面把隐藏的文本显示出来 可以看到ffag easy_encode 得到一个bmp二维码 使用qr research 得到的密文直接放瑞士军刀 base32解码base64解码hex解码 dir_pcap 直接搜索flag 发现flag…...
【Python函数与模块】(7)模块的分类与好处
文章目录 一、模块分类二、模块的好处 一、模块分类 Python标准模块(内置模块,标准库) 第三方模块/库(pypi.org) 自定义模块 二、模块的好处 可维护性更强 方便代码重用...
如何安全地多开Facebook/Twitter/TK/Ins等账号?
随着社交媒体的普及,人们需要在不同平台上管理多个账号。然而,如何安全地多开这些账号却是一个需要关注的问题。本文将介绍如何安全地多开Facebook、twitter、YouTube、TikTok等平台账号的方法。 重要关联因素: 1. 隐私和安全:保…...

ChatGPT学python: 用json文件传参
目录 json语法最简陋版python解析语法小结 json语法最简陋版 param.json [{"Table_name": "table1","Event_name_colum": 4,"update_colum": 9},{"Table_name": "table2","Event_name_colum": 3,&quo…...

【C++航海王:追寻罗杰的编程之路】引用、内联、auto关键字、基于范围的for、指针空值nullptr
目录 1 -> 引用 1.1 -> 引用概念 1.2 -> 引用特性 1.3 -> 常引用 1.4 -> 使用场景 1.5 -> 传值、传引用效率比较 1.6 -> 值和引用作为返回值类型的性能比较 1.7 -> 引用和指针的区别 2 -> 内联函数 2.1 -> 概念 2.2 -> 特性 3 -…...

已实现:vue、h5项目如何使用echarts实现雷达图、六边形图表
说实话,要说图表里,最强的应该属于echarts了,不管是接入难度上,还是样式多样性上,还有社区庞大程度上,都是首屈一指的,反观有的人习惯用chart.js了,这个无可厚非,但是如果…...

JUC并发编程-四大函数式接口、Stream 流式计算、ForkJoin并行执行任务
12. 四大函数式接口 新时代的程序员:lambda表达式、链式编程、函数式接口、Stream流式计算 函数式接口:只有一个方法的接口,可以有一些默认的方法 如:Runnable接口函数 1)Function 函数型接口 public class Functio…...

【Tomcat与网络4】Tomcat的连接器设计
目录 1 如何设计一个灵活可靠的连接器 2 主要组件介绍 在上一篇,我们介绍了Tomcat提供服务的整体结构,本文我们一起来看一下Tomcat的连接器的设计。 在前面我们提到Tomcat主要完成两个功能: 处理 Socket 连接,负责网络字节流与…...

k8s中调整Pod数量限制的方法
一、介绍 Kubernetes节点每个默认允许最多创建110个pod,有时可能由于主机配置扩容的问题,从而需要修改节点pod运行数量的限制。 即:需要调整Node节点的最大可运行Pod数量。 一般来说,只需要在kubelet启动命令中增加–max-pods参数…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...