您现在的位置是:首页 > 正文

[计算机网络]应用层协议,HTTP,SMTP,DNS

2024-04-01 04:42:47阅读 5

应用层

应用层协议原理

网络应用程序体系结构

规定如何在各种端系统上组织应用程序,由研发者设计

客户机/服务器

服务器:对外提供服务的一系列硬件和软件

客户机:使用服务器提供的服务

服务器

  • 7*24小时提供服务
  • 永久性访问地址/域名
  • 利用大量服务器实现可扩展性

客户机

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

P2P

常见:文件分发,因特网电话

  • 无或最少打开的服务器
  • 任意端系统/节点之间可以直接通讯
  • 节点间歇性接入网络
  • 节点可能改变IP地址

  • 优点:高度可伸缩

  • 缺点:难于管理

混合结构

Napster

  • 文件传输使用P2P结构

  • 文件的搜索采用C/S结构——集中式

  • 每个节点向中央服务器登记自己的内容

  • 每个节点向中央服务器提交查询请求,

    查找感兴趣的内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4LJhs3tP-1609813680455)(C:\Users\Fire\AppData\Roaming\Typora\typora-user-images\image-20210103184320432.png)]

网络进程通信

*进程(process):*主机上运行的程序

同一个主机上运行的进程通信方式:

  • 进程间的通信机制
  • 操作系统提供

不同主机上运行的进程间通信方式:

  • 消息交换

客户机进程:发起通信的进程

服务器进程:等待通信请求的进程

Socket(套接字)

Socket=(IP地址:端口号)

同一台主机内应用层与运输层之间的接口。

也叫应用程序和网络之间的应用程序接口API ,是在网络上建立网络应用程序的可编程接口。

类似于寄信

  • 发送方将消息送到门外邮箱
  • 发送方依赖(门外的)传输基础设施将消息传到接收方所在主机,并送到接收方的门外
  • 接收方从门外获取消息

传输基础设施向进程提供API

  • 传输协议的选择
  • 参数的设置
进程寻址

根据进程识别信息找到对应进程

不同主机上的进程间通信,每个进程必须拥有标识符

  • 使用IP地址寻址主机

  • 使用端口号Port

    为每个主机上需要通信的进程分配一个端口号

    HTTP Server:80

    Mail Server:25

  • 进程的标识符

    IP地址+端口号 用于唯一标识一个网络上的进程

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dIZJhrDn-1609813680457)(D:\StudyData\Notes[其他]计算机通用知识\CNpics\image-20210103205455328.png)]

用户代理(user agent)

是用户与网络应用程序之间的接口。

如:

Web应用的用户代理:是一些浏览器软件。

一个通过套接字收发报文,并提供用户接口的进程。

电子邮件应用程序用户代理:是“邮件阅读器”。

允许用户进行邮件的撰写和阅读。

应用层协议

定义运行在不同端系统上的应用程序进程间传递报文的格式和方式。

公开协议

  • 由RFC(Request For Comments)定义
  • 允许互操作
  • HTTP, SMTP, ……

私有协议

  • 多数P2P文件共享应用
内容
  • 消息的类型(type)

    请求响应

    响应消息

  • 消息的语法(syntax)/格式

    消息中具有的字段(field)

    每个字段的描述

  • 字段的语义(semantics)

    字段中信息的含义

  • 规则(rules)

    进程何时发送/响应消息

    进程如何发送/响应消息

网络应用的需求与传输层服务

要求
  1. 数据丢失(data loss)/可靠(relibility)
  • 某些网络应用能够容忍一定的数据丢失:网络电话

  • 某些网络应用要求100%可靠的数据传输:文件传输,telnet

  1. 时间(timing)/延迟(delay)
  • 有些应用只有在延迟足够低时才“有效”
  • 网络电话/网络游戏
  1. 带宽(bandwidth)
  • 某些应用只有在带宽达到最低要求时才“有效”:网络视频
  • 某些应用能够适应任何带宽——弹性应用:email
  1. 定时(数据传输的时间限制)
  2. 安全性

