CCNA入门基础之三 基础应用和协议

                                                                          CCNA入门基础之三 基础应用和协议

      ARP(地址解析协议)协议:当一台主机把以太网数据帧发送到位于同一个局域网的另一台主机时,是根据48bit的以太网地址来确定目的接口的。在硬件层次上进行数据帧交换必须有正确的接口地址(网卡MAC地址),接口设备驱动程序从不检查IP数据报中的目的IPARP地址解析协议为这两种不同形式的地址提供映射:32bitIP地址和网卡的MAC地址(帧中继的反向ARPDLCIDMVPNNHRP)。注意点到点网络(PPPHDLC)没有ARP,不涉及MAC地址,点到点网络是直连的,他们直接发现对方,彼此形成32位的路由指向对方。ARPIP地址到对应的硬件物理地址之间提供动态映射自动完成。以太网封装必须要有源MAC和目的MAC

ARP报文格文格式 

硬件类型
  

协议类型

硬件地址长度
  

协议长度

操作类型

发送方硬件地址(0-3字节)

发送方硬件地址(4-5字节)

发送方IP地址(0-1字节)
  

发送方IP地址(2-3字节)

目标硬件地址(0-1字节)

目标硬件地址(2-5字节)

目标IP地址(0-3字节)

   

硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为1

协议类型:指明了发送方提供的高层协议类型,IP080016进制);

硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;

操作类型:用来表示这个报文的类型,ARP请求为1ARP响应为2RARP请求为3RARP响应为4

发送方硬件地址(0-3字节):源主机硬件地址的前3个字节;

发送方硬件地址(4-5字节):源主机硬件地址的后3个字节;

发送方IP地址(0-1字节):源主机硬件地址的前2个字节;

发送方IP地址(2-3字节):源主机硬件地址的后2个字节;

目标硬件地址(0-1字节):目的主机硬件地址的前2个字节;

目标硬件地址(2-5字节):目的主机硬件地址的后4个字节;

工作过程:

第一步:当主机A要与本地主机B通信时,主机A首先用BIP跟自己的子网掩码进行“AND”运算,判断是否在同一网络,如果不在同一网络就要先跟网关通信;如果在同一局域网直接与主机B通信。

2步:如果主机AARP缓存中没有网关或主机B的找到映射,它将询问网关或主机B的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机(包括网关)。源主机AIP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。

3步:主机B或网关确定ARP请求中的IP地址与自己的IP地址匹配,则将主机AIP地址和MAC地址映射添加到本地ARP缓存中。

4步:主机B或网关将包含其MAC地址的ARP回复消息直接发送回主机A

5步:当主机A收到从主机B或网关发来的ARP回复消息时,会用主机B或者网关的IPMAC地址映射更新ARP缓存。为使广播量最小,ARP维护IP地址到MAC地址映射的缓存以便将来使用。ARP缓存可以包含动态和静态项目(手工添加,永远存在)。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B或网关的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

 

在局域网中ARP是很重要的,但是ARP存在缺陷,被很多黑客利用。ARP地址转换表是依赖于计算机中高速缓冲存储器动态更新的,而高速缓冲存储器的更新是受到更新周期的限制的,只保存最近使用的地址的映射关系表项,这使得攻击者有了可乘之机,可以在高速缓冲存储器更新表项之前修改地址转换表,实现攻击。ARP请求为广播形式发送的,网络上的主机可以自主发送ARP应答消息,并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的MAC地址转换表,这样攻击者就可以向目标主机发送伪ARP应答报文,从而篡改本地的MAC地址表,这就是ARP欺骗。ARP可以导致目标计算机与网关通信失败,更会导致通信重定向,所有的数据都会通过攻击者的机器,因此存在极大的安全隐患。ARP欺骗防御:

  1. 交换机开启DHCPSnooping功能,

  2. DHCP中设置IP地址与MAC地址绑定

  3. 交换机开启端口安全功能

 

 

代理ARP协议:ARP地址解析协议工作在一个网段中,而代理ARPProxy ARP,也被称作混杂ARPPromiscuous ARP))工作在不同的网段间,其一般被像路由器这样的设备使用,用来代替处于另一个网段的主机回答本网段主机的ARP请求。如,主机PC1192.168.20.66/24)需要向主机PC2192.168.20.20/24)发送报文,因为主机PC1不知道子网的存在且和目标主机PC2在同一主网络网段,所以主机PC1将发送ARP协议请求广播报文请求192.168.20.20MAC地址。这时,路由器将识别出报文的目标地址属于另一个子网(注意,路由器的接口IP地址配置的是28位的掩码),因此向请求主机回复自己的硬件地址(0004.dd9e.cca0)。之后,PC1将发往PC2的数据包都发往MAC地址0004.dd9e.cca0(路由器的接口E0/0),由路由器将数据包转发到目标主机PC2。(接下来路由器将为PC2做同样的代理发送数据包的工作)。代理ARP协议使得子网化网络拓扑对于主机来说时透明的(或者可以说是路由器以一个不真实的PC2MAC地址欺骗了源主机PC1)。

 

免费ARP协议:它是指主机发送ARP查找自己的ip地址。通常,它发生在系统引导期间进行接口配置的时候。它主要作用有两个:

  1. 一个主机可以通过它来确定另一个主机是否设置了相同的I P地址。主机b s d i并不希望对此请求有一个回答。但是,假如收到一个回答,那么就会在终端日志上产生一个错误消息“以太网地址:a : b : c :d : e : f发送来重复的I P地址”。这样就可以警告系统治理员,某个系统有不正确的设置。

  2. 假如发送免费A R P的主机正好改变了硬件地址(很可能是主机关机了,并换了一块接口卡,然后重新启动),那么这个分组就可以使其他主机高速缓存中旧的硬件地址进行相应的更新。一个比较闻名的A R P协议事实[Plummer 1982]是,假如主机收到某个I P地址的A R P请求,而且它已经在接收者的高速缓存中,那么就要用A R P请求中的发送端硬件地址(如以太网地址)对高速缓存中相应的内容进行更新。主机接收到任何A R P请求都要完成这个操作(A R P 请求是在网上广播的,因此每次发送A R P请求时网络上的所有主机都要这样做)。

  3. 设备高可用性技术,通过发送含有备份硬件地址和故障服务器的IP地址的免费ARP请求,使得备份文件服务器可以顺利的接替故障服务器工作。这使得所有目的地为故障服务器的报文都被发送到备份服务器那里,客户程序不用关心服务器是否出问题.(HSRPVRRP)

 

RARP协议:ARP地址解析协议是根据IP地址获取物理地址的协议,而RARP反向地址转换协议是局域网的物理机器从网关服务器的ARP表或者缓存上根据MAC地址请求IP地址的协议,其功能与地址解析协议相反。与ARP相比,RARP的工作流程也相反。首先是查询主机向网路送出一个RARPRequest广播封包,向别的主机查询自己的IP地址。这时候网络上的RARP服务器就会将发送端的IP地址用RARP Reply封包回应给查询者,这样查询主机就获得自己的IP地址了。

 

