IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络(六)——应用层 -> 正文阅读

[网络协议]计算机网络(六)——应用层


1. 网络应用模型

  • 应用层对应用程序的通信提供服务。
    在这里插入图片描述

1.1 客户/服务器模型

在这里插入图片描述

1.2 P2P模型

  • 在P2P模型中,各计算机没有固定的客户和服务器划分。相反,任意一对计算机一称为对等方(Peer), 直接相互通信。
  • P2P 模型从本质上来看仍然使用客户/服务器方式,每个结点既作为客户访问其他结点的资源,也作为服务器提供资源给其他结点访问。
    在这里插入图片描述
  • 与C/S模型相比,P2P 模型的优点
    1. 减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个结点上,因此大大提高了系统效率和资源利用率(例如,播放流媒体时对服务器的压力过大,而通过P2P模型,可以利用大量的客户机来提供服务)。
    2. 多个客户机之间可以直接共享文档。
    3. 可扩展性好,传统服务器有响应和带宽的限制,因此只能接受-一定 数量的请求。
    4. 网络健壮性强,单个结点的失效不会影响其他部分的结点。
  • P2P模型缺点
    在获取服务的同时,还要给其他结点提供服务,因此会占用较多的内存,影响整机速度。

2. DNS系统

  • 域名系统(Domain Name System, DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如www.BitHachi.com)转换为便于机器处理的IP地址
  • 相对于IP地址,人们更喜欢使用具有特定含义的字符串来标识因特网上的计算机。
  • DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用53号端口
  • 从概念上可将DNS分为3部分:层次域名空间域名服务器解析器

2.1 层次域名空间

  • 域名
    • 因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名(Domain Name)
    • 域(Domain) 是名字空间中一个可被管理的划分。
    • 在域名系统中,每个域分别由不同的组织进行管理。每个组织都可以将它的域再分成一定数目的子域,并将这些子域委托给其他组织去管理
  • 关于域名中的标号有以下几点需要注意:
    1. 标号中的英文不区分大小写。.
    2. 标号中除连字符(-) 外不能使用其他的标点符号。
    3. 每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符。
    4. 级别最低的域名写在最左边,级别最高的顶级域名写在最右边。
  • 顶级域名(Top Level Domain, TLD)分为如下三大类
    1. 国家顶级域名(nTLD)。国家和某些地区的域名,如“.cn”表示中国,“.us”表示美国,.uk”表示英国。
    2. 通用顶级域名(gTLD)。 常见的有“.com” (公司)、“.net" (网络服务机构)、“.org”(非营利性组织)和“.gov" (国家或政府部门)等。
    3. 基础结构域名。这种顶级域名只有一个,即arpa,用于反向域名解析,因此又称反向域名。反向域名解析与通常的正向域名解析相反,提供IP地址到域名的对应,反向域名格式如:X.X.X.in-addr.arpa。很多网络服务提供商要求访问的IP地址具有反向域名解析的结果,否则不提供服务。

国家顶级域名下注册的二级域名均由该国家自行确定。

2.2 域名服务器

  • 因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型
  • 每个域名服务器不但能够进行一些域名到IP地址的解析,而且还必须具有连向其他域名服务器的信息。当自己不能进行域名到IP地址的转换时,能够知道到什么地方去找其他域名服务器。
  • DNS使用了大量的域名服务器,它们以层次方式组织。没有一台域名服务器具有因特网上所有主机的映射,相反,该映射分布在所有的DNS上。
  • 采用分布式设计的DNS,是一个在因特网上实现分布式数据库的精彩范例。主要有4种类型的域名服务器。
  • 根域名服务器
    • 根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP地址。
    • 根域名服务器也是最重要的域名服务器,不管是哪个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器
    • 因特网上有13个根域名服务器,尽管我们将这13个根域名服务器中的每个都视为单个服务器,但每个“服务器”实际上是冗余服务器的集群,以提供安全性和可靠性。
    • 需要注意的是,根域名服务器用来管辖顶级域(如.com), 通常它并不直接把待查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询。
  • 顶级域名服务器
    • 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名
    • 收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址)。
  • 授权域名服务器(权限域名服务器)
    • 每台主机都必须在授权域名服务器处登记。为了更加可靠地工作,一台主机最好至少有两个授权域名服务器。
    • 实际上,许多域名服务器都同时充当本地域名服务器和授权域名服务器。
    • 授权域名服务器总能将其管辖的主机名转换为该主机的IP地址。
  • 本地域名服务器
    • 每个因特网服务提供者(ISP), 或一所大学,甚至一所大学中的各个系,都可以拥有一个本地域名服务器。
    • 当一台主机发出DNS查询请求时,这个查询请求报文就发送给该主机的本地域名服务器
    • 事实上,我们在Windows系统中配置“本地连接”时,就需要填写DNS地址,这个地址就是本地DNS (域名服务器)的地址。

