第1章 网络基础
1.1 IP地址分类
IP地址的类别-按IP地址数值范围划分
IP地址的类别-按IP地址用途分类
IP地址的类别-按网络通信方式划分
1.2 局域网上网原理过程
DHCP原理过程详情: http://www.zyops.com/dhcp-working-procedure
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、网关地址、DNS服务器地址等信息,并能够提升地址的使用率。
1.3 DHCP服务原理
1.3.1 DHCP服务器IP分配方式
DHCP服务器提供三种IP分配方式:
l 自动分配(Automatic Allocation)
自动分配是当DHCP客户端第一次成功地从DHCP服务器端分配到一个IP地址之后,就永远使用这个地址。
l 动态分配(Dynamic Allocation)
动态分配是当DHCP客户端第一次从DHCP服务器分配到IP地址后,并非永久地使用该地址,每次使用完后,DHCP客户端就得释放这个IP地址,以给其他客户端使用。
l 手动分配
手动分配是由DHCP服务器管理员专门为客户端指定IP地址。
1.3.2 DHCP服务工作流程
DHCP客户机在启动时,会搜寻网络中是否存在DHCP服务器。如果找到,则给DHCP服务器发送一个请求。DHCP服务器接到请求后,为DHCP客户机选择TCP/IP配置的参数,并把这些参数发送给客户端。 如果已配置冲突检测设置,则DHCP服务器在将租约中的地址提供给客户机之前会使用Ping测试作用域中每个可用地址的连通性。这可确保提供给客户的每个IP地址都没有被使用手动TCP/IP配置的另一台非DHCP计算机使用。
1.4 DNS服务原理
客户端用户从web浏览器里输入网站后看到网站的完整内容的完整访问过程
01.客户端用户在浏览器中输入www.znix.top 网站地址后回车,系统会首先查找本地host文件以及DNS缓存信息查找是否存在www.znix.top 对应的ip解析记录。如果有就直接获取ip地址,然后去访问这个ip地址对应的域名服务器,一般第一次请求时,DNS缓存是没有解析记录的。
windows 系统中的dns缓存
#windows 系统查看与刷新缓存记录信息
ipconfig /flushdns <-- 清除缓存命令
ipconfig /displaydns <-- 显示缓存命令
#显示hosts文件域名与地址映射关系配置信息(hosts文件位置)
c:\windows\system32\drivers\etc\hosts
Linux 系统中的dns缓存
#缓存方式
nccd 或者 BIND 或者 dnsmasq
#hosts文件 位置
/etc/hossts
02.如果客户端本地缓存或hosts 没有对应的www.znix.top 域名的解析记录,那么,系统会把浏览器的解析请求交给在客户端本地设置的DNS服务器地址( 通常称此DNS为LDNS,即:localDNS )解析,如果LDNS服务器的本地缓存有对应的解析记录就会直接返回IP地址,如果没有,LDNS会负责继续请求其它的DNS服务器
03.LDNS 会从DNS 系统的(.)根开始请求www.znix.top 域名的解析,经过一系列的查找各个层级的DNS 服务器,最终会查到etiantian .org 域名对应的授权DNS 服务器,而这个授权DNS 服务器正是企业购买域名时用于管理域名解析的服务器,这个服务器会有www.znix.top对应的IP地址解析记录( A记录),如果此时没有,就表示企业的运维人员没有给www.znix.top 域名做解析。
04.www.znix.top 域名对应的授权DNS 服务器会把www.znix.top 对应的最终IP 解析记录(例如1.1.1.1)发给LDNS
05.LDNS 把收到的来自授权DNS 服务器www.znix.top 对应的IP 解析记录发给客户端浏览器,并且在LDNS本地把域名和IP的对应解析缓存起来,以便下一次更快的返回相同解析请求的记录。
06.客户端浏览器获取到www.znix.top的对应的IP地址,接下来,浏览器会请求获得的IP地址对应的web 服务器,web 服务器收到客户的请求并响应处理,将客户请求的内容返回给客户端浏览器,至此,一次访问浏览器网页的完整过程完成了其中此步骤客户端获取到服务器IP地址后,利用浏览器请求web服务器获取网页信息的过程称为HTTP 原理
1.4.1 DNS能干什么
Ø A记录:
将域名指向一个IPv4地址(例如:10.10.10.10),需要增加A记录
Ø CNAME记录:
如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录(CDN加速)
Ø MX记录:
建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录
Ø NS记录:
域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录
Ø TXT记录:
可任意填写(可为空),通常用做SPF记录(反垃圾邮件)使用
Ø AAAA记录:
将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录
Ø PTR记录:
设置PTR记录,反向解析,即把IP地址解析为对应的域名,和A记录的解析相反(邮件服务等)
Ø 显性URL:
将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址(例如:将www.net.cn显性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址为:www.hichina.com)。
Ø 隐性URL:
与显性URL类似,但隐性转发会隐藏真实的目标地址(例如:将www.net.cn隐性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址仍然为:www.net.cn)。
1.5 递归查询和迭代查询的区别
1.5.1 递归查询
递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
1.5.2 迭代查询
DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。
1.6 DNS的相关命令
1.6.1 dig命令
命令 |
LDNS |
记录类型 |
网址 |
dig |
@8.8.8.8 |
A |
www.baidu.com |
[root@clsn ~]# dig @8.8.8.8 gov.cn
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> @8.8.8.8 gov.cn
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51019
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;gov.cn. IN A
;; AUTHORITY SECTION:
gov.cn. 6855 IN SOA a.dns.cn. root.cnnic.cn. 2021852429 7200 3600 2419200 21600
;; Query time: 11 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Sep 28 18:59:49 2017
;; MSG SIZE rcvd: 77
#dig @8.8.8.8 MX baidu.com
说明:通过dig命令查看解析原理,可以看到全球13台根服务器
1.6.2 nslookup
[root@clsn ~]# nslookup <- 直接解析指定域名对应的地址
> www.gov.cn
Server: 223.5.5.5 <- 解析域名信息的DNS服务器信息
Address: 223.5.5.5#53
Non-authoritative answer:
www.gov.cn canonical name = www.gov.cn.qingcdn.com.
www.gov.cn.qingcdn.com canonical name = uz91.v.qingcdn.com. <-域名的CNAME 信息
Name: uz91.v.qingcdn.com
Address: 125.39.21.26 <- 域名对应的ip地址
Name: uz91.v.qingcdn.com
Address: 125.39.21.6
Name: uz91.v.qingcdn.com
Address: 125.39.21.4
Name: uz91.v.qingcdn.com
Address: 125.39.21.5
Name: uz91.v.qingcdn.com
1.6.3 host命令
[root@clsn ~]# host www.gov.cn - 直接解析指定域名对应的地址
www.gov.cn is an alias for www.gov.cn.qingcdn.com.
www.gov.cn.qingcdn.com is an alias for uz91.v.qingcdn.com.
uz91.v.qingcdn.com has address 125.39.21.7
uz91.v.qingcdn.com has address 125.39.21.26
uz91.v.qingcdn.com has address 125.39.21.6
1.6.4 ping 命令
[root@clsn ~]# ping www.gov.cn -c1
PING uz91.v.qingcdn.com (125.39.21.7) 56(84) bytes of data.
64 bytes from no-data (125.39.21.7): icmp_seq=1 ttl=128 time=27.6 ms
--- uz91.v.qingcdn.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 78ms
rtt min/avg/max/mdev = 27.639/27.639/27.639/0.000 ms
ping 命令参数
-c 包的个数
-i 设置间隔时间
-s 数据包的大小
-q 中间的信息不显示
-f 急速ping
1.7 网卡信息
[root@clsn ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #第一块网卡逻辑设备名
HWADDR=00:0c:29:a8:e4:14 #硬件地址,MAC地址(vm克隆后删除)
TYPE=Ethernet #上网类型 -以太网
UUID=a3b2265e-9dac-4a29-aff6-d2e88eb28cfc#通用唯一标识码(vm克隆后删除)
ONBOOT=yes #开机自启动
NM_CONTROLLED=yes #网络管理控制参数 设置为no (centos6)
BOOTPROTO=none #ip获取方式
IPADDR=10.0.0.201 #ip地址
NETMASK=255.255.255.0 #掩码
GATEWAY=10.0.0.2 #网关
USERCTL=no
PEERDNS=yes #确认网卡配置文件中的DNS 配置优先与/etc/resolv.conf
IPV6INIT=no
DNS2=223.6.6.6 #DNS2
DNS1=223.5.5.5 #DNS1
1.7.1 网卡详细配置文件信息
更多网卡配置相关知识
less /usr/share/doc/initscripts-*/sysconfig.txt
1.8 网卡生效方式
推荐的网卡重启方式
ifdown eth0 && ifup wth0
配置那块网卡,重启哪块网卡
对所有的网卡进行重启(工作场景中谨慎使用)
/etc/init.d/network restart
注意:
① 网卡如果配置DNS,会优先于/etc/resolv.conf 的配置生效,并且重启网卡,会把/etc/resolv.conf里的覆盖
② 网卡如果没有配置DNS,那么在/etc/resolv.conf 里配置会生效
③ 如果有多块网卡(DHCP 获取方式)时候,可能会覆盖/etc/resolv.conf 里已有的配置。
1.9 主机名修改规范
第一步 首先,利用命令临时修改主机名
[root@clsn ~]# hostname clsn
第二步 其次,修改network 配置文件,使主机名永久生效
[root@clsn ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=clsn
第三步 最后,修改hosts文件,建立主机名与环回ip的映射关系
[root@clsn ~]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost.localdomain localhost4 clsn
::1 localhost.localdomain localhost.localdomain localhost6 localhost6.localdomain6 localhost
127.0.0.1 clsn
1.10 linux下的路由配置
1.10.1 配置默认网关
添加:
[root@clsn ~]# route add default gw 10.0.0.254
[root@clsn ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
删除:
[root@clsn ~]# route del default gw 10.0.0.254
[root@clsn ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
1.10.2 静态网段 (临时的,重启网卡失效)
添加:
[root@clsn ~]# route add -net 192.168.0.0 netmask 255.255.0.0 gw 10.0.0.2
[root@clsn ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
192.168.0.0 10.0.0.2 255.255.0.0 UG 0 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
删除:
[root@clsn ~]# route del -net 192.168.0.0 netmask 255.255.0.0 gw 10.0.0.2
[root@clsn ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
1.10.3 永久生效的方法
1.10.3.1 方法一 生成配置文件,将路由信息写入。
/etc/sysconfig/network-scipts/route-eth0
172.16.1.0/24 via 192.168.1.1
1.10.3.2 方法二
/etc/sysconfig/static-routes
any net 172.16.1.0/24 gw 192.168.1.1
1.10.3.3 方法三 将命令写入开机自启动文件
/etc/rc.local
1.10.4 默认静态主机路由添加
route add -host 192.168.2.13 dev eth2
route del -host 192.168.2.13 dev eth2
1.11 配置虚拟ip地址方法
1.11.1 配置虚拟ip地址(别名ip)
命令格式:
ifconfig eth0:0 10.0.0.101/24 up 配置别名ip,并启用
ifconfig eth0:0 10.0.0.101/24 down 停用制定的别名IP
示例:
[root@clsn ~]# ifconfig eth0:0 10.0.0.101/24 up
[root@clsn ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:A8:E4:14
inet addr:10.0.0.201 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fea8:e414/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:49465 errors:0 dropped:0 overruns:0 frame:0
TX packets:45089 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20224063 (19.2 MiB) TX bytes:7714321 (7.3 MiB)
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:A8:E4:14
inet addr:10.0.0.101 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:38 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2598 (2.5 KiB) TX bytes:2598 (2.5 KiB)
说明:heartbeat 高可用(vIP)早期用的别名IP,Centos6下heatbeat用的是辅助ip。
使别名ip网卡重启不失效:
写成能配置文件(/etc/sysconfig/network-scripts/ifcfg-eth0:1)
1.11.2 配置辅助ip地址方法:
表示配置多个ip在同一网卡上。
配置命令格式:
ip addr add 10.0.0.13/24 dev eth0:1 添加
ip addr add 10.0.0.14/24 broadcast 10.0.0.255 dev eth0:1 添加
ip addr del 10.0.0.13/24 dev eth0:1 删除
ip addr del 10.0.0.14/24 broadcast 10.0.0.255 dev eth0:1 删除
说明:辅助ip形式在keepalived高可用服务中一直使用,都是用的辅助ip。
辅助ip的方式是未来趋势。
示例:
[root@clsn ~]# ip addr add 10.0.0.102/24 dev eth0:1
[root@clsn ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:a8:e4:14 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0
inet 10.0.0.102/24 scope global secondary eth0
inet6 fe80::20c:29ff:fea8:e414/64 scope link
valid_lft forever preferred_lft forever
删除:
[root@clsn ~]# ip addr del 10.0.0.102/24 dev eth0:1
1.12 【企业面试题】
1.12.1 统计访问服务器ip的ESTABLISHED连接数最多的ip?
方法一:[root@clsn ~]# netstat|awk -F "[ :]+" '/EST/{print $6}' |sort |uniq -c|sort -rn -k1
1 10.0.0.1
方法二:[root@clsn ~]# netstat|awk '/^tcp/{s[$NF]++}END{for(a in s)print a,s[a]}'|sort -rn -k1
ESTABLISHED 1
1.12.2 已知一个端口为22,如何参看端口对应的服务名?
方法一:
[root@clsn ~]# lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1102 root 3u IPv4 10308 0t0 TCP *:ssh (LISTEN)
sshd 1102 root 4u IPv6 10310 0t0 TCP *:ssh (LISTEN)
方法二:
[root@clsn ~]# netstat -lntup|grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1102/sshd
tcp 0 0 :::22 :::* LISTEN 1102/sshd
1.13 路由追踪 【traceroute 命令】
[root@znix ~]# traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 * * *
2 11.220.137.101 (11.220.137.101) 30.128 ms 30.408 ms 11.220.136.37 (11.220.136.37) 31.026 ms
3 11.220.137.118 (11.220.137.118) 25.325 ms 11.220.137.122 (11.220.137.122) 25.928 ms 11.220.136.122 (11.220.136.122) 25.794 ms
4 116.251.105.69 (116.251.105.69) 27.118 ms 106.11.130.190 (106.11.130.190) 28.008 ms 106.11.130.182 (106.11.130.182) 27.837 ms
5 116.251.112.189 (116.251.112.189) 26.409 ms 101.200.109.134 (101.200.109.134) 39.593 ms 116.251.112.157 (116.251.112.157) 37.824 ms
6 106.38.196.5 (106.38.196.5) 26.568 ms * *
7 * * *
8 * * *
9 * * *
10 202.97.53.246 (202.97.53.246) 29.232 ms 202.97.58.98 (202.97.58.98) 27.856 ms 202.97.53.246 (202.97.53.246) 29.002 ms
11 202.97.91.114 (202.97.91.114) 66.359 ms 66.241 ms 65.974 ms
12 202.97.62.214 (202.97.62.214) 105.680 ms 105.781 ms 105.321 ms
13 108.170.241.5 (108.170.241.5) 62.860 ms 62.687 ms 108.170.241.38 (108.170.241.38) 63.391 ms
14 72.14.232.155 (72.14.232.155) 63.230 ms 64.233.174.17 (64.233.174.17) 62.013 ms 66.249.95.199 (66.249.95.199) 63.684 ms
15 216.239.46.119 (216.239.46.119) 86.082 ms 209.85.247.124 (209.85.247.124) 76.583 ms 209.85.142.172 (209.85.142.172) 74.886 ms
16 216.239.57.241 (216.239.57.241) 75.346 ms 209.85.249.75 (209.85.249.75) 74.639 ms 216.239.43.103 (216.239.43.103) 76.405 ms
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 google-public-dns-a.google.com (8.8.8.8) 77.106 ms 76.575 ms 73.135 ms
1.14 检测端口是否开启
1.14.1 利用telnet命令
[root@clsn ~]# telnet 10.0.0.201 22
Trying 10.0.0.201...
Connected to 10.0.0.201.
SSH-2.0-OpenSSH_5.3
1.14.2 使用nmap命令
[root@clsn ~]# nmap 10.0.0.201 -p 20-23
Starting Nmap 5.51 ( http://nmap.org ) at 2017-09-28 21:05 CST
Nmap scan report for 10.0.0.201
Host is up (0.00012s latency).
PORT STATE SERVICE
20/tcp closed ftp-data
21/tcp closed ftp
22/tcp open ssh
23/tcp closed telnet
Nmap done: 1 IP address (1 host up) scanned in 0.54 seconds
第2章 上网无法
2.1.1 局域网用户无法上网排查
2.1.2 网站访问慢的排查
第3章 ftp协议
3.1 FTP协议介绍
文件传输协议,监听的端口是21/tcp端口,是完成各主机之间文件共享的协议,将一个主机的服务共享给其它主机的FTP协议是工作于应用层的协议,是基于TCP协议来实现,数据的传输的可靠性;并且TCP是采用两个连接FTP协议是一种文本协议,支持telnet连接(文本协议都支持telnet的连接)FTP采用CS模式进行访问,拥有专用客户端,可以向服务器端发送大量请求的ftp相关的命令:
get mget put mput cd ls
一般控制连接:是监听在tcp协议的21端口
一般数据连接:监听的端口需要分两种情况而定
3.1.1 主动模式
服务端会利用20号端口,主动向客户端发出数据传输请求,并先连2002端口,没有连2003依次类推但是客户端会拥有防火墙的概念,将服务端的请求屏蔽掉,因此产生了被动请求
3.1.2 被动模式
服务器端会通知一个报文,报文中可以中可以有的信息是151:20,因此通过计算可以得知服务器端开放的随机端口是151*256+20端口,客户端会通过服务端告知的随机端口进行数据的传输但是由于服务器端是端口随机的,因此服务器端也可能会有防火墙的概念,为解决此问题,会对防火墙的一个重要功能进行了解"连接追踪功能"---就是防火墙进程会判断连接与连接之间的关系,防火墙内部请求出去响应回防火墙的就会允许,防火墙外部请求进来的连接就会阻止,根据追踪连接请求的特征,tcp一段发起的建立连接请求的状态可以成为new状态,响应请求后完成建立的状态成为ESTB状态。
3.1.3 需要注意
所有数据传输的建立,都必须先建立控制连接,也就是输入相应的FTP命令,然后进行数据传输因此就产生了一个概念,related相关联的连接,防火墙会追踪连接彼此之间是否相关联, 只要是相关联的连接,不管是什么端口,都进行放行
3.1.4 补充说明
对用模式的主动和被动,都是根据服务端来进行说明的tcp 端口号是0-65535 udp 端口号是0-65535 所总计应该是12W多个端口防火墙是对端口进行控制,对请求的流量做限制,但是响应和流出的流量是不能进行过滤的数据传输模式:同时支持两种数据传输模式 文本模式和二进制模式,并且数据传输遵循文件本身的格式,否则强行将文本文件按二进制传输会出现乱码的情况,因此建议服务端与客户端自行协商传输模式.
3.1.5 说明
一般数据的存储形式分为 文本和二进制文件的格式
网上传输的数据一般分为三种(结构化数据 半结构化数据 非结构化数据)