Internet提供的传输服务
TCP服务 UDP服务
面向连接 划分三阶段
建立连接(握手过程): 客户机程序和服务器程序之间互相交换控制信息,在两个进程的套接字之间建立一个TCP连接。
*传输报文:*连接是全双工的,即连接双方的进程可以在此连接上同时进行报文收发。
拆除连接: 应用程序报文发送结束。
无连接
可靠的传输 通信进程可以无差错,按适当顺序交付发送的数据。无数据丢失和重复 不可靠的传输服务 不保证报文能够被接收,或收到的报文是乱序到达。
流量控制 发送方不会发送速度过快,超过接收方的处理能力 没有拥塞控制机制 发送进程可以任何速率发送数据
拥塞控制 当网络负载过重时能够限制发送方的发送速度 不提供时延保证
无时间/延迟保障 数据传输的时间不确定。
不提供最小带宽保障 发送进程受拥塞控制机制制约。
特点 TCP协议能保证交付所有的数据,但并不保证这些数据传输的速率以及期待的传输时延。 适于实时应用。

在这里插入图片描述

Web和HTTP

World Wide Web:Tim Berners - Lee

网页且网页相互连接

Web Page 包含多个对象(objects)

  • 对象:HTML文件,JPEG图片,视频文件,动态脚本
  • 基本HTML文件:包含对其他对象引用的连接

对象的寻址(addressing)

  • URL(Uniform Resoure Locator):统一资源定位器

  • Scheme://host:port/path

    格式记牢

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TmR4GS75-1609813680458)(D:\StudyData\Notes[其他]计算机通用知识\CNpics\image-20210105102614518.png)]

HTTP协议

基本概念

超文本传输协议 HyperText Transfer Protocol

无状态(stateless)

服务器不维护任何有关客户端过去所发请求的信息

C/S结构

  • 浏览器(客户机):是Web应用的用户代理。
    • 用于显示所请求的Web页,提供导航功能和配置属性。
    • 实现了HTTP协议的客户机端。
  • Web服务器:用于存贮Web对象(由URL寻址)
    • 实现HTTP协议的服务器端。

在这里插入图片描述

有状态协议更复杂:

  1. 需维护状态(历史信息)
  2. 如果客户或服务器失效,会产生状态的不一致,解决不一致的代价高
传输层协议

使用TCP传输服务

  • 服务器在80端口等待客户的请求
  • 浏览器发起到服务器的TCP连接(创建套接字Socket)
  • 服务器接受来自浏览器的TCP连接
  • 浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息
  • 关闭TCP连接
HTTP连接
类型
  1. 非持久性连接(Nonpersisitent HTTP)
  • 每个TCP连接最多允许传输一个对象
  • HTTP 1.0版本使用非持久性连接
  1. 持久性连接(Persisitent HTTP)
  • 每个TCP连接允许传输多个对象
  • HTTP 1.1版本默认使用持久性连接
非持久性连接工作过程

在这里插入图片描述

响应时间分析与建模
  • RTT(Round Trip Time)

    客户端发送一个很小的数据包到服务器并返回所经历的时间

  • 响应时间(Respone time)

    • 发起、建立TCP连接:1个RTT
    • 发送HTTP请求消息到HTTP响应消息的前几个字节到达:1个RTT
    • 响应消息中所含的文件/对象传输时间

Total = 2RTT + 文件发送时间

在这里插入图片描述

非持久性连接问题
非持久性连接的问题 持久性连接 带有流水机制的持久性连接
*每一个对象的传输时延长:*每个对象需要2个RTT 发送响应后,服务器保持TCP连接的打开 HTTP 1.1的默认选项
*服务器负担重:*操作系统需要为每个TCP连接开销资源(overhead) 后续的HTTP消息可以通过这个连接发送 客户端只要遇到一个引用对象就尽快发出请求
理想情况下,收到所有的引用对象只需耗时约1个RTT
浏览器做法 无流水(pipelining)的持久性连接
打开多个并行的TCP连接以获取网页所需对象 客户端只有收到前一个响应后才发送新的请求
每个被引用的对象耗时1个RTT
HTTP消息格式
HTTP中的方法
HTTP/1.0 HTTP/1.1
GET 请求一个对象。实体主体为空。 GET,POST,HEAD
POST 将实体信息交给服务器,用于提交表单 PUT 向服务器URL指定的路径上载实体中的文件。
HEAD 请Server不要将所有请求的对象放入响应消息中 DELETE 删除服务器URL指定的文件。
请求消息(request)