NDP协议:地址解析协议是IPv4中必不可少的协议,但在IPv6中将不再存在地址解析协议。在IPv6中,地址解析协议的功能将由NDP(邻居发现协议,NeighborDiscovery Protocol)实现,它使用一系列IPv6控制信息报文(ICMPv6)来实现相邻节点(同一链路上的节点)的交互管理,并在一个子网中保持网络层地址和数据链路层地址之间的映射。邻居发现协议中定义了5种类型的信息:路由器宣告、路由器请求、路由重定向、邻居请求和邻居宣告。与ARP相比,NDP可以实现路由器发现、前缀发现、参数发现、地址自动配置、地址解析(代替ARPRARP)、下一跳确定、邻居不可达检测、重复地址检测、重定向等更多功能

ICMP协议:它传递差错报文以及查询报文的信息。ICMP报文被IP层或高层协议(TCPUDP使用),一些ICMP把差错报文返回给用户进程。ICMP报是在IP数据包内部被传输的。ICMP报文的前4个字节都一样。

类型位与代码位决定了报文类型

当发送一份ICMP差错报文时,报文始终包含IP首部和产生的ICMP差错报文的IP数据报前8个字节,这样接受ICMP差错报文的模块就会把它与某个特定的协议(根据IP首部的协议类型字段判断)和应用进程(根据IP数据报前8个字节中的TCP/UDP报文首部中的TCPUDP端口号判断)关联起来

比较重要的:

  主机不可达(3  1

  管理强制不可达(3  13)

  需要分片但设置了DF位(3  4

  端口不可达(3   3

  源站路由失败(3   5

 下面各种情况都不会导致产生ICMP差错报文:
    1) ICMP
差错报文(但是,ICMP查询报文可能会产生ICMP差错报文)。
    2)
目的地址是广播地址或多播地址(D类地址)的IP数据报。
    3)
作为链路层广播的数据报。
    4)
不是IP分片的第一片
    5)
源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地址或多播地

 

 

 

Ping程序:Ping程序用于测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机。并等待返回ICMP回显应答。还可以用Ping程序确定问题出在哪里,Ping程序还能测出到这台主机的往返时间,以表明网络的延时和稳定性;发送回显请求的程序为客户端,而被ping的主机为服务器,大多数TCP/IP实现都在内核中直接支持Ping服务器,这种服务器不是一个用户进程,对于其他的ICMP查询报文,服务器必须响应标识符和序列号字段,另外客户发送的选项数据必须回显。在Unix系统中Ping是把ICMP报文中的标识符字段设置成发送ID号,这样在同一台主机上同时可以运行多个Ping程序,ping程序也可以识别返回的信息。在Windows下,不管开多少个Ping的实例,他们的identifier都是相同的,而且每增加一个出去的Ping包序列号增加256.

Ping程序提供—R选项,由于提供记录路由的功能。它使得Ping程序在发送出去的IP数据包中设置IPRR选项(该IP数据包包含ICMP回显请求报文)。这样每个处理该数据包路由器都把它的IP得知放入选项中。当数据包到达目的端时,IP地址清单应该复制到ICMP回显应答中,这样返回途中所有路径经过的路由地址也被加入清单中。当Ping程序收到回显应答时,它就打印这份IP清单。但是由于IP首部中的空间有限,存放的IP最多只能9个。(IP首部中的长度只有4Bit,因此整个IP首部最长只有1532bit长的字,即60字节,由于整个IP首部固定长度为20RR选项用去3个字节,这样只剩37个字节了,而且一个IP4字节,所以只能放9个)

Code字段: 紧有一个字节,指明IP选项的类型,对于RR选项来说,它的值是7LenRR选项的的总字节长度,在这情况下是39.

PTR称作指针字段:  它是一个基于1的指针,指向存放下一个IP地址的位置,它的最小值为4 ,指向存放第一个IP地址的位置。随着IP地址存入清单,PTR的值分别为81216。。。直到最大36.当记录下9IP地址后,ptr的值为40,表示清单已满。路由器记录的是出口IP地址,当原始Ping主机收到回显应答时,他也要把它的入口IP地址放入清单。

 

 

Traceroute程序:是一个能更深入探索TCP/IP协议的工具。它可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。它比Ping中的ip路由记录更好,没有空间限制。它利用ICMP报文和IP首部的TTL字段,TTL字段是由发送方初始化一个8Bit字段。当发送ICMP回显应答时TTL一般为255

每个处理数据包的路由器都需要把TTL值减去1或减去数据包在路由器中停留的秒数。由于大多数的路由器转发数据报时的延时都减少1s,因此TTL最终成为一个跳站的计算器。所经过的每个路由器都建1.当路由器收到一份IP数据包,如果其TTL字段是01,则路由器不转发该报文(接收到这种情况的数据报的目的主机可以将它交给应用程序,这是因为不需要转发该数据报,但是在这种情况下系统不应该接受TTL字段为0的数据包),相反,路由器将该报文掉弃,并给信源发一份ICMP超时信息,Traceroute程序关键在于包含这份ICMP信息的IP报文的信源地址是该路由器的IP地址。Traceroute程序发送一份UDP数据包给目的主机,但它选择一个不可能的值作为UDP端口号(大于30000),使目的主机的任何一个程序都不可能使用该端口。因为,当该报文到达时,将使目的主机的UDP模块产生一份端口不可达错误ICMP报文,这样Traceroute程序所要做的就是区分收到的ICMP报文是超时还是端口不可达,以判断什么时候结束。

 请区分:Windows系统自带的Tracert,它利用ICMPechorequest,到达目标就返回icmp echo replyTTL值依然使用每次减1

 

 

DHCP协议:

  DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。DHCP3个端口,其中UDP67UDP68为正常的DHCP服务端口,分别作为DHCP ServerDHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCPfailover是用来做“双机热备”的。

   DHCP是基于Client/Server工作模式,DHCP服务器需要为主机分配IP地址和提供主机配置参数。DHCP具有以下功能:

  1. 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。

  2. DHCP应当可以给用户分配永久固定的IP地址。

  3. DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)

  4. DHCP服务器应当向现有的BOOTP客户端提供服务。

 DHCP有三种机制分配IP地址:三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。

  1. 自动分配(AutomaticAllocation),DHCP给客户端分配永久性的IP地址;

  2. 动态分配(DynamicAllocation), DHCP给客户端分配过一段时间会过期的IP地址(或者客户端可以主动释放该地址);

  3. 手工配置(ManualAllocation),由网络管理员给客户端指定IP地址。管理员可以通过DHCP将指定的IP地址发给客户端。

 DHCP中继代理 ,由于DHCP消息的格式是基于BOOTP(Bootstrap Protocol)消息格式的,这就要求设备具有BOOTP中继代理的功能,并能够与BOOTP客户端和DHCP服务器实现交互。BOOTP中继代理的功能,使得没有必要在每个物理网络都部署一个DHCP服务器。RFC 951RFC 1542BOOTP协议进行了详细描述。DHCP中继代理 DHCPRelayDHCPR)。DHCP中继代理,就是在DHCP服务器和客户端之间转发DHCP数据包。当DHCP客户端与服务器不在同一个子网上,就必须有DHCP中继代理来转发DHCP请求和应答消息。DHCP中继代理的数据转发,与通常路由转发是不同的,通常的路由转发相对来说是透明传输的,设备一般不会修改IP包内容。而DHCP中继代理接收到DHCP消息后,重新生成一个DHCP消息,然后转发出去。在DHCP客户端看来,DHCP中继代理就像DHCP服务器;在DHCP服务器看来,DHCP中继代理就像DHCP客户端。

 DHCP工作的基本流程:

  1. 主机发送DHCPDISCOVER广播包在网络上寻找DHCP服务器;

  2. DHCP服务器向本网络发送DHCPOFFER广播数据包,包含IP地址及地址租期等;

  3. 主机发送DHCPREQUEST广播包,正式向服务器请求分配已提供的IP地址;

  4. DHCP服务器向主机发送DHCPACK单播包,确认主机的请求