2.3 域名解析过程

  • 域名解析有两种方式:递归查询递归与迭代相结合的查询。
    在这里插入图片描述

  • 主机向本地域名服务器的查询采用的是递归查询

    • 如果本地主机所询问的本地域名服务器不知道被查询域名的IP 地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。
    • 在这种情况下,本地域名服务器只需向根域名服务器查询一次,后面的几次查询都是递归地在其他几个域名服务器之间进行的[见图(a)中的步骤③~⑥]。
    • 在步骤⑦中,本地域名服务器从根域名服务器得到了所需的IP地址,最后在步骤⑧中,本地域名服务器把查询结果告诉主机m.xyz.com.
  • 本地域名服务器向根域名服务器的查询采用迭代查询

    • 当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪个顶级域名服务器进行查询”。
    • 然后让本地域名服务器向这个顶级域名服务器进行后续的查询,如图6.6(b)所示。
    • 同样,顶级域名服务器收到查询报文后,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应向哪个·权限域名服务器查询。
    • 最后,知道所要解析的域名的IP地址后,把这个结果返回给发起查询的主机。

为了提高DNS的查询效率,并减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存
当一个DNS服务器接收到DNS查询结果时,它能将该DNS信息缓存在高速
缓存中。这样,当另一个相同的域名查询到达该DNS服务器时,该服务器就能够直接提供所要求的IP地址,而不需要再去向其他DNS服务器询问。
因为主机名和IP地址之间的映射不是永久的,所以DNS服务器将在一段时间后丢弃高速缓存中的信息。

  • 域名解析过程
    ①客户机向其本地域名服务器发出DNS请求报文
    ②本地域名服务器收到请求后,查询本地缓存,若没有该记录,则以DNS客户的身份向根域名服务器发出解析请求。
    ③根域名服务器收到请求后,判断该域名属于.com域,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器。
    ④本地域名服务器向顶级域名服务器dns.com发出解析请求报文
    ⑤顶级域名服务器dns.com收到请求后,判断该域名属于abc.com域,因此将对应的授权域名服务器dns.abc.com的IP地址返回给本地域名服务器。
    ⑥本地域名服务器向授权域名服务器dns.abc.com发起解析请求报文。
    ⑦授权域名服务器dns.abc.com收到请求后,将查询结果返回给本地域名服务器。
    ⑧本地域名服务器将查询结果保存到本地缓存,同时返回给客户机。

3. FTP

文件传输协议( File Transfer Protocol, FTP)是因特网上使用得最广泛的文件传输协议。

  • FTP提供以下功能:
    ①提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
    ②以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力。
    ③以匿名FTP的方式提供公用文件共享的能力。

3.1 FTP协议的工作原理

