计算机网络 应用层

文章目录

  • 应用层
    • 域名系统 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

  1. URL 的格式
    统一资源定位符 URL 是用来表示从互联网上得到的资源位置和访问这些资源的方法。
    协议://主机名:端口/路径
  2. 使用 HTTP URL

超文本传送协议 HTTP

  1. 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 把所有的报文都划分为许多较小的二进制编码的帧,并采用了新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率。

  1. 代理服务器
    代理服务器(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

  1. 连接建立
    发件人的邮件送到发送方邮件服务器的邮件缓存后, SMTP 客户就每隔一定时间对邮件缓存扫描一次。如发现有邮件,就使用 SMTP 的熟知端口号码 25 与接收方邮件服务器的 SMTP 服务器建立 TCP 连接。在连接建立后,接收方 SMTP 服务器要发出"220 Service ready"(服务就绪)。然后 SMTP 客户向 SMTP 服务器发送 HELO 命令,附上发送方的主机名。 SMTP 服务器若有能力接收邮件,则回答: “250 OK", 表示已准备好接收。若 SMTP 服务器不可用,则回答 “421 Service not ava lable" (服务不可用)。
    如在一定时间内(例如三天)发送不了邮件,邮件服务器会把这个情况通知发件人。

  2. 邮件传送
    邮件的传送从 MAIL 命令开始。 MAIL 命令后面有发件人的地址。如:<x ex en@ hua.or .cn> 。若 SMTP 服务器已准备好接收邮件,则回答 “250 OK”。否则,返回一个代码,指出原因。如: 451 (处理时出错)、 452 (存储空间不够)、 500 (命令无法识别)等。

  3. 连接释放
    邮件发送完毕后, SMTP 客户应发送QUIT 命令。 SMTP 服务器返回的信息是 “221(服务关闭)“,表示 SMTP 同意释放 TCP 连接。邮件传送的全部过程即结束。

邮件读取协议 POP3和IMAP

POP3 和网际报文存取协议IMAP (Internet Message Aecess Protocoll) 。
邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议。
POP3 也使用客户服务器的工作力式。在接收邮件的用户计算机中的用户代理必须运行POP3 客户程序,
IMAP POP3 的主要功能比较

操作位置操作内容IMAPPOP3
收件箱阅读、标记、移动、删除邮件等客户端与邮箱更新同步仅在客户端内
发件箱保存到已发送存户端与邮箱更新同步仅在客户端内
创建文件夹新让自定义的文件夹客户端与邮箱更新同步仅在客户端内
草稿保存草稿客户端与邮箱更新同步仅在客户墙内
垃圾文件夹接收并移入垃圾文件夹的邮件支持不支什
广告邮件接受并移入广告邮件夹的邮件支持不支待

基于万维网的电子邮件

通用互联网邮件扩充 MIME

  1. 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

  1. 被管对象的命名
    SMI 规定,所有的被管对象都必须处在对象命名树(object naming tree)上
    在这里插入图片描述

  2. 被管对象的数据类型
    分为简单类型和结构化类型
    几种简单类型
    在这里插入图片描述

数据类型 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 系统调用通知操作系统回收与该套接字描述符相关的所有资源。

在这里插入图片描述

几种常用的系统调用

  1. 连接建立阶段
    套接字被创建后,它的端口号和 IP 地址都是空的,因此应用进程要调用 bind(绑定)米指明套接字的本地地址。

服务器在调用bind 后,还必须调用 listen(收听)把在接字设置为被动方式,以便随时接受客户的服务请求。

服务器紧接着就调用 accept(接受),以便把远地客户进程发来的连接请求提取出来。系统调用 accept的一个变量就是要指明足从哪一个套接字发起的连接。
在这里插入图片描述

  1. 数据传送阶段
    客户和服务器都在 TCP 连接上使用 send 系统调用传送数据,使用 recv 系统调用接收数据。
    调用 send 需要三个变量:数据要发往的套接字的描述符、要发送的数据的地址以及数据的长度。通常 send 调用把数据复制到操作系统内核的缓存中。若系统的缓存已满, send就暂时阻塞,直到缓存有空间存放新的数据。
    调用 recv 也需要三个变昼:要使用的套接字的描述符、缓存的地址以及缓存空间的长度。
  2. 连接释放阶段
    一旦客户或服务器结束使用套接字,就把套接字撤销。这时就调用close 释放连接和撤销套接字
    在这里插入图片描述

UDP 服务器由于只提供无连接服务,因此不使用 listen 和accept系统调用。

P2P 应用

P2P 应用的范围很广,例如,文件分发、实时音频或视频会议、数据库系统、网络服务持(如 P2P 打车软件、 P2P 理财等)

具有集中目录服务器的 P2P 工作方式

一个数据库管理资源和IP的映射,想要获取资源需要去数据库查ip和资源的映射,选择合适的ip下载。

具有全分布式结构的 P2P 文件共享程

了一种有限范围的洪泛查询。

用分散定位和分散传输技术

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微服务基础设施怎么建设,如何选择微服务框架

微服务基础设施架构全貌 微服务 vs SOA 微服务基础设施优先级 微服务框架核心 模式1-嵌入式SDK式 【优点】 1. 架构简单&#xff0c;天然支持高性能、高可用&#xff1b; 2. 维护简单&#xff0c;无需维护独立的 Proxy 节点。 【缺点】 1. 应用侵入&#xff0c;需要集成 SD…

Leetcode2645. 构造有效字符串的最少插入数

Every day a Leetcode 题目来源&#xff1a;2645. 构造有效字符串的最少插入数 解法1&#xff1a;枚举 数学 word 仅由字母 “a”、“b” 和 “c” 组成。 因此我们只需要每次统计相邻字符之间的编号差再减去 1&#xff08;并进行一定修正&#xff09;&#xff0c;就可以得…

CAN 节点状态转换

CAN节点 按照错误严重程度可分为三种不同的状态 主动错误状态&#xff08;Error Active&#xff09; 被动错误状态&#xff08;Error Passive&#xff09; 总线关闭状态&#xff08;Bus Off&#xff09; 存在两种错误计数器 发送错误计数值 TEC : Transmit Error Counter …

Js-web APIs(一)

目录 Web API 基本认知 • 作用和分类 • 什么是DOM • DOM树 • DOM对象(重要) 获取DOM对象 • 根据CSS选择器来获取DOM元素 (重点) 1.选择匹配的第一个元素 2.选择匹配的多个元素 • 其他获取DOM元素方法&#xff08;了解&#xff09; 操作元素内容 • 对象.innerT…

WPF应用程序生存期以及相关事件

WPF 应用程序的生存期会通过 Application 引发的几个事件来加以标记&#xff0c;相关事件对应着应用程序何时启动、激活、停用和关闭。 应用程序生存期事件 • 独立应用程序(传统风格的 Windows 应用程序&#xff0c;这些应用程序作为要安装到客户端计算机并从客户端计算机运…

数据结构与算法教程,数据结构C语言版教程!(第四部分、字符串,数据结构中的串存储结构)三

第四部分、字符串&#xff0c;数据结构中的串存储结构 串存储结构&#xff0c;也就是存储字符串的数据结构。 很明显&#xff0c;字符串之间的逻辑关系也是“一对一”&#xff0c;用线性表的思维不难想出&#xff0c;串存储结构也有顺序存储和链式存储。 提到字符串&#xff…

力扣刷MySQL-第二弹(详细解析)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;力扣刷题讲解-MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出…

IP定位技术在网络安全行业的探索

随着互联网的普及和深入生活&#xff0c;网络安全问题日益受到人们的关注。作为网络安全领域的重要技术&#xff0c;IP定位技术正逐渐成为行业研究的热点。本文将深入探讨IP定位技术在网络安全行业的应用和探索。 一、IP定位技术的概述 IP定位技术是通过IP地址来确定设备地理位…

FRE123|开源! 普通人如何快速免费搭建个性化导航网站

FRE123 - Free Resource for Everyone&#xff1a;老胡信息周刊的衍生项目&#xff0c;核心目的是用技术打破信息差&#xff0c;为每个人提供免费优质资源。 老胡的信息周刊在第三个年头&#xff0c;希望这个系列也能持续更新下去&#xff1a; 01.FRE123|老胡周刊免费资源之启动…

什么是防火墙?

目录 什么是防火墙&#xff0c;为什么需要防火墙&#xff1f;防火墙与交换机、路由器对比防火墙和路由器实现安全控制的区别防火墙的发展史1989年至1994年1995年至2004年2005年至今 什么是防火墙&#xff0c;为什么需要防火墙&#xff1f; “防火墙”一词起源于建筑领域&#x…

backtrader策略库:强化学习一: 梯度提升( Gradient Ascent)

本文来自博客文章&#xff0c;文末含源码链接。 In the next few posts, I will be going over a strategy that uses Machine Learning to determine what trades to execute. Before we start going over the strategy, we will go over one of the algorithms it uses: Gra…

软件研发过程中,项目管理工具应该如何选择?

本文作者&#xff1a;极狐GitLab 资深解决方案架构师 尹学峰 许多企业依旧在用老旧的方式&#xff0c;如Excel离线表格进行项目管理。表格无法简介的呈现出项目的任务分解、完成进度、任务类别等多种项目管理过程中必备的要求&#xff0c;更无法实现与企业员工的日常即时通信系…

一、ArcGIS Pro SDK for Microsoft .NET 开发环境配置

ArcGIS Pro二次开发需要的工具&#xff1a; 1.Visual Studio 2.ArcGIS Pro SDK 一、Visual Studio安装 经过查阅资料&#xff0c;ArcGIS Pro3.0版本需要安装Visual Studio2022版&#xff0c;因为只有22版的才会有有ArcGIS Pro3.0以上版对应ArcGIS Pro SDK&#xff0c;因此&…

多测师肖sir___ui自动化测试po框架(升级)

ui自动化测试po框架&#xff08;升级&#xff09; po框架 一、ui自动化po框架介绍 &#xff08;1&#xff09;PO是Page Object的缩写&#xff08;pom模型&#xff09; &#xff08;2&#xff09;业务流程与页面元素操作分离的模式&#xff0c;可以简单理解为每个页面下面都有一…

RK3399平台入门到精通系列讲解(硬件篇)常用的硬件工具介绍

🚀返回总目录 文章目录 一、万⽤表1.1、测量交流和直流电压1.2、测量交流和直流电流二、逻辑分析仪三、示波器作为⼀名嵌⼊式开发⼯程师,是有必要对各类常⽤的硬件⼯具有⼀定了解的,你可以不懂怎么使⽤它,但你必须知道它是什么,有什么⽤,在什么时候可以⽤得上。 一、万…

Nvidia-docker的基础使用方法

安装&#xff1a; 安装nvidia-docker&#xff1a; distribution$(. /etc/os-release;echo $ID$VERSION_ID)curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.l…

如何手写一个RPC?

在学习 RPC 框架之前&#xff0c;我们先来手写一个RPC。 我们在学习的过程中&#xff0c;一定要做到知其然&#xff0c;还要知其所以然。 架构演进 单体架构 要知道&#xff0c;在以前单体架构的时候&#xff0c;会将所有的应用功能都集中在一个服务当中。 单体架构初始开发…

LeetCode、2336. 无限集中的最小数字(中等,小顶堆)

文章目录 前言LeetCode、2336. 无限集中的最小数字题目链接及类型思路代码题解 前言 博主所有博客文件目录索引&#xff1a;博客目录索引(持续更新) LeetCode、2336. 无限集中的最小数字 题目链接及类型 题目链接&#xff1a;2336. 无限集中的最小数字 类型&#xff1a;数据…

推挽输出、开漏输出、上拉输入、下拉输入、浮空输入。

一、推挽输出 推挽输出的内部电路大概如上图中黄色部分&#xff0c;输出控制内有反相器&#xff0c;由一个P-MOS和一个N-MOS组合而成&#xff0c;同一时间只有一个管子能够进行导通。 当写入1时&#xff0c;经过反向器后为0&#xff0c;P-MOS导通&#xff0c;N-MOS截至&#xf…

软件需求规格说明书

软件需求规格说明书编写规范编写规范 1.项目背景 2.项目目标 3.系统架构 4.总体流程 5.名称解释 6.功能模块
最新文章