ASCII:人直接可读

要考
在这里插入图片描述

上传输入的方法

  1. POST方法
  • 网页经常需要填写表格(form)
  • 在请求消息的消息体(entity body)中上传客户端的输入
  1. URL方法
  • 使用GET方法
  • 输入信息通过request行的URL字段上传
响应消息(response)

在这里插入图片描述

  • 200 OK

  • 301 Moved Permanently

  • 400 Bad Request

  • 404 Not Found

  • 505 HTTP Version Not Supported

Cookie技术

HTTP协议无状态

很多应用需要服务器掌握客户端的状态

某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

Cookie组件
  • HTTP响应消息的cookie头部行
  • HTTP请求消息的cookie头部行
  • 保存在客户端主机的cookie文件,由浏览器管理
  • Web服务器的后台数据库
Cookie原理

Cookie使用范围
  • 身份认证
  • 购物车
  • 推荐
  • Web e-mail

隐私问题

Web缓存/代理服务器技术

目标:在不访问服务器的前提下满足客户端的HTTP请求

Web缓存器(Web cache):也叫代理服务器。

代表起始服务器来满足HTTP请求的网络实体。

  • 保存最近请求过的对象的副本。

  • 可在客户机或服务器工作,也可在中间系统工作。

起始(原始)服务器(origin server):对象最初存放并始终保持其拷贝的服务器。

作用
  • 缩短客户请求的响应时间
  • 减少机构/组织的流量
  • 在大范围内(Internet)实现有效的内容分发 CDN(内容分发网络)
组成

Web缓存/代理服务器

  • 用户设定浏览器通过缓存进行Web访问

  • 浏览器向缓存/代理服务器发送所有的HTTP请求

    如果所请求对象在缓存中,缓存返回对象

    否则,缓存服务器向原始服务器发送HTTP请求,获取对象,然后返回给客户端并保存该对象

  • 缓存既充当客户端,也充当服务器

  • 一般由ISP架设

在这里插入图片描述

优缺点
  1. 减少客户机请求的响应时间:

在这里插入图片描述

  1. 减少机构内部网络与因特网连接链路上的通信量:

    降低开销,改善各种应用的性能。

FTP

本地主机上的用户,向远程主机上传或者下载文件。

文件传送协议FTP:用于从一台主机到另一台主机传送文件的协议。

用户通过一个FTP用户代理与FTP服务器交互。

在这里插入图片描述

文件传输过程

  1. 建立TCP连接:用户提供远程主机的主机名或者IP地址。在FTP客户机进程与FTP服务器进程之间建立。

  2. 身份认证:输入用户名和口令。向FTP服务器传送。

  3. 服务器验证成功:进行文件传送(双向)

    将本地文件系统中的文件传送到远程文件系统(上传)

    或从远程文件系统中得到文件(下载)

控制连接与数据连接

控制连接

作用:用于在两主机间传输控制信息。如用户名、口令;上载或下载文件命令等。

控制连接由客户先发起,建立后一直保持:

  1. FTP会话开始前,FTP的客户机与服务器在21号端口上建立。

  2. FTP的客户机通过该连接发送用户名和口令,或改变远程目录命令、上载或下载文件命令。

在这里插入图片描述

数据连接

作用:用于准确传输文件。

  1. 服务器收到一个文件传输的命令:上载或下载

  2. 在20端口建立一个到客户机的数据连接。

  3. 在该数据连接上传送一个文件并关闭连接

    每个数据连接只传一个文件,每个文件都要建立和释放数据连接。

控制连接与数据连接差异
  1. 控制连接是持久的:整个用户会话期间一直保持。
  2. 数据连接是非持久的:会话中每进行一次文件传输,都需要建立一个新的数据连接。

FTP与HTTP比较

FTP HTTP
控制信息 带外传送(out-of-band) 使用分离的控制连接。 带内传输(in-band) 请求和响应都是在传输文件的TCP连接中发送。
状态 有状态 FTP服务器对每个活动用户会话的状态进行追踪,并保留;限制同时会话的总数。 无状态 不对用户状态进行追踪