在这里插入图片描述

  • FTP采用客户/服务器(C/S)的工作方式,它使用TCP可靠的传输服务。

  • 一个FTP服务器进程可同时为多个客户进程提供服务。

  • 依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器

  • 连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端

  • FTP的服务器进程由两大部分组成:
    一个主进程,负责接收新的请求;若干从属进程,负责处理单个请求。

  • 其工作步骤如下:
    ①打开熟知端口21 (控制端口),使客户进程能够连接上。
    ②等待客户进程发连接请求。
    ③启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
    ④回到等待状态,继续接收其他客户进程的请求。

  • FTP服务器必须在整个会话期间保留用户的状态信息。
    特别是服务器必须把指定的用户账户与控制连接联系起来,服务器必须追踪用户在远程目录树上的当前位置。

3.2 控制连接与数据连接

FTP在工作时使用两个并行的TCP连接:一个是控制连接(端口号21),一个是数据连接(端口号20)。
在这里插入图片描述

  • 控制连接
    • 服务器监听21号端口,等待客户连接,建立在这个端口上的连接称为控制连接,控制连接用来传输控制信息(如连接请求、传送请求等),并且控制信息都以7位ASCII格式传送
    • FTP客户发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。
    • 在传输文件时还可以使用控制连接(如客户在传输中途发一个中止传输的命令),因此控制连接在整个会话期间一直保持打开状态。
  • 数据连接
    • 服务器端的控制进程在接收到FTP客户发来的文件传输请求后,就创建“数据传送进程”和“数据连接”。
    • 数据连接用来连接客户端和服务器端的数据传送进程,数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。

  • 因为FTP使用了一个分离的控制连接,所以也称FTP的控制信息是带外(Out-of-band) 传送的。
  • 使用FTP时,若要修改服务器上的文件,则需要先将此文件传送到本地主机,然后再将修改后的文件副本传送到原服务器。
  • 网络文件系统(NFS) 允许进程打开一个远程文件,并在该文件的某个特定位置开始读写数据。这样,NFS可使用户复制一个大文件中的一个很小的片段,而不需要复制整个大文件。

4. 电子邮件

4.1 电子邮件系统的组成结构

在这里插入图片描述

在这里插入图片描述

  • 用户代理(UA):用户与电子邮件系统的接口。
    +用户代理使用户能够通过一个很友好的接口发送和接收邮件,用户代理至少应当具有撰写、显示和邮件处理的功能。
    +通常情况下,用户代理就是一个运行在PC.上的程序,常见的有Outlook、Foxmail 和Thunderbird等。
  • 邮件服务器:组成电子邮件系统的核心。
    • 邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。
    • 邮件服务器采用客户/服务器方式工作,但它能够同时充当客户和服务器。
    • 例如,当邮件服务器A向邮件服务器B发送邮件时,A就作为SMTP客户,而B是SMTP服务器;反之,当B向A发送邮件时,B就是SMTP客户,而A就是SMTP服务器。
  • 邮件发送协议和读取协议
    • 邮件发送协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,通常使用的是SMTP
      SMTP采用的是“推”(Push)”的通信方式,即在用户代理向邮件服务器发送邮件及在邮件服务器之间发送邮件时,SMTP客户端主动将邮件“推”送到SMTP服务器端。
    • 邮件读取协议用于用户代理从邮件服务器读取邮件,如POP3
      POP3采用的是“拉”(Pull)”的通信方式,即用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮箱中的邮件。

4.2 电子邮件格式与MIME

  • 电子邮件格式
    • 一个电子邮件分为信封内容两大部分,邮件内容又分为首部主体两部分。
      RFC 822规定了邮件的首部格式,而邮件的主体部分则让用户自由撰写。
    • 邮件内容的首部包含一些首部行,每个首部行由一个关键字后跟冒号再后跟值组成。有些关键字是必需的,有些则是可选的。最重要的关键字是To:Subject
    • To是必需的关键字,后面填入一个或多个收件人的电子邮件地址。
    • Subject是可选关键字,是邮件的主题,反映了邮件的主要内容。
    • 还有一个必填的关键字是From,但它通常由邮件系统自动填入。
  • 通用因特网邮件充MIME
    在这里插入图片描述
    • MIME主要包括以下三部分内容:
      ①5个新的邮件首部字段,包括MIME版本、内容 描述、内容标识、内容传送编码和内容类型。
      ②定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
      ③定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