需要说明的是:

  1. DHCP客户端可以接收到多个DHCP服务器的DHCPOFFER数据包,然后可能接受任何一个DHCPOFFER数据包,但客户端通常只接受收到的第一个DHCPOFFER数据包。另外,DHCP服务器DHCPOFFER中指定的地址不一定为最终分配的地址,通常情况下,DHCP服务器会保留该地址直到客户端发出正式请求。

  2. 正式请求DHCP服务器分配地址DHCPREQUEST采用广播包,是为了让其它所有发送DHCPOFFER数据包的DHCP服务器也能够接收到该数据包,然后释放已经OFFER(预分配)给客户端的IP地址。

  3. 如果发送给DHCP客户端的地址已经被其他DHCP客户端使用,客户端会向服务器发送DHCPDECLINE信息包拒绝接受已经分配的地址信息。

  4. 在协商过程中,如果DHCP客户端发送的REQUEST消息中的地址信息不正确,如客户端已经迁移到新的子网或者租约已经过期,DHCP服务器会发送DHCPNAK消息给DHCP客户端,让客户端重新发起地址请求过程。

 

OP:若是 client 送给 server 的封包,设为 1 ,反向为 2

HTYPE:硬件类别,Ethernet 1

HLEN:硬件地址长度, Ethernet 6

HOPS:若封包需经过 router 传送,每站加 1 ,若在同一网内,为 0

TRANSACTIONID:DHCP REQUEST 时产生的数值,以作 DHCPREPLY 时的依据。

SECONDS:Client端启动时间(秒)。

FLAGS: 0 15 16 bits ,最左一 bit 1 时表示 server 将以广播方式传送封包给 client ,其余尚未使用。

ciaddr:要是 client 端想继续使用之前取得之 IP 地址,则列于这里。

yiaddr:server送回 client DHCP OFFER DHCPACK封包中,此栏填写分配给 client IP 地址。

siaddr:client需要透过网络开机,从server送出之DHCP OFFERDHCPACKDHCPNACK封包中,此栏填写开机程序代码所在server之地址。

giaddr:若需跨网域进行 DHCP 发放,此栏为 relayagent 的地址,否则为 0

chaddr:Client之硬件地址。

sname:Server的名称字符串,以 0x00 结尾。

file: client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。

options:允许厂商定议选项(Vendor-Specific Area),以提供更多的设定信息(如:NetmaskGatewayDNS、等等)。其长度可变,同时可携带多个选项,每一选项之第一个 byte 为信息代码,其后一个 byte 为该项数据长度,最后为项目内容。CODE LENVALUE 此字段完全兼容 BOOTP ,同时扩充了更多选项。其中,DHCP封包可利用编码为 0x53 之选项来设定封包类别:

项值类别:

1 DHCPDISCOVER

2 DHCPOFFER

3 DHCPREQUEST

4DHCPDECLINE

5 DHCPACK

6 DHCPNACK

7DHCPRELEASE                               

 

DNS协议:(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181DNS有规范说明,RFC 2136DNS的动态更新进行说明,RFC 2308DNS查询的反向缓存进行说明。每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。主机名到IP地址的映射有两种方式:

1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;

2)动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。

通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

 

域名结构:通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。 Internet 的顶级域名由 Internet网络协会域名注册查询负责网络地址分配的委员会进行登记和管理,它还为 Internet的每一台主机分配唯一的 IP 地址。全世界现有三个大的网络信息中心: 位于美国的 Inter-NIC,负责美国及其他地区; 位于荷兰的RIPE-NIC,负责欧洲地区;位于日本的APNIC ,负责亚太地区[1]

解析器:一台DNS服务器递归代表的情况下,域名解析器,协商使用递归服务,使用查询头位。解析通常需要遍历多个名称服务器,找到所需要的信息。然而,一些解析器的功能更简单地只用一个名称服务器进行通信。这些简单的解析器依赖于一个递归名称服务器(称为“存根解析器”),为他们寻找信息的执行工作

常用的资源记录类型

  1. A 地址 此记录列出特定主机名的 IP 地址。这是名称解析的重要记录。

  2. CNAME 标准名称 此记录指定标准主机名的别名。

  3. MX邮件交换器此记录列出了负责接收发到域中的电子邮件的主机。

  4. NS名称服务器此记录指定负责给定区域的名称服务器。

 

DNS解析过程:

1步、客户端先在地查找解析程序的缓存,可包括从两个可能的来源获取的名称信息:

.从以前的 DNS 查询应答的响应中获取的资源记录

.DNS 客户端服务启动时将c:\windows\system32\drivers\etc\hosts文件预先加载到缓存中的资源记录

 如果此查询在缓存中的项目不匹配,则解析过程将查询 DNS 服务器来解析名称。

2步、查询 DNS 服务器

客户端将查询首选 DNS 服务器。在此进程的初始客户端/服务器查询部分中使用的实际服务器选自全局列表。

DNS 服务器接收到查询时,首先检查它能否根据在服务器的本地配置区域中获取的资源记录信息作出权威性的应答。如果查询的名称与本地区域信息中的相应资源记录匹配,则使用该信息来解析查询的名称,服务器作出权威性的应答。

如果区域信息中没有查询的名称,则服务器检查它能否通过来自先前查询的本地缓存信息来解析该名称。如果从中发现匹配的信息,则服务器使用该信息应答查询。接着,如果首选服务器可使用来自其缓存的完全匹配响应来应答发出请求的客户端,则此次查询完成。

如果查询名称在首选服务器中未发现来自缓存或区域信息的匹配应答,则查询进程可继续进行,使用递归来完全解析名称。这涉及来自其他 DNS 服务器的支持,以帮助解析名称。在默认情况下,DNS 客户端服务要求服务器在返回应答之前,使用递归过程来代表客户端完全解析名称。在大多数情况下,DNS 服务器默认配置为支持递归过程,为了使 DNS 服务器正确执行递归过程,首先需要使用 DNS 域命名空间内有关其他 DNS 服务器的一些有用的联系信息。该信息以根提示的形式提供,它是一个初始资源记录列表,DNS 服务可利用这些记录定位其他 DNS 服务器,它们对 DNS 域命名空间树的根具有绝对控制权。根服务器对于 DNS 域命名空间树中的根域和顶级域具有绝对控制权。使用根提示查找根服务器,DNS 服务器可完成递归的使用。理论上,该进程将启用 DNS 服务器,以定位那些对域命名空间树的任何级别使用的任何其他 DNS 域名具有绝对控制权的服务器。例如,当客户端查询单个 DNS 服务器时,考虑使用递归过程来定位名称host-b.example.microsoft.com。在 DNS 服务器和客户端首次启动,并且没有本地缓存信息可帮助解析名称查询时,就会进行上述过程。根据其配置的区域,它假定由客户端查询的名称是域名,该服务器在本地不包含有关该域名的信息。首先,首选服务器分析全名并确定对于顶级域“com”具有绝对控制权的服务器的位置。随后,对“comDNS 服务器使用迭代查询,以获取“microsoft.com”服务器的参考信息。随后,参考应答从“microsoft.com”服务器传送到“example.microsoft.com”的 DNS 服务器。最后,与服务器example.microsoft.com 建立联系。因为该服务器包括作为其配置区域一部分的查询名称,所以它向启动递归的源服务器作出权威性地应答。当源服务器接收到表明已获得对请求查询的权威性应答的响应时,它将此应答转发给发出请求的客户端,这样递归查询过程就完成了。管执行上述递归查询过程可能需要占用大量资源,但对于 DNS 服务器来说它仍然具有一些性能上的优势。例如,在递归过程中,执行递归查询的 DNS 服务器可获得有关 DNS 域命名空间的信息。该信息由服务器缓存起来并可再次使用,以便提高使用此信息或与之匹配的后续查询的应答速度。随着时间的推移,这些缓存信息会不断增加并占据大量的服务器内存资源,尽管每次 DNS 服务重新启动时这一信息将被清除。

 