Email应用

电子邮件快速、多方接收,包含附件、超链接、图像、声音、视频等。

电子邮件系统总体结构

在这里插入图片描述

用户代理(user agent)

邮件阅读器。允许用户阅读、回复、发送、保存和撰写报文。

  • 发邮件:邮件代理向其邮件服务器发送邮件,并存放在发送队列中。
  • 收邮件:邮件代理从其邮件服务器的邮箱中获取该报文。
邮件服务器(mail server)

邮箱:发送给用户的报文。

报文队列:用户要发出的邮件报文。

邮件发送主要过程:

  1. 邮件保存到发送方输出报文队列

  2. 通过SMTP协议转发到接收方邮件服务器,保存到相应邮箱中

    若投递失败仍保存,以后每30分钟发送一次,若几天后仍未成功,将该报文删除,并通知发送方。

    用户访问自己邮箱时,邮件服务器对其身份进行验证(用户名和口令)

SMTP

简单邮件传送协议

从发送方的邮件服务器向接收方的邮件服务器发送邮件。

每个邮件服务器上都有SMTP的客户机端和服务器端。

应用层协议。

使用TCP可靠数据传输服务。
包括两部分:

客户机端:在发送方邮件服务器上运行;

服务器端:在接收方邮件服务器上运行。

SMTP

SMTP过程

在这里插入图片描述

  1. 发送方启动邮件代理,提供接收方邮件地址,写邮件
  2. 用户代理将报文发送给邮件服务器,放在发送队列
  3. SMTP的客户机创建和接收方邮件服务器的TCP连接
  4. STMP通过TCP连接发送报文
  5. 接收方的邮件服务器接收并将该报文放入接收方的邮箱
  6. 接收方调用其用户代理来读报文
说明
  1. 客户使用TCP来可靠传输邮件报文到服务器端口号25

    建立TCP连接

    握手:指明收发双方的邮件地址

    邮件报文的传送

    结束:关闭TCP连接

  2. SMTP不使用中间邮件服务器发送邮件,TCP连接是发送方到接收方的直接连接

  3. 若接收方的邮件服务器未开机,该邮件仍然保存在发送方的邮件服务器上,并在关机后进行再次传送

  4. 邮件不会在某个中间邮件服务器上停留

SMTP和HTTP比较

HTTP STMP
相同点 都从一台主机向另一台主机传送文件 从Web服务器想Web客户机(浏览器)传送文件(对象) 从一个邮件服务器向另一个服邮件服务器传送文件(电子邮件报文)
都使用持久连接
不同点 拉协议 推协议
用户使用HTTP协议从服务器 拉取信息。 发送邮件服务器吧文件推向接受有加你服务器
TCP连接由想获取文件的机器发起 TCP连接是由 要发送文件的机器发起
数据传送方式 无限制 使用7位ASCII码格式;对包含非7位ASCII字符的报文或二进制数据(如图片、声音),需要按照7位ASCII码进行编码(MIME实现) ,再传送。在接收方需要解码还原为原有报文。
对含有文本和图形 (或其他媒体类型)的文档: 把每个对象封装在它各自的HTTP响应报文中发送。 所有报文对象放在一个报文中

邮件报文格式和MIME

邮件报文格式

在这里插入图片描述

MIME

多用途因特网邮件扩展

用于非ASCII数据传输

STMP:

  1. 传送7位的ASCII码文件
  2. 不能直接传送可执行文件或其他的二进制对象

MIME:

  1. 定义了传送非ASCII文件(如声音,图片)的编码规则,将非ASCII文件作为附件发送。
  2. 将非ASCII数据编码后传输,接收方再解码还原
    附加MIME邮件首部
    说明采用何种编码

MIME是SMTP的一个扩展,不能替代SMTP

MIME首部

Content-Transfer-Encoding:告诉接收用户代理,该报文主体采用了ASCII码及相应编码类型,并以此还原成非ASCII码。

常用编码:

  • base64编码:将二进制文件转换为ASCII码格式。
  • 可打印内容转换编码:将一个8位ASCII报文转换为7位ASCII码格式。

Content-Type:告诉接收用户代理报文类型及应采取的动作。