4.3 SMTP协议

  • SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息

  • 负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器

  • SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。

  • TCP连接端口号25C/S

  • 连接建立
    在这里插入图片描述

    • 发件人的邮件发送到发送方邮件服务器的邮件缓存中后,SMTP客户就每隔一定时间对邮件缓存扫描一次。
    • 如发现有邮件,就使用SMTP的熟知端口号(25) 与接收方邮件服务器的SMTP服务器建立TCP连接
    • 连接建立后,接收方SMTP服务器发出220 Service ready(服务就绪)。然后SMTP客户向SMTP服务器发送HELO命令,附上发送方的主机名。
    • SMTP不使用中间邮件服务器。
      TCP连接总是在发送方和接收方这两个邮件服务器之间直接建立,而不管它们相隔多远。
      接收方的邮件服务器因故障暂时不能建立连接时,发送方的邮件服务器只能等待一段时间后再次尝试连接。
  • 邮件传送
    在这里插入图片描述

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

  • SMTP的缺点

    1. SMTP不能传送可执行文件或者其他二进制对象。
    2. SMTP仅限于传送7位ASCI码,不能传送其他非英语国家的文字。
    3. SMTP服务器会拒绝超过一定长度的邮件。

4.4 POP3协议

  • POP也使用客户/服务器的工作方式,在传输层使用TCP,端口号为110。接收方的用户代理上必须运行POP客户程序,而接收方的邮件服务器上则运行POP服务器程序。
  • POP有两种工作方式:“下载并保留”和“下载并删除”。
    • 在“下载并保留”方式下,用户从邮件服务器上读取邮件后,邮件依然会保存在邮件服务器上,用户可再次从服务器上读取该邮件;
    • 使用“下载并删除”方式时,邮件一旦被读取,就被从邮件服务器上删除,用户不能再次从服务器上读取。

4.5 IMAP—因特网报文存取协议

  • IMAP为用户提供了创建文件夹、在不同文件夹之间移动邮件及在远程文件夹中查询邮件的命令,为此IMAP服务器维护了会话用户的状态信息。
  • IMAP的另一特性是允许用户代理只获取报文的某些部分,例如可以只读取一个报文的首部,或一个多部分MIME报文的一部分。这非常适用于低带宽的情况,用户可能并不想取回邮箱中的所有邮件,尤其是包含很多音频或视频的大邮件。
  • 万维网的电子邮件
    用户浏览器与Hotmail或Gmail的邮件服务器之间的邮件发送或接收使用的是HTTP,而仅在不同邮件服务器之间传送邮件时才使用SMTP。

5. 万维网WWW与HTTP协议

5.1 WWW的概念与组成结构

  • 万维网(World Wide Web, WWW)是一个资料空间,在这个空间中:一样有用的事物称为一样“资源”,并由一个全域“统一资源定位符”(URL)标识。这些资源通过超文本传输协议(HTTP)传送给使用者,通过单击链接来获取资源。
  • 万维网使用链接的方法能让用户非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
    超文本标记语言(HyperText Markup Language,HTML)使得万维网页面的设计者可以很方便地用一个超链接从本页面的某处链接到因特网上的任何一个万维网页面,并能够在自己的计算机屏幕上显示这些页面。
  • 万维网的内核部分
    1. 统一资源定位符(URL)。 负责标识万维网上的各种文档,并使每个文档在整个万维网的范围内具有唯一的标识符URL。
    2. 超文本传输协议(HTTP)。 一个应用层协议,它使用TCP连接进行可靠的传输,HTTP是万维网客户程序和服务器程序之间交互所必须严格遵守的协议。
    3. 超文本标记语言(HTML)。 一种文档结构的标记语言,它使用一些约定的标记对页面上的各种信息(包括文字、声音、图像、视频等)、格式进行描述。
  • URL—统一资源定位符
    在这里插入图片描述
  • 万维网工作流程
    • 万维网以客户/服务器方式工作。
    • 浏览器是在用户计算机上的万维网客户程序,而万维网文档所驻留的计算机则运行服务器程序,这台计算机称万维网服务器
    • 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的文档。工作流程如下:
      ① Web 用户使用浏览器(指定URL)与Web服务器建立连接,并发送浏览请求。
      ② Web服务器把URL转换为文件路径,并返回信息给Web浏览器。
      ③ 通信完成,关闭连接。