DNS迭代查询的工作原理

迭代是在以下条件生效时 DNS 客户端和服务器之间使用的名称解析类型:

客户端申请使用递归过程,但在 DNS 服务器上禁用递归。

查询 DNS 服务器时客户端没有申请使用递归。

来自客户端的迭代请求告知 DNS 服务器:客户端希望直接从 DNS 服务器那里得到最好的应答,无需联系其他 DNS 服务器。使用迭代时,DNS 服务器根据它自身对与查询的名称数据有关的命名空间的特定知识应答客户端。例如,如果 Intranet 上的 DNS 服务器接收到来自本地客户端“www.microsoft.com”的查询,则可能会返回来自其名称缓存的应答。如果查询的名称当前未存储在服务器的名称缓存中,则服务器可能会通过提供参考信息对客户端作出响应,即提供一张与客户端所查询的名称比较接近的其他 DNS 服务器的 NS A 资源记录列表。形成参考性信息的时候,假定 DNS 客户端负责向其他配置的 DNS 服务器继续进行递归查询,以便解析该名称。例如,在大多数情况下,DNS 客户端可能会将其搜索扩展到 Internet 上的根域服务器,以定位对于“com”域具有绝对控制权的 DNS 服务器。一旦联系上 Internet 根服务器,它就会从指向“microsoft.com”域的实际 Internet DNS 服务器的这些 DNS 服务器中获得进一步的递归响应。当客户端收到这些 DNS 服务器的记录时,可以向 Internet 上的外部 MicrosoftDNS 服务器发送其他迭代查询,它们可以提供肯定和权威性的应答。使用迭代时,除了向客户端提供自己最好的应答外,DNS 服务器还可在名称查询解析中提供进一步的帮助。对于大部分迭代查询,如果它的主 DNS 不能辩识该查询,那么客户端使用本地配置的 DNS 服务器列表,在整个 DNS 命名空间中联系其

他名称服务器。

 

DNS缓存的工作原理

DNS 服务器采用递归或迭代来处理客户端查询时,它们将发现并获得大量有关 DNS 命名空间的重要信息。然后这些信息由服务器缓存。

缓存为 DNS 解析流行名称的后续查询提供了加速性能的方法,同时大大减少了网络上与 DNS 相关的查询通信量。

DNS 服务器代表客户端进行递归查询时,它们将暂时缓存资源记录 (RR)。缓存的 RR 包含从 DNS 服务器获得的信息,对于在进行迭代查询以便搜索和充分应答代表客户端所执行的递归查询过程中所获知的 DNS 域名而言,此信息具有绝对的权威性。稍后,当其他客户端发出新的查询,请求与缓存的 RR 匹配的 RR 信息时,DNS 服务器可以使用缓存的 RR 信息来应答它们。

当信息缓存时,生存时间 (TTL) 值适用于所有缓存的 RR。只要缓存 RR TTL 没有到期,DNS 服务器就可继续缓存并再次使用 RR 来应答与这些 RR 相匹配的客户端提出的查询。将大部分区域配置中 RR 所用的缓存 TTL 值指定为“最小的(默认)TTL”,它被设置为用于区域的起始授权机构 (SOA) 资源记录。在默认情况下,最小的 TTL 3,600 秒(1 小时),但是可以进行调整,也就是说如果需要可以在每个 RR 上分别设置各自的缓存 TTL

注意  默认情况下,DNS 服务器使用根提示文件 Cache.dns,该文件存储在服务器计算机的 systemroot\System32\Dns 文件夹中。当服务启动时,该文件的内容预先加载到服务器存储区,并包含运行 DNS 服务器所在的 DNS 命名空间的根服务器的指针信息

 

DNS报文格式:

  DNS报文格式 - vinstars@126 - vinstars@126的博客

标识字段:由客户程序设置并有服务器返回结果。

标志字段:16bit  DNS报文格式 - vinstars@126 - vinstars@126的博客

QR0表示查询报文,1表示响应报文

Opcode:通常值为0(标准查询),其他值为1(反向查询)和2(服务器状态请求)。