如jpeg:要对jpeg文件解压缩。

在这里插入图片描述

邮件访问协议

用户代理从接收方邮件服务器上读取邮件。

起效过程

发送方:

  • 用户代理用SMTP将邮件推入其邮件服务器
  • 邮件服务器用SMTP将邮件转发到接收方的邮件服务器

接收方:

  • 通过其用户代理使用一个邮件访问协议,从其邮件服务器上取回邮件。

    取邮件是一个拉操作,而SMTP协议是一个推协议。

在这里插入图片描述

POP3

第三版邮局协议

简单,功能有限

读取邮件过程:

  • 建立TCP连接:服务器通过110端口侦听TCP请求,与客户机建立TCP连接。

  • 开始POP3会话读取邮件,分为3个步骤。

    *特许阶段:*用户代理发送用户名和口令获得下载邮件的特许。(身份认证)

    *事务处理阶段:*用户代理取回报文,可对邮件进行某些操作。

    ​ 如:下载并保留,下载并删除等。

    更新阶段:邮件服务器删除带有删除标记的报文,结束POP会话。

IMAP

因特网邮件访问协议

功能强

  • 在用户机上运行IMAP客户程序,并与邮件服务器上的IMAP服务器程序建立TCP连接。

  • 用户在自己的PC机上就可以操作邮件服务器的邮箱,就如同本地操纵一样,是一个联机协议

    如:建立文件夹,查询,移动邮件等。

  • 未发出删除命令前,一直保存在邮件服务器。

  • 实现复杂

基于Web的电子邮件

用户使用浏览器收发电子邮件。

1995年12月Hotmail 引入该技术。

  • 用户代理是普通的浏览器,用户和其远程邮箱之间的通信通过HTTP进行:

    发件人使用HTTP 将电子邮件报文从其浏览器发送到其邮件服务器上。

    收件人使用HTTP从其邮箱中取一个报文到浏览器。

  • 邮件服务之间发送和接收邮件时,使用SMTP

  • 用户可以再远程服务器上以层次目录方式组织报文。

DNS

域名系统(Domain Name System):进程主机名到IP地址的转换。

DNS

  • 一个分层的DNS服务器实现的分布式数据库
  • 允许主机查询分布式数据库的应用层协议
  • 采用C/S方式

名词

DNS服务器 是运行BIND软件的UNIX机器
DNS协议 运行在UDP之上,使用53号端口
DNS 直接由其他的应用层协议 (包括HTTP、SMTP 和FTP)使用,以将用户提供的主机名解析为IP地址。
用户只是间接使用

标识主机方式

标识主机的两种方式:

报文在网络中传输,使用IP地址。

主机名 IP地址
不定长的字母和数字组成。 4个字节组成,有严格的层次结构
便于记忆。路由器处理困难。 路由器容易处理。

域名解析过程

  1. 用户主机上运行DNS客户机端。

  2. 浏览器从URL中解析出主机地址,传给DNS客户机端

  3. DNS客户机向DNS服务器发送一个包含主机名的请求

  4. DNS客户机收到含有对应主机名的IP地址的回答报文

  5. 浏览器向该IP地址指定的HTTP服务器发起一个TCP连接。

    1234称为域名解析

增加一定时延

DNS服务

  1. 主机名到IP地址的转换

  2. 主机别名和规范名的转换:通过DNS可以得到主机别名对应的规范主机名和IP地址

    规范名:主机真正的名字。如host1.njust.edu.cn
    别名:主机上运行的某种应用服务。如 www.njust.edu.cn 表示Web服务器

  3. 同一台主机可运行多个应用,多个别名与一台主机联系。如 ftp.njust.edu.cn 表示FTP服务器

  4. 邮件服务器别名和规范名转换

  5. 负载均衡:Web服务器

DNS查询方式
迭代查询

被查询服务器返回域名解析服务器的名字,逐个查找。

请求主机向本地DNS服务器发送请求,向连接的DNS服务器查找所需要的IP地址,没有则返回本地域名服务器,再向其他DNS服务器发出请求

在这里插入图片描述

递归查询

请求主机向本地DNS服务器发送请求,若没有则直接向其他域名服务器发出请求直到查找到依次返回到本地DNS服务器,最终响应请求。