5.2 HTTP协议

  • HTTP定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
  • 从层次的角度看,HTTP是面向事务的(Transaction-oriented) 应用层协议,它规定了在浏览器和服务器之间的请求和响应的格式与规则,是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

在这里插入图片描述

  • HTTP特点

    • HTTP是无状态的

      • 也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同。
      • 因为服务器并不记得曾经访问过的这个客户,也不记得为该客户曾经服务过多少次。
      • HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。
    • Cookie 是一个存储在用户主机中的文本文件,里面含有一串“识别码”,如“123456”,用于Web服务识别用户。

      • Web服务器根据Cookie就能从数据库中查询到该用户的活动记录,进而执行一些个性化的工作,如根据用户之前浏览过的商品向其推荐新产品等。
    • HTTP采用TCP作为运输层协议,保证了数据的可靠传输。

      • HTTP不必考虑数据在传输过程中被丢弃后又怎样被重传。
      • 但是,HTTP本身是无连接的。也就是说,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要先建立HTTP连接。
    • HTTP既可以使用非持久连接,也可以使用持久连接(HTTP/1.1支持)
      在这里插入图片描述

      • 对于非持久连接,每个网页元素对象(如JPEG图形、Flash 等)的传输都需要单独建立一个TCP连接。也就是说,请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT(一个RTT用于TCP连接,另一个RTT用于请求和接收文档)
      • 持久连接,是指万维网服务器在发送响应后仍然保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的HTTP请求与响应报文。
        • 持久连接又分为非流水线流水线两种方式。
          对于非流水线方式,客户在收到前一个响应后才能发出下一个请求;
          HTTP/1.1 的默认方式是使用流水线的持久连接。这种情况下,客户每遇到一个对象引用就立即发出一个请求,因而客户可以逐个地连续发出对各个引用对象的请求。如果所有的请求和响应都是连续发送的,那么所有引用的对象共计经历1个RTT延迟,而不是像非流水线方式那样,每个引用都必须有1个RTT延迟。
  • HTTP报文结构

    • HTTP是面向文本的(Text-Oriented), 因此报文中的每个字段都是一一些ASCII码串,并且每个字段的长度都是不确定的。

    • 请求报文:从客户向服务器发送的请求报文
      响应报文:从服务器到客户的回答
      在这里插入图片描述

    • HTTP请求报文和响应报文都由三个部分组成。这两种报文格式的区别是开始行不同。

    • 开始行:用于区分是请求报文还是响应报文。
      在请求报文中的开始行称为请求行;响应报文中的开始行称为状态行;开始行的三个字段之间都以空格分隔,最后的“CR"和“LF”分别代表“回车”和“换行”。

    • 实体主体:在请求报文中一般不用这个字段,而在响应报文中也可能没有这个字段。

    • 状态码

状态码解释
1xx表示通知信息的,如请求收到了或正在处理。
2xx表示成功,如接受或知道了。
3xx表示重定向,如要完成请求还必须采取进一步的行动。
4xx表示客户的差错,如请求中有错误的语法或不能完成。
5xx表示服务器的差错,如服务器失效无法完成请求。

6. 常用应用程序的协议及端口号

应用程序FTP数据链接FTP控制链接TELNETSMTPDNSTFTPHTTPPOP3SNMP
使用协议TCPTCPTCPTCPUDPUDPTCPTCPUDP
熟知端口号20212325536980110161

【参考文档】
https://bithachi.blog.csdn.net/article/details/104722679

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 17:02:28  更:2021-08-12 17:03:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 19:50:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码