AA:表示授权回答(authoritative answer.

TC:表示可截断的(truncated

RD:表示期望递归

RA:表示可用递归

随后3bit必须为0

Rcode:返回码,通常为0(没有差错)和3(名字差错)

问题数字段:指这个DNS请求中待解析的域名数目,一般是1,也即0x0001。对应的DNS响应报文的问题数字段也置同样的值

资源记录数、授权资源记录数、额外资源记录数在DNS请求报文中都为0,在响应报文中视情况而定

查询问题字段:DNS请求报文和对应的响应报文中的查询问题字段是完全一样的

  1. 类型A,值是1,表示获取目标主机的IP地址。

  2. 类型CNAME,值是5,表示获得目标主机的别名。

  3. 类型PTR,值是12,表示反向查询。

  4. 16位查询类通常为1,表示获取因特网地址(IP地址)

    应答字段、授权字段和额外信息字段都使用资源记录(ResourceRecordRR)格式:

  1. NAME是该响应报文对应的DNS请求报文要解析的域名,可能是和查询问题字段中的查询名完全一样,但更多的情况下:考虑到响应报文中的查询问题字段和请求报文完全一样,也就包含了查询名,那么也可采用压缩的方式来存放,即用一个16bit的指针来指示NAME的偏移量。比如0xC00C,二进制就是1100 0000 0000 1100,头两位为11表示这是一个双字节的指针,而不是一个计数字节(上面提到了,查询名里的计数字节为0~63,因此头两位不可能为11),后面的14位则表示这个压缩指针所指的数据离DNS报文(也就是UDP数据报的数据部分,不是指包含DNS报文的UDP数据报的报头)头部的偏移量是12

  2. 生存时间以s为单位

  3. 数据长度是数据的字节数

  4. 响应类和请求报文的查询问题字段中的查询类对应一种是0x0001,这种情况下后面的数据是NAME对应的IP,占4字节;一种是0x0005,这种情况下后面的数据是NAME重定向到的域名(比如www.xiaonei.com重定向到www.renren.com),这里

  5. 数据用查询名中的方式来存放重定向到的域名

     

     

    Telnet协议:是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它属于一种交互式数据流,它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。什么叫登录:分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记账方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个过程被称为'登录'。 远程登录是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。

      Telnet协议进行远程登录时需要满足以下条件:在本地计算机上必须装有包含Telnet协议的客户程序;必须知道远程主机Ip地址或域名;必须知道登录标识与口令。

Telnet远程登录服务分为以下4个过程:

1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机Ip地址或域名

2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVTNet Virtual Terminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包;

3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;

4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接

Telnet中的数据流向:数据信息被用户从本地键盘键入并通过操作系统传到客户机程序,客户机程序将其处理后返回操作系统,并由操作系统经过网络传送到远程机器,远程操作系统将所接收数据传给服务器程序,并经服务器程序再次处理后返回到操作系统上的伪终端入口点,最后,远程操作系统将数据传送到用户正在运行的应用程序,这便是一次完整的输入过程;输出将按照同一通路从服务器传送到客户机。 因为每一次的输入和输出,计算机将切换进程环境好几次,这个开销是很昂贵的。还好用户的键入速率并不算高,这个缺点我们仍然能够接受。

注意:Telnet 没有加密,在网络上数据可见,所以有SSH替代

 

 

SSH协议:为SecureShell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。

SSH 主要由三部分组成:

  1. 传输层协议[SSH-TRANS]:提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

  2. 用户认证协议[SSH-USERAUTH]:用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

  3. 连接协议[SSH-CONNECT]:将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

    SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x2.x SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x2.x。服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。SSH 1.xSSH 2.x在连接协议上有一些差异。一旦建立一个安全传输层连接,客户机就发送一个服务请求。当用户认证完成之后,会发送第二个服务请求。这样就允许新定义的协议可以与上述协议共存。连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发(“隧道技术”)专有 TCP/IP 端口和 X11 连接。SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用 # ps -waux | grep sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。

    服务器端与客户端通讯要经历如下五个阶段:

  1. 版本号协商阶段

    服务器打开端口 22,等待客户端连接。

    客户端向服务器端发起 TCP初始连接请求,TCP连接建立后,服务器向客户端发送第一个报文,包括版本标志字符串,格式为“SSH<主协议版本号>.<次协议版本号><软件版本号>”,协议版本号由主版本号和次版本号组成,软件版本号主要是为调试使用。

    客户端收到报文后,解析该数据包,如果服务器端的协议版本号比自己的低,且客户端能支持服务器端的低版本,就使用服务器端的低版本协议号,否则使用自己的协议版本号。

    客户端回应服务器一个报文,包含了客户端决定使用的协议版本号。服务器比较客户端发来的版本号,决定是否能同客户端一起工作。

    如果协商成功,则进入密钥和算法协商阶段,否则服务器端断开 TCP连接。

    注意: 版本号协商阶段报文都是采用明文方式传输的。

  2. 密钥和算法协商阶段

    服务器端和客户端分别发送算法协商报文给对端,报文中包含自己支持的公钥算法列表、加密算法列表、MACMessage Authentication Code,消息验证码)算法列表、压缩算法列表等;

    服务器端和客户端根据对端和本端支持的算法列表得出最终使用的算法。

    服务器端和客户端利用 DH交换(Diffie-Hellman Exchange)算法、主机密钥对等参数,生成会话密钥和会话 ID

    通过以上步骤,服务器端和客户端就取得了相同的会话密钥和会话ID

    对于后续传输的数据,两端都会使用会话密钥进行加密和解密,保证了数据传送的安全

  3. 在认证阶段,两端会使用会话 ID用于认证过程。  

    注意在协商阶段之前,服务器端已经生成 RSA DSA密钥对,他们主要用于参与会话密钥的生成。 

    客户端向服务器端发送认证请求,认证请求中包含用户名、认证方法、与该认证方法相关的内容(如:password认证时,内容为密码)。

    服务器端对客户端进行认证,如果认证失败,则向客户端发送认证失败消息,其中包含可以再次认证的方法列表。

    客户端从认证方法列表中选取一种认证方法再次进行认证。

    该过程反复进行, 直到认证成功或者认证次数达到上限,服务器关闭连接为止。

    SSH提供两种认证方式:

    password认证:客户端向服务器发出 password认证请求,将用户名和密码加密后发送给服务器;服务器将该信息解密后得到用户名和密码的明文,与设备上保存的用户名和密码进行比较,并返回认证成功或失败的消息。

    publickey 认证:采用数字签名的方法来认证客户端。目前,设备上可以利用RSA DSA两种公共密钥算法实现数字签名。客户端发送包含用户名、公共密钥和公共密钥算法的 publickey 认证请求给服务器端。服务器对公钥进行合法性检查,如果不合法,则直接发送失败消息;否则,服务器利用数字签名对客户端进行认证,并返回认证成功或失败的消息

    SSH2.0还提供了 password-publickey 认证和 any 认证:

    password-publickey 认证:指定该用户的认证方式为 password publickey认证同时满足。客户端版本为 SSH1的用户只要通过其中一种认证即可登录;客户端版本为 SSH2的用户必须两种认证都通过才能登录。

    any认证:指定该用户的认证方式可以是 password,也可以是 publickey

  4. 会话请求阶段

    服务器等待客户端的请求;

    认证通过后,客户端向服务器发送会话请求;

    服务器处理客户端的请求。请求被成功处理后, 服务器会向客户端回应 SSH_SMSG_SUCCESS包,SSH进入交互会话阶段;否则回应SSH_SMSG_FAILURE包,表示服务器处理请求失败或者不能识别请求。

  5. 交互会话阶段

    在这个模式下,数据被双向传送:

    客户端将要执行的命令加密后传给服务器;

    服务器接收到报文,解密后执行该命令,将执行的结果加密发还给客户端;

    客户端将接收到的结果解密后显示到终端上.

     

FTP协议:文件传输协议使得主机间可以共享文件。 FTP 使用TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输FTP属于成块式数据流,控制连接使用类似TELNET协议在主机间交换命令和消息。文件传输协议是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层FTP客户机可以给服务器发出命令来下载文件,上传文件,创建或改变服务器上的目录FTP服务一般运行在2021两个端口。端口20用于在客户端服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。FTP ,尽管可以直接被终端用户使用,但其应用主要还是通过程序实现。FTP 控制帧即指 TELNET 交换信息,包含 TELNET 命令和选项。然而,大多数 FTP 控制帧是简单的 ASCII 文本,可以分为 FTP 命令或 FTP 消息。 FTP消息是对 FTP 命令的响应,它由带有解释文本的应答代码构成。

FTP有两种使用模式:主动模式和被动模式

1.客户端打开一个随机的端口(端口号大于1023,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,在客户端源端口为随机端口x,在服务器端口为21当经过TCP的三次握手后,控制信道被建立

2.然后客户端通过控制信道发送控制命令给服务器端,告诉服务器自己的IP地址和本地端口(Y=e乘以256+f),用于建立第二信道即数据信道,数据信道用于数据传输,此控制命令告诉服务器,客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。

3.服务器收到该信息后,打开20号源端口并且建立和客户端数据端口(Y)的连接。

4.客户端通过本地的数据端口(Y)建立一个和服务器20号端口的连接,然后向服务器发送一个ACK应答,告诉服务器它已经建立好了一个连接。

 

1.客户端打开一个随机的端口(端口号大于1023,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,在客户端源端口为随机端口x,在服务器端口为21当经过TCP的三次握手后,控制信道被建立

2.然后客户端通过控制信道发送控制命令给服务器端,询问服务器是否支持PASV模式

3.服务器收到该信息后,通过控制信道告诉客户端自己支持Passive模式,并把自己的端口和IP发给客户端(Y=e乘以256+F

4.客户端收到服务器返回的信息后,马上在本地打开一个随机端口,并与服务器的Y端口进行连接,完成三次握手后,建立数据通道。

注意:FTP并不安全,数据在网络可见,sftpSecure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp ftp 有着几乎一样的语法和功能。SFTP SSH的一部份,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File TransferProtocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP

 

HTTP协议:超文本传送协议(HTTP-Hypertext transfer protocol) 定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。特点

1、支持客户/服务器模式。支持基本认证和安全认证。

2 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GETHEADPOST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

4HTTP 0.91.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象。

5、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大

 

HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:

http://host[":"port][abs_path]

 http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成

 

HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。每一个报头域都是由名字+“:”+空格+ 组成,消息报头域的名字是大小写无关的

1、普通报头在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息。

Cache-Control   用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为Pragma

 请求时的缓存指令包括:no-cache(用于指示请求或响应消息不能缓存)、no-storemax-agemax-stalemin-freshonly-if-cached;

响应时的缓存指令包括:publicprivateno-cacheno-storeno-transformmust-revalidateproxy-revalidatemax-ages-maxage.为了指示IE浏览器(客户端)不要缓存页面,服务器端的JSP程序可以编写如下:response.sehHeader("Cache-Control","no-cache");//response.setHeader("Pragma","no-cache");作用相当于上述代码,通常两者//合用这句代码将在发送的响应消息中设置普通报头域:Cache-Control:no-cache,Date普通报头域表示消息产生的日期和时间

Connection普通报头域允许发送指定连接的选项。例如指定连接是连续,或者指定“close”选项,通知服务器,在响应完成后,关闭连接

2、请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。

 Accept请求报头域用于指定客户端接受哪些类型的信息。egAcceptimage/gif,表明客户端希望接受GIF图象格式的资源;Accepttext/html,表明客户端希望接受html文本。

 Accept-Charset请求报头域用于指定客户端接受的字符集。egAccept-Charset:iso-8859-1,gb2312.如果在请求消息中没有设置这个域,缺省是任何字符集都可以接受。

 Accept-Encoding请求报头域类似于Accept,但是它是用于指定可接受的内容编码。egAccept-Encoding:gzip.deflate.如果请求消息中没有设置这个域服务器假定客户端对各种内容编码都可以接受。

 Accept-Language请求报头域类似于Accept,但是它是用于指定一种自然语言。egAccept-Language:zh-cn.如果请求消息中没有设置这个报头域,服务器假定客户端对各种语言都可以接受。

 Authorization请求报头域主要用于证明客户端有权查看某个资源。当浏览器访问一个页面时,如果收到服务器的响应代码为401(未授权),可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证。

Host请求报头域主要用于指定被请求资源的Internet主机和端口号,发送请求时,该报头域是必需的,它通常从HTTP URL中提取出来的,在浏览器中输入:http://www.guet.edu.cn/index.html

User-Agent我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名称和版本,你所使用的浏览器的名称和版本,这往往让很多人感到很神奇,实际上,服务器应用程序就是从User-Agent这个请求报头域中获取到这些信息。User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。不过,这个报头域不是必需的,如果我们自己编写一个浏览器,不使用User-Agent请求报头域,那么服务器端就无法得知我们的信息了。

3 响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。

 Location响应报头域用于重定向接受者到一个新的位置。Location响应报头域常用在更换域名的时候。

 Server响应报头域包含了服务器用来处理请求的软件信息。与User-Agent请求报头域是相对应的。

4、实体报头 请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。实体报头定义了关于实体正文(eg:有无实体正文)和请求所标识的资源的元信息。

 Content-Encoding实体报头域被用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。Content-Encoding这样用于记录文档的压缩方法,\

 Content-Language实体报头域描述了资源所用的自然语言。没有设置该域则认为实体内容将提供给所有的语言阅读

 Content-Length实体报头域用于指明实体正文的长度,以字节方式存储的十进制数字来表示。

 Content-Type实体报头域用语指明发送给接收者的实体正文的媒体类型。

5Expires实体报头域给出响应过期的日期和时间。为了让代理服务器或浏览器在一段时间以后更新缓存中(再次访问曾访问过的页面时,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期的时间。

 

请求方法

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式:

OPTIONS - 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。

HEAD- 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

GET - 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在web app.中。其中一个原因是GET可能会被网络蜘蛛等随意访问。

POST - 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

PUT - 向指定资源位置上传其最新内容。

DELETE - 请求服务器删除Request-URI所标识的资源。

TRACE- 回显服务器收到的请求,主要用于测试或诊断。

CONNECT - HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

PATCH - 用来将局部修改应用于某一资源,添加于规范RFC5789

方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405Method Not Allowed);当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501Not Implemented)。

HTTP服务器至少应该实现GETHEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当符合下述的方法各自的语义定义。此外,除了上述方法,特定的HTTP服务器还能够扩展自定义的方法。

 

响应头,客户端向服务器发送一个请求,服务器以一个状态行作为响应,响应的内容包括:消息协议的版本、成功或者错误编码、服务器信息、实体元信息以及必要的实体内容。根据响应类别的类别,服务器响应里可以含实体内容,但不是所有的响应都有实体内容。

响应头第一行也称为状态行,格式如下:

HTTP-Version 空格Status-Code 空格 Reason-Phrase CRLFHTTP- Version表示HTTP版本,例如为HTTP/1.1Status-Code是结果代码,用三个数字表示。Reason-Phrase是个简单的文本描述,解释Status-Code的具体原因。Status-Code用于机器自动识别,Reason-Phrase用于人工理解。Status-Code的第一个数字代表响应类别,状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx
:指示信息--表示请求已接收,继续处理
2xx
:成功--表示请求已被成功接收、理解、接受
3xx
:重定向--要完成请求必须进行更进一步的操作
4xx
:客户端错误--请求有语法错误或请求无法实现
5xx
:服务器端错误--服务器未能实现合法的请求

 

响应头域,服务器需要传递许多附加信息,这些信息不能全放在状态行里。因此,需要另行定义响应头域,用来描述这些附加信息。响应头域主要描述服务器的信息和Request-URI的信息。

 

HTTPCookies就是存储在用户主机浏览器中的一小段文本文件。Cookies是纯文本形式,它们不包含任何可执行代码。http客户端和服务器端的连接是瞬时的,只要服务器端响应完毕,连接就断掉。一个Web页面或服务器告之浏览器来将这些信息存储并且基于一系列规则在之后的每个请求中都将该信息返回至服务器。Web服务器之后可以利用这些信息来标识用户。多数需要登录的站点通常会在你的认证信息通过后来设置一个cookie,之后只要这个cookie存在并且合法,你就可以自由的浏览这个站点的所有部分。再次,cookie只是包含了数据,就其本身而言并不有害。

 

HTTP的多连接,HTTP的每个文件使用一条TCP!,即使是一个 img标签 或者什么的 也是一条TCP,所以我们经常看到网页的内容是慢慢加载出来的。

 

 

SMTP协议(Simple MailTransfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。SMTP 独立于特定的传输子系统,且只需要可靠有序的数据流信道支持。SMTP 重要特性之一是其能跨越网络传输邮件,即“ SMTP 邮件中继”。通常,一个网络可以由公用互联网上 TCP 可相互访问的主机、防火墙分隔的 TCP/IP 网络上 TCP 可相互访问的主机,及其它 LAN/WAN 中的主机利用非 TCP传输层协议组成。使用 SMTP ,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。在这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间中继器或网关主机。SMTP服务器基于DNS中的邮件交换(MX)记录路由电子邮件电子邮件系统发邮件时是根据收信人的地址后缀来定位邮件服务器的。SMTP通过用户代理程序(UA)完成邮件的编辑、收取和阅读等功能;通过邮件传输代理程序(MTA)将邮件传送到目的地。域名服务系统(DNS)的邮件交换服务器可以用来识别出传输邮件的下一条 IP 地址。在传输文件过程中使用端口:25,它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。

 

跟大多数应用层协议一样,SMTP也存在两个 端在发信人的邮件服务器上执行的客户端和在收信人的邮件服务器上执行的服务器端。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服 务器在向其他邮件服务器发送邮件消息时,它是作为SMTP客户在运行。当一个邮件服务器从其他邮件服务器接收邮件消息时,它是作为SMTP服务器在运行。首先,运行在发送端邮件服务器主机上的SMTP客户,发起建立一个到运行在接收端邮件服务 器主机上的SMTP服务器端口号25之间的TCP连接。如果接收邮件服务器当前不在工作,SMTP客户就等待一段时间后再尝试建立该连接。这个连接建立之 后,SMTP客户和服务器先执行一些应用层握手操作。就像人们在转手东西之前往往先自我介绍那样,SMTP客户和服务器也在传送信息之前先自我介绍一下。 在这个SMTP握手阶段,SMTP客户向服务器分别指出发信人和收信人的电子邮件地址。彼此自我介绍完毕之后,客户发出邮件消息。SMTP可以指望由 TCP提供的可靠数据传输服务把该消息无错地传送到服务器。如果客户还有其他邮件消息需发送到同一个服务器,它就在同一个TCP连接上重复上述过程; 则,它就指示TCP关闭该连接。

  SMTP通常有两种工作模式:发送SMTP和接收SMTP。具体工作方式为:发送SMTP在接到用户的邮件请求后,判断此邮件是否为本地邮件,若是直接投送到用户的邮箱,否则向dns查询远端邮件服务器MX纪录,并建立与远端接收SMTP之间的一个双向传送通道,此后SMTP命令由发送SMTP发出,由接收SMTP接收,而应答则反方面传送。一旦传送通道建立SMTP发送者发送MAIL命令指明邮件发送者。如果SMTP接收者可以接收邮件则返回OK应答。SMTP发送者再发出RCPT命令确认邮件是否接收到。如果SMTP接收者接收,则返回OK应答;如果不能接收到,则发出拒绝接收应答(但不中止整个邮件操作),双方将如此重复多次。当接收者收到全部邮件后会接收到特别的序列,如果接收者成功处理了邮件,则返回OK应答即可

 

POP3协议: PostOffice Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议是TCP/IP协议族中的一员,由RFC 1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件.POP 协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或 MAC。一旦邮件发送到 PC 机或MAC上,邮件服务器上的邮件将会被删除。但目前的POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。

  POP3三种认证状态,处理状态和更新状态。当客户机与服务器建立连接时,客户机向服务器发送自己身份(这里指的是账户和密码)并由服务器成功确认,即客户端由认可状态转入处理状态,在完成列出未读邮件等相应的操作后客户端发出quit命令,退出处理状态进入更新状态,开始下载未阅读过的邮件到计算机本地之后最后重返认证状态确认身份后断开与服务器的连接

 POP3协议默认端口:110、默认传输协议:TCP、适用的构架结构:C/S、访问模式:离线访问

 

 

IMAP协议:InternetMail Access Protocol(缩写为IMAP,以前称作交互邮件访问协议(interactive mail access protocol))IMAP斯坦福大学1986年开发的一种邮件获取协议。它的主要作用是邮件客户端(例如MS OutlookExpress)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。当前的权威定义是RFC3501IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,就可以维护自己在服务器上的邮件目录;可以直接抓取邮件的特定部分。

IMAP支持连接和断开两种操作模式。在IMAP中,只要用户界面是活动的和下载信息内容是需要的,客户端就会一直连接在服务器上。对于有很多或者很大邮件的用户来说,使用IMAP4模式可以获得更快的响应时间。支持多个客户同时连接到一个邮箱。POP3协议假定邮箱当前的连接是唯一的连接。相反,IMAP4协议允许多个用户同时访问邮箱同时提供一种机制让客户能够感知其他当前连接到这个邮箱的用户所做的操作。支持访问消息中的MIME部分和部分获取。几乎所有的Internet邮件都是以MIME格式传输的。MIME允许消息包含一个树型结构,这个树型结构的叶子节点都是单一内容类型而非叶子节点都是多块类型的组合。IMAP4协议允许客户端获取任何独立的MIME部分和获取信息的一部分或者全部。这些机制使得用户无需下载附件就可以浏览消息内容或者在获取内容的同时浏览。支持在服务器保留消息状态信息。通过使用在IMAP4协议中定义的标志客户端可以跟踪消息状态,例如邮件是否被读取,回复,或者删除。这些标识存储在服务器,所以多个客户在不同时间访问一个邮箱可以感知其他用户所做的操作。支持在服务器上访问多个邮箱。IMAP4客户端可以在服务器上创建,重命名,或删除邮箱(通常以文件夹形式显现给用户)。支持多个邮箱还允许服务器提供对于共享和公共文件夹的访问。支持服务器端搜索。IMAP4提供了一种机制给客户使客户可以要求服务器搜索符合多个标准的信息。在这种机制下客户端就无需下载邮箱中所有信息来完成这些搜索。

 

SSL协议(SecureSockets Layer 安全套接层),及其继任者传输层安全(Transport Layer SecurityTLS)是为网络通信提供安全及数据完整性的一种安全协议。TLSSSL在传输层对网络连接进行加密。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol),它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol),它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL有两个认证阶段:

 服务器认证阶段:1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;

2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;

3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;

4)服务器回复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。

 用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证

 

HTTPSHTTP overSSL)实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPSSSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。。https是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,https的安全基础是SSL,因此加密的详细内容请看SSL。它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTPTCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。它的安全保护依赖浏览器的正确实现以及服务器软件、实际加密算法的支持.一种常见的误解是“银行用户在线使用https:就能充分彻底保障他们的银行卡号不被偷窃。”实际上,与服务器的加密连接中能保护银行卡号的部分,只有用户到服务器之间的连接及服务器自身。并不能绝对确保服务器自己是安全的,这点甚至已被攻击者利用,常见例子是模仿银行域名的钓鱼攻击。少数罕见攻击在网站传输客户数据时发生,攻击者尝试窃听数据于传输中

 

 