在这里插入图片描述

P2P应用

位于网络边缘的PC机(对等方peer)互相之间可以直接获取对象

P2P文件分发

从单个源向大量对等方分发文件

C/S与P2P对比
Client-Server P2P文件分发
服务器向每个对等方发送该文件的副本,负担重。 每个对等方都能够重新分发其所有文件的任何部分,协助服务器分发。
当一个对等方收到文件数据时,用其上载能力重新将数据分发给其他对等方。下载同时上载
BT协议

BitTorrent协议

Torrent:洪流。参与一个特定文件分发的所有对等方的集合。

  • 一个洪流中,对等方彼此下载等长度的文件块。
  • 一个对等方最初加入到洪流时,没有文件块,之后累积越来越多。
  • 下载文件块同时,也为其他Torrent上载文件块。
  • 对等方可以在获得整个文件后离开,也可以留下,继续提供上载。
  • 对等方可以任何时候加入到洪流或离开。

tracker追踪器

跟踪洪流中的对等方

  1. 每个洪流有一个追踪器
  2. 一个对等方加入洪流时,在追踪器中注册,并周期性地通知洪流,其仍在洪流中。
交换原理
  • 一个新对等方加入洪流时,追踪器从中随机选择一些对等方,并发送含有IP地址的对等方列表给新加入的对等方。

  • 新对等方依次与列表中的对等方建立TCP连接,连接成功即获取相关文件块;

  • 可以从多个对等方获取文件的各个块;

  • 下载完成后,组装还原为一个完整的文件。

P2P文件共享

对等方之间共享文件

每个参与的对等方既是内容的消费者也是内容的发布者(下载同时也向其他用户上载)

集中式目录(索引)

源于Napster公司(第一家世界范围内从事MP3对等应用程序)设计。

目录服务器(大型服务器或服务器场):提供目录服务。

收集可共享的对象,建立集中式的动态数据库(对象名称到IP地址的映射)。

属于客户机/服务器与P2P的混合结构

工作
  • 通知:对等方启动时,将其IP地址及可共享内容通知目录服务器。
  • 查询内容:用户查询需要共享的对象,获得列表。
    如 Alice 查询某首歌。
  • 获取内容:来自Bob。
  • 更新:当对等方获得新对象或删除对象时,通知目录服务器更新。

问题
  1. 单点故障:中央服务器故障。
  2. 性能瓶颈:中央服务器负担重。
  3. 侵犯版权:可以免费获取有关内容。
  4. 可靠性:文件传输是分散的,但定位内容的过程是高度集中的。
查询洪泛

建立在Gnutella协议基础上:一个公共域文件共享应用程序协议。

全分布方式:无中心服务器。

许多Gnutella客户机实现协议:运行在对等方。

对等方X加入方法

在这里插入图片描述

实现

对等方先形成一个抽象的逻辑网络(覆盖网络)

通过洪泛查询,找到所需对象:
如,某个对等方Alice想得到一个对象。

特点
  • 设计简单。
  • 扩展性差。
  • “查询报文”在网络中产生很大的流量。

限范围的洪泛查询:

  • 在“查询报文”中设置一个对等方计数字段,并给定一个特定值。

  • 可能减少对等方数量。

层次覆盖

与Gnutella类似,*无专用服务器,但对等方地位不平等。*如KaZaA。

实现
  • 对等方先形成一个层次的覆盖网络
  • 通过查询,找到所需对象。

对等方根据通信关系划分若干组,组成层次结构。

在这里插入图片描述

每组包括若干组员,一个组长

组长追踪其所有子节点上的内容

  • 组员与其组长有一个TCP连接,将共享内容告诉组长
  • 组长维护一个数据库,包括该组的共享内容及相关对等方的IP地址。
  • 相关组长之间建立TCP连接
查询定位

对等方确定某个特定对象。

  • 组长发出查询:组长用本组中含有该对象的对等方列表响应;
  • 与其他组长联系:请它们向该对等方发送含有该对象的对等方列表。
特点
  • 层次覆盖网络
  • 查询流量不大
  • 设计技巧
    请求排队:限制并行上载数量
    激励优先权:上载文件比下载文件多的用户优先
    并行下载:从多个对等方请求并下载同一个文件的不同部分。