SIP协议(SessionInitiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。SIP与负责语音质量的资源预留协议(RSVP) 互操作。它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议(LDAP)、负责身份验证的远程身份验证拨入用户服务 (RADIUS) 以及负责实时传输的 RTP 等多个协议。SIP 的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活性,也就意味着SIP可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和 Web 会议。SIP消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员而言更加直观。SIP如同电子邮件客户机一样重用 MIME 类型描述,因此与会话相关的应用程序可以自动启动。SIP 重用几个现有的比较成熟的 Internet 服务和协议,如 DNSRTPRSVP 等。不必再引入新服务对 SIP 基础设施提供支持,因为该基础设施很多部分已经到位或现成可用。对 SIP 的扩充易于定义,可由服务提供商在新的应用中添加,不会损坏网络。网络中基于 SIP 的旧设备不会妨碍基于 SIP 的新服务。例如,如果旧 SIP 实施不支持新的 SIP 应用所用的方法/标头,则会将其忽略。

SIP 独立于传输层。因此,底层传输可以是采用 ATM IPSIP 使用用户数据报协议(UDP) 以及传输控制协议(TCP),将独立于底层基础设施的用户灵活地连接起来。SIP 支持多设备功能调整和协商。如果服务或会话启动了视频和语音,则仍然可以将语音传输到不支持视频的设备,也可以使用其他设备功能,如单向视频流传输功能

SIP 压缩机制主要是通过改变 SIP 消息的长度来降低时延。典型的 SIP 消息的大小由几百到几千字节,为了适合在窄带无线信道上传输,IMSSIP进行了扩展,支持SIP消息的压缩。当无线信道一定时, 一条SIP消息所含帧数 k仅取决于消息大小。从时延模型可以看出,不仅影响 SIP 消息传输时延, 还影响SIP重传的概率, 对自适应的定时器来说,k还成了影响定时器初值的关键因素。

SIP 会话使用多达四个主要组件:SIP 用户代理、SIP 注册服务器、SIP 代理服务器和 SIP 重定向服务器。这些系统通过传输包括了 SDP 协议(用于定义消息的内容和特点)的消息来完成 SIP 会话。下面概括性地介绍各个 SIP 组件及其在此过程中的作用。

  1. SIP 用户代理(UA) 是终端用户设备,如用于创建和管理 SIP 会话的移动电话、多媒体手持设备、PCPDA 等。用户代理客户机发出消息。用户代理服务器对消息进行响应。

  2. SIP 注册服务器是包含域中所有用户代理的位置的数据库。在 SIP 通信中,这些服务器会检索出对方的 IP 地址和其他相关信息,并将其发送到 SIP 代理服务器。

  3. SIP 代理服务器接受 SIP UA 的会话请求并查询 SIP 注册服务器,获取收件方 UA 的地址信息。然后,它将会话邀请信息直接转发给收件方 UA(如果它位于同一域中)或代理服务器(如果 UA 位于另一域中)。

  4. SIP 重定向服务器允许 SIP 代理服务器将 SIP 会话邀请信息定向到外部域。SIP 重定向服务器可以与 SIP 注册服务器和 SIP 代理服务器同在一个硬件上。

     

     

    H.323基于IP可以充分利用网络资源,其组成元素包括视频终端、多点控制单元、关守和网关,可以将视频引到办公桌面,利用数据实时交互功能,完成协调办公,使用户从根本上摆脱开会必须去固定会议室的限制,实现真正意义上的视频通信,并且互联互通性好,支持所有厂家设备均能互联互通。此阶段的视频会议的特点是通过软硬结合的方式实现

     H.323是一个框架性建设,它涉及到终端设备、视频、音频和数据传输、通信控制、网络接口方面的内容,还包括了组成多点会议的多点控制单元(MCU)、多点控制器(MC)、多点处理器(MP)、网关以及关守等设备。它的基本组成单元是"",在H.323系统中,所谓域是指一个由关守管理的网关、多点控制单元(MCU)、多点控制器(MC)、多点处理器(MP)和所有终端组成的集合。一个域最少包含一个终端,而且必须有且只有一个关守。H.323系统中各个逻辑组成部份称为H.323的实体,其种类有:终端、网关、多点控制单元(MCU)、多点控制器(MC)、多点处理器(MP)。其中终端、网关、多点控制单元(MCU)是H.323中的终端设备,是网络中的逻辑单元。终端设备是可呼叫的和被呼叫的,而有些实体是不通被呼叫的,如关守。

  1. H.323终端是H.323定义的最基本组件。所有的H.323终端也必须支持H.245标准,H.245标准用于控制信道使用情况和信道性能。在H.323终端中的其它可选组件是图像编解码器、T.120数据会议协议以及MCU功能。

  2. 网关也是H.323会议系统的一个可选组件。网关提供很多服务,其中包含H.323会议节点设备与其它ITU标准相兼容的终端之间的转换功能。这种功能包括传输格式(如H.250.0H.221)和通信规程的转换(如H.245H.242)。另外,在分组网络端和电路交换网络端之间,网关还执行语音和图像编解码器转换工作,以及呼叫建立和拆除工作。终端使用H.245H.225.0协议与网关进行通信。采用适当的解码器,H.323网关可支持符合H.310H.321H.322以及V.70标准终端。

  3. 关守是H.323系统的一个可组选件,其功能是向H.323节点提供呼叫控制服务。当系统中存在H.323关守时,其必须提供以下四种服务地址:地址翻译、带宽控制、许可控制与区域管理功能。带宽管理、呼叫鉴权、呼叫控制信令和呼叫管理等为关守的可选功能。虽然从逻辑上,关守和H.323节点设备上分离的,但是生产商可以将关守的功能融入H.323终端、网关和多点控制单元等物理设备中。由单一关守管理的所有终端、网关和多点控制单元的集合称之为H.323域。 多点控制单元支持三个以上节点设备的会议,在H.323系统中,一个多点控制单元由一个多点控制器MC和几个多点处理器MP组成,但可以不包含MPMC处理端点间的H.245控制信息,从而决定它对视频和音频的通常处理能力。在必要的情况下,MC还可以通过判断哪些视频流和音频流需要多播来控制会议资源。MC并不直接处理任何媒体信息流,而将它留给MP来处理。MP对音频、视频或数据信息进行混合、切换和处理。MCMP可能存在于一台专用设备中或作为其它的H.323组件的一部份。

  4. 音频编码器对从麦克风输入的音频信息进行编码传输,在接收端进行解码以便输出到扬声器,音频信号包含数字化且压缩的语音。H.323支持的压缩算法符合ITU标准。为进行语音压缩,H.323终端必须支持G.711语音标准,传送和接收A律和u律。其它音频编解码器标准如G.722G.723.1G.729.AMPEG-1音频则可选择支持。编码器使用的音频算法必须由H.245来确定。H.323终端应能对本身所具有的音频编解码能力进行非对称操作,如以G.711发送,以G.728接收。

  5. 视频编解码器在视频源处将视频信息进行编码传输,在接收端进行解码显示。虽然视频功能可选,但任何具有视频功能的H.323终端必须支持H.261QCIF格式;支持H.261的其它格式以及可选支持H.263标准。在分组网络上,使用H.261H.263编解码无需BCH纠错和纠错帧。数据会议T.120是可选功能。当支持数据会议时,数据会议可出现协同工作,如白板、应用共享、文件传输、静态图像传输、数据库访问、音频图像会议等。通过H.245处理后也可以使用其它的数据应用和协议

  6. 245层提供端到端信令,以保证H.323终端的正常通信。所采用的协议为H.245(多媒体通信控制协议),它定义了请求、应答、信令和指示四种信息,通过各种终端间进行通信能力协商,打开/关闭逻辑信道,发送命令或指示等操作,完成对通信的控制。

  7. 225层将视频、音频、控制等数据格式化并发送,同时从网络接收数据。另外,还负责处理一些诸如逻辑分帧、加序列号、错误检测等功能。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值