P2P因特网电话

应用广泛

提供PC到PC、PC到电话、电话到PC电话服务

PC 到PC视频会议服务。

属于即时通讯IM(Instant Messaging)

采用混合模式

集中式和分布式结合。

  • 边缘节点(普通节点SC)和超级节点SN之间采用集中式结构
  • 超级节点之间采用分布式的结构
  • 注册服务器:负责客户端注册。存储用户名、密码。登录时身份认证。

在这里插入图片描述

网站文章

  • VS 2005中使用C#创建及调用WebService完整实例

    关于WebService的概念及相关说明,在这里就不多说了,直接说如何实现IIS配置安装IIS(Windows 默认安装即可),确认可以从其他IP访问本机的默认主页,安装ASP.NET 2.0到IIS...

    2024-04-01 04:42:40
  • win10如何调整计算机时间同步,Win10系统如何设置时间同步间隔?修改时间同步频率的方法...

    win10如何调整计算机时间同步,Win10系统如何设置时间同步间隔?修改时间同步频率的方法...

    Win10系统如何设置时间同步间隔?如果系统时间并没有那么精确,偏差很多,你一定会去勾选“自动同步时间”的功能吧?!可是左等右等也不见调整时间,是这项功能没用吗?其实系统时间同步的频率是有间隔的,且这...

    2024-04-01 04:41:58
  • ES集群中节点与分片的区别

    ES集群中节点与分片的区别

    ES集群中节点与分片的区别 一开始我也搞混了,以为分片就是节点 节点:节点就是我们一个个的主机,你也可以理解为一个个的ES 分片:分片就是将原来存放在一个节点上面的数据进行分片,然后存放到不同的节点。...

    2024-04-01 04:41:50
  • android 从视频中提取音频及录音后合并到视频

    1.前段时间想开发一个app,用来提取mp4中的音频然后进行裁剪MediaExtractor extractor = new MediaExtractor();//新建提取器extractor.setDataSource(…);int numTracks = extractor.getTrackCount();for (int i = 0; i < numTracks; ++i) ...

    2024-04-01 04:41:44
  • MySQL可重复读和读已提交实现原理,深入理解MVCC。

    MySQL可重复读和读已提交实现原理,深入理解MVCC。

    1.隔离级别 MySQL中隔离级别分为4种,提未交读、读已提交、可重复读、串行化。同时MySQL默认隔离级别为可重复读。 图片 查看MySQL隔离级别 SELECT @@tx_isolation 设置...

    2024-04-01 04:41:03
  • Hadoop实训任务3:HDFS和MapReduce综合操作

    Hadoop实训任务3:HDFS和MapReduce综合操作

    Hadoop实训任务3:HDFS和MapReduce综合操作

    2024-04-01 04:40:56
  • Mybatis快速入门(二)

    Mybatis快速入门(二)

    第四章 动态SQL什么是动态SQL:同一个dao的方法,根据不同的条件可以表示不同的sql与语句,主要是where部分有变化,使用mybatis提供的标签实现动态sql的能力,主要讲if,where,...

    2024-04-01 04:40:50
  • 自学一年Java能找到工作吗? 最新发布

    自学一年Java能找到工作吗? 最新发布

    从入门到找到工作大概6个月的时间吧。前提条件是每天都有大块的时间,并且可以处于高效的学习状态当中,。——如果这句话没有劝退大家继续看后面的内容。根据经验来说,我们先找到Java学习目的,一般都是以就业...

    2024-04-01 04:40:04
  • python自动化测试框架学习 之 HTMLtestrunner

    python自动化测试框架学习 之 HTMLtestrunner

    前几天大致搭了个基于python的自动化测试框架: 其中reports是用来放生成报告的====== HTMLtestrunner 是基于unittest单元测试的html的一个库。 首先安装,安装的时候有点特殊,一般的python库直接pip install ... 即可,安装这个的时候我用这种方式试着安装了下“testrunner”和“html-testrunner” 后面发...

    2024-04-01 04:39:58
  • layui分页样式设置居中

    layui分页样式设置居中

    layui数据表格

    2024-04-01 04:39:50