CCNA基础知识摘录
1、检测硬件(保存在rom)
2、载入软件(IOS)(保存在Flash)
3、调入配置文件(密码,IP地址,路由协议都保存在此)(此文件保存在NVRAM)
0x2102:正常调入配置文件到内存中
0x2142:不调入配置文件到内存中
即表示
:第六位(bit6)=0时就调入:第六位(bit6)=1时就不调入
CISCO设备的文件系统:
RAM/NVRAM/FLASH/TFTP
LAB1:路由器文件的备份:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:按图连接好电源线,Console,Ether-Net网线。
step2:配置IP地址,确认连接的正确性,并运行数据通信测试。
step3:在本机运行TFTP Server(TFTP是UDP的69号端口)(tftpd32)
step4:察看FLASH中的IOS文件
ROUTER#show flash:
ROUTER#dir
flash:
(":"表示一个设备,有时不打会出问题)
step5:
ROUTER#dir nvram (察看nvram中有哪些文件)
ROUTER#more nvram :startup-config(具体察看某个文件的内容)
step6:
ROUTER#copy flash:tftp:
ROUTER#copy nvram:startup-config tftp
LAB2:路由器的文件升级
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1/2/3 与LAB1完全一致
step4:
ROUTER#copy tftp:flash:
2140 表进入ROMMON模式(按ctrl+break进入)
2141 表进入MINI IOS模式
2142 表进入正常模式
LAB3:路由器的密码恢复
step1:与lab1完全一致(无需网线)
step2:配置路由器的密码
config t
enable password cisco1
enable secret cisco2
step3:保存配置
(将当前的内存中的配置信息,保存到NVRAM中的start-config)
copy run..start-config
write
step4:将配置寄存器设置为0x2102,在线路由器的标准配置
R1(config)#config-register 0x2102
step5:当忘记了密码时,就在启动路由器的5秒内按CTRL+BREAK,进入ROMMON模式
>
>
>
step6:
>o 察看当前寄存器的取值
>o/r 0x2142 修改寄存器取值为0x2142
step7:
>i 重启路由器
step8:
在system configuration dialog 中输入no
step9:
ROUTER#dir nvram
ROUTER#more nvram:startup-config
step10:
将startup-config copy到内存中
ROUTER#copy nvram:startup-config running-config
(通过手工将startup-config copy 到running-config时,接口全是关闭的,需要手工打开)
step11:删除原密码
R1(config)#no enable passwor
R1(config)#no enable secret
step12:将所有需要工作的接口,手工打开
R1(config)#int e0
R1(config-if)#no shut
step13:
R1#config-register 0x2102
step14:保存配置
R1#copy running-config startup-config
R1#write
LAB4:交换机的文件备份
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:按图连接好电源线,Console Eether网线
step2:配置IP地址,确认连接的正确性,并进行数据通信测试
switch(config)#int vlan 1
switch(config)#ip add 192.168.1.180 255.255.255.0
switch(config)#no shut
step3:在本机运行tftp
step4:备份交换机的IOS
switch#copy flash:c........... tftp:
备份交换机的配置文件
switch#copy flash:config.text tftp:
LAB5:交换机的IOS的升级
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1/2/3 与LAB1完全一致
step4:升级IOS
switch#copy tftp:flash:
LAB6:交换机的密码恢复:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:先连接好Console,将交换机断电,然后按着交换机上的“MODE”不放,再重新接入电源,直到控制界面出现
交换机初始化失败为止,然后跟着它要求的初始化步骤执行
step2:对flash进行初始化
switch:flash_init
switch: load_helper
switch: dir flash: 查找flash中的config.text
switch: rename flash:config.text flash:co.t (将配置文件改名)
step3:让交换机继续启动,进入空白配置的交换机
switch:boot
step4:把配置文件copy到内存
switch#copy flash:co.t running-config
step5:删除原密码
switch(config)#no enable password
switch(config)#no enable secert
step6:打开交换机的接口(因为手工加入的是关闭的)
int vlan 1
no shut
step7:保存
switch#write
step8:删除不需要的原配置文件
switch#delete flash:co.t
switch交换的三种方式:
1、直通式:交换机一收到数据帧就立刻开始转发
2、存储转发:交换机要完整地接收到数据帧,并且经过校验后,才开始转发
3、Fragment-free:交换机对接收到是前64BYTES,进行校验,如果正确就开始转发。
交换机的地址学习:(交换机MAC表)
交换机总是学习数据帧的源地址(MAC),将此地址与进入与进入交换机的端口进行映射。
交换机对于数据帧的转发:
1、如果目标MAC是单播地址,交换机就按照MAC表进行单播。(已知MAC)
(除了目标MAC所对应的那个接口,之外的所有接口,都是不转发数据帧的)
2、如果目标MAC是组播/广播地址,交换机就会向除了入口以外的接口进行广播。
3、如果目标MAC是单播地址,但是交换机没有此MAC的对应映射端口,交换机就会
向除了入口以外的接口进行广播。(未知MAC)
4、如果目标MAC地址是单播地址,但此目标MAC所对应的接口就是数据帧进入交换机的端口,交换机会丢弃数据帧。
在BPDU信息当中有一段区域叫做bridge ID,Bridge ID=bridge
priority(优先级)+MAC(相加之和),交换机缺省
优先级为32768(16进制为8000)。如果两个bridge ID相等将以MAC地址为准,以MAC地址最小的bridge
ID值就小
当交换机运行stp协议,交换机的端口会存在如下状态 :
blocking(阻塞)、listening(监听)、learning(学习)、forwarding(转发)
blocking(阻塞)--listening(监听) 间隔20秒时间
listening(监听)--learning(学习) 间隔15秒时间
learning(学习)--forwarding(转发)间隔15秒时间
从listening到forwarding所经历的时间被称作转发延迟(默认30秒)
port在各个状态的功能:
blocking:不能接收转发任何数据
listening:不能接收转发数据,但是可以接收BPDU信息
learning:不能接收转发数据,但是能够通过接收BPUU信息创建MAC地址表
forwarding:可以接收转发数据
LAB7:交换机的基本配置
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:为交换机配置网管ip(本网段网管)
SW1(config#)int vlan 1
ip add 192.168.1.1 255.255.255.0
no shut
step2:配置交换机的网关:(跨网段网管)
SW1(config)#ip default-gateway 192.168.1.10
step3:控制接口的速率
SW1(config)#int f0/1
switchport mode access(接入链路,一般连接主机)
speed 10
speed 100
speed auto(默认)
step4:控制接口的双工模式:
sw1(config-if)#depulex full
sw1(config-if)#depulex half
sw1(config-if)#depulex auto(默认)
LAB8:Port/Security (端口安全)
step1:
sw1(config)#int f0/2
switchport mode access(接入链路)
switchport port-security(启动端口安全)
switchport port-security mac-address
00c0.abcd.1234(绑定一个MAC)
switchport port-security violation
shutdown(关闭接口,上报)
switchport port-security violation
restrict(不转发数据,上报)
switchport port-security violation
protect(不转发数据)
step2:在一个端口上绑定多个MAC地址
switchport port-security macimum 3
switchport port-security mac-address
00c0.abcd.1234
switchport port-security mac-address
00c0.abcd.1235
switchport port-security mac-address
00c0.abcd.1236
step3:
switchport port-security maximun 100
switchport port-security mac-address sticky
VLAN:
实现vlan的主要目的:(segmentation)将网络分片,减少每个网络的规模,即缩减每一个广播域的大小。
一个vlan,对应着一个广播域,对应着一个逻辑子网:A VLAN=A Broadcast domain=logical
network(subnet)
HUB:所有端口都在一个冲突域,一个广播域中;
Switch:一个端口对应一个冲突域,所有端口都在一个广播域中;
Router:一个端口对应一个冲突域,一个端口对应一个广播域;
交换环境中的2 种连接类型:
1.access links:指的是只属于一个VLAN,且仅向该VLAN 转发数据帧的端口,也叫做native
VLAN.switches 把帧发送到
access-link 设备之前,移去任何的VLAN 信息.而access-link 设备不能与VLAN
外通信,除非数据包被路由
2.trunk links:指的是能够转发多个不同VLAN 的通信的端口.trunk link 必须使用100Mbps
以上的端口来进行点对点
连接,1 次最多可以携带1005 个VLAN 信息.trunk link 使你的单独的1个端口同时成为数个VLAN
的端口,这样可以不需
要层3 设备.当你在switches 之间使用了trunk link,多个VLAN 的信息将从这个连接上通过;如果在你switches
之间没
有使用 trunk link而使用一般的连接,那么只有VLAN1 的信息通过这个连接被互相传递.VLAN1
默认作为管理VLAN。
vlan分类:
静态Vlan
动态Vlan
sw1(config)#default int fa0/1(让一个接口恢复默认配置)
LAB9:静态Vlan的创建,修改,删除
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:观察Vlan的配置信息:
SW1#sh vlan brief (默认情况下,交换机的所有的端口都在vlan 1)
pc2#sh arp
pc2#debug arp
pc2在ping通pc1后再观察“sh arp”
step2:创建vlan:
sw1#conf t
vlan
10(创建vlan10)
sh vlan brief观察
step3:将端口放入vlan 10:
sw1(config)#int f0/1
switchport access vlan 10
测试:
在pc2上再ping pc1,无法ping通!
(在不同vlan中的用户,默认是不能通信的)
step4:
sw1(config)#int f0/2
switchport access vlan 10
此之后再进行测试,可通;(证明相同的vlan中的用户是可以互通的)
step5:修改vlan:
sw1(config)#vlan 10
sw1(config-vlan)#name ENG
sw1(config-vlan)#EXIT
sw1(config)#VLAN 20
sw1(config-vlan)#name sale
sw1(config-vlan)#exit
step6:删除vlan
sw1(config)#no vlan 20
LAB10:vlan间的路由
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:按图配置vlan,ip
step2:将R1/R2的路由能力关闭
pc2(config)#no ip routing
pc1同上
step3:在多层交换上,创建两个与VLAN一一对应的vlan接口,以此两接口作为两个vlan的网关
sw1(config)#int vlan 10
sw1(config-if)#ip add 192.168.10.100 255.255.255.0
sw1(config-if)#no shut
sw1(config)#int vlan 20
sw1(config-if)#ip add 192.168.20.100 255.255.255.0
sw1(config-if)#no shut
step4:
所有在VLAN10中的网关,都以if vlan 10 为网关:
pc1(config)#ip default-gateway 192.168.10.100
所有在VLAN20中的网关,都以if vlan 20 为网关:
pc2(config)#ip default-gateway 192.168.20.100
测试:每个用户都必需ping通自己的网关!!!!!!!
step5:启动交换机的路由能力:
sw1(config)#ip routing
sw1#sh ip route
step6#不同vlan间的用户数据通信
测试:两个pc互通!!!!!!!!!
Trunk:
在一条网络介质(网线/光纤)上,同时传输多个vlan的信息
trunk的种类:
1、cisco的私有标准:ISL
2、开放性的业界标准:802.1Q
LAB11:TRUNK
step1:
802.1Q的Trunk:
int f0/21
switchport trunk encapsulation dot1q
switchport mode trunk
ISL的Trunk:
int f0/21
switchport trunk encapsulation isl
switchport mode trunk
两个交换机配置相同。
step2:察看Trunk链路的连接状态:
SW1#sh int trunk
step3:
pc3(config)#ip default-gateway 192.168.10.100
PC3设置了网关后,可以实现跨vlan,跨交换机的通信的。
VTP(VLAN Trunk Protocol)
vtp只是用于构建富有效率的,便于管理的Vlan的网络
(让网络中的一个交换机VTP Server设定好Vlan信息,别的交换机都自动从这个交换机这里,动态地学习到VLAN信息)
cisco私有的协议
vtp信息,只能在trunk链路上传输。
VTP 是Cisco 创建的,但是现在已经不为Cisco 所私有.VTP 的主要目的是在一个交换性的环境中管理所有配置好的VLAN
使所有的VLAN 保持一致性VTP,允许增加,删除和重命名VLAN,然后这些修改后的信息传播到整个VTP 域里的所有switches
上。
LAB12:VTP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:确定网络中的VTP Server/Client
sw1(config)#vtp mode server
sw2(config)#vtp mode client
step2:确定在一个相同VTP域名:(CCNA)
sw2(config)#vtp domain CCNA
注意:所有vtp信息在sh run是看不到的
step3:检查vtp:
sw1/2#sh vtp status
step4:观察VTP信息的同步过程:
通过添加vlan观察版本号
Configuration Revision 2
当每改动一个属性时(如增加vlan,删除vlan,改名等动作),版本号就会改变
STP(Spanning-Tree Protocol)
1、每个交换网络,都有一个根桥(根交换机:BID最小的交换机)
2、每个非根桥,都只有一个根端口。(根端口即是去往根桥开销最小的端口)
3、每条网络介质,都必定有一个指定端口。(指定端口,根端口都是转发数据包的)
4、除了指定端口,根端口以外的端口,都被堵塞,不转发数据包。
LAB13:STP根桥的选定
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
所有交换机默认的BID优先级都是0x8000(32768)
step1:察看各个交换机的MAC地址
sw1#sh version
Base ethernet MAC Address:00:0F:.......
step2:察看优先级:
sw1#sh spanning-tree vlan 1
Bridge id
priority 32768 (priority 32768 sys-id-ext 1)
step3:控制交换网络的根桥:
根桥:
sw1(config)#spanning-tree vlan 1 root primary(24576/0x6000)
备份根桥:
sw2(config)#spanning-tree vlan 1 root secondary(28672/0x7000)
sw1#sw1#sh spanning-tree vlan 1
通过spanning-tree vlan 1 priority 4096(0x1000)直接更改优先级
R1#sh controllers serial 1查看是DTE还是DCE!!!!
CDP
LAB1:CDP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:
R1#sh cdp neighbors
step2:在接口级别控制CDP的运行:
R3(config)#int s1
R3(config-if)#cdp enable(启动接口的CDP能力,默认)
R3(config-if)#no cdp enable(关闭接口CDP)
step3:在全局上,控制所有接口CDP运行
R3(config)#cdp run(在全局上启动CDP)
R3(config)#no cdp run(在全局上关闭CDP)
step4:
SW1#sh cdp neighbors detail
SW1#sh cdp neighbors f0/1 detail
CDP timer:CDP 包传给每个活跃接口的时间间隔,默认是60 秒 ,即每60s发送一次cdp更新
CDP holdtime:某设备从相邻设备收到的包的保持时间,默认是180 秒
Telnet:通过Telnet,实现远程网管
LAB2:Telnet
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:
在进行telnet之前,首先确认能够与被telnet的设备正常通信(ping)
step2:
R1#ping 192.168.10.2!!!!!!!!!!!!!!!!!!!!!
step3:
R1#telnet 192.168.10.2(不成功)
出现这些字样:Password required,but none set(原因:VTY没有设置密码)
解决办法:
R2(config)#line vty 0 4
R2(config-line)#password 1234
R2(config-line)#login
R2(config-line)#exit
step4:再telnet
R1#telnet 192.168.10.2(此时只能进入用户模式,因为没有设置enable密码)
出现这些字样: User Access Verification
password:1234
R2>
R2>
R2>en
此时无法进入,因为R2没设enable密码
step5:第三次再R2设置了enable后,再telnet
R2(config)#enable password cisco
R1#telnet 192.168.10.2
Trying 192.168.10.2 Open
password:
R2>
R2>
R2>en
password:
R2#
R2#exit
回到R1
step6:对交换机的Telnet是一样操作的,即在交换机上也需先设line密码,enable密码
step7:察看已连接的telnet进程:
7-1:在telnet发起方,察看自己发起的进程
R1#sh sessions
Conn
host
* 1 192.168.10.29
*表示此telnet是活动的
7-2:在被telnt方,察看自己被telnet的进程
sw2#sh users
Line
users
host(s)
idle
location
1 vty
0
idle
192.168.10.1
step8:发起telnet的设备,临时“挂起”(回到本设备上):(telnet进程是没有中断的)
用快捷键可临时挂起:1、ctrl+shift,不松手再按6;
2、松手后再按下 ‘x’
通过这两步就可以在telnet时临时挂起。
当想回到被telnet的机器上时,只需在特权模式下按下“回车”即可回到被telnet方。
step9:彻底中断telnet
9-1:发起方主动中断:
sw2#
sw2#exit
R1#
即用“exit”即可中断
也可用R1#disconnect 1 选择性的中断某一条telnet
9-2:被telnet方强制中断
sw2#clear line 1
[confirm]
[ok]
sw2#
step10:在多个被telnet设备之间进行切换:
R1#sh sessions
conn host
*
1
192.168.10.2
2
192.168.10.29
R1#2
就可进入ip地址为192.168.10.29的主机。
ACL/访问列表
主要作用:控制数据包,对其进行过滤。
还可以完成:QOS,DDR,路由过滤;
ACL的分类:
标准ACL:控制数据包的源IP地址。
1~99,(1300~1999)
扩展ACL:控制数据包的源IP,目标IP,协议号,源端口口,目标端口号.....
100~199,(2000~2699)
命名ACL(标准/扩展ACL)
CCNA基础知识摘录的更多相关文章
- Map/Reduce应用开发基础知识-摘录
Map/Reduce 这部分文档为用户将会面临的Map/Reduce框架中的各个环节提供了适当的细节.这应该会帮助用户更细粒度地去实现.配置和调优作业.然而,请注意每个类/接口的javadoc文档提供 ...
- http基础知识摘录
HTTP是一个基于请求/响应模式的,无状态的协议 (只有客户端发送请求服务器才会响应,否则服务器不会主动发送信息的,无状态指客户端发过来一个请求服务端给你发回一个响应,接着你再去发送一个请求,服务器根 ...
- Quartz.NET基础知识概述
Quartz.NET是什么 由于我现在使用的Quartz.NET2.2版本,相对2.x变化不大,主要是相对于1.x更新了很多东西,如下基础知识摘录网络. Quartz.NET是一个开源的作业调度框架, ...
- CCNA的基础知识及要点
一.CCNA中的基础知识及要点: 2.网线的制作:568B:橙白,橙,绿白,蓝,蓝白,绿,棕白,棕 568A的排线顺序从左到右依次为:白绿.绿.白橙.蓝.白蓝.橙.白棕.棕.实验目的:初学者常为做网线 ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Runtime系列(一)-- 基础知识
众所周知,Objective-C 是一种运行时语言.运行时怎么来体现的呢?比如一个对象的类型确定,或者对象的方法实现的绑定都是推迟到软件的运行时才能确定的.而运行时的诸多特性都是由Runtime 来实 ...
- [源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识
[源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 目录 [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 0x00 摘要 0x01 分布式并 ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
随机推荐
- 再起航,我的学习笔记之JavaScript设计模式06(工厂方法模式)
上一次已经给大家介绍了简单工厂模式,相信大家对创建型设计模式有了初步的了解,本次我将给大家介绍的是工厂方法模式. 工厂方法模式 工厂方法模式(Factory Method):通过对产品类的抽象使其创建 ...
- mybatis 详解(十)------ 逆向工程
通过前面的学习,在实际开发中,我们基本上能对mybatis应用自如了,但是我们发现了一个问题,所有操作都是围绕着po类,xxxMapper.xml文件,xxxMapper接口等文件来进行的.如果实际开 ...
- SpringBoot构建RESTful service完成Get和Post
一个基本的RESTfule service最进场向外提供的请求Method就是Get和Post. 在Get中,常用的都会在请求上带上参数,或者是路径参数.响应Json. 在Post中,常用的会提交fo ...
- android 适配器 ArrayAdapter,SimpleAdapter的学习
今天认真看了下android适配器,学习了下它的使用方法. 一,ArrayAdapter ArrayAdapter 比较简单,只可以存放一行文本信息.下面是简单的实现 private ListView ...
- UNIX 高手的 10 个习惯
引言 当您经常使用某个系统时,往往会陷入某种固定的使用模式.有时,您没有养成以尽可能最好的方式做事的习惯.有时,您的不良习惯甚至会导致出现混乱.纠正此类缺点的最佳方法之一,就是有意识地采用抵制这些坏习 ...
- python编程基础—正则表达式
正则表达式 正则表达式就是描述字符串排列的一套规则.利用正则表达式可以做很多事情,主要用于字符串的匹配 在实际项目中,我们经常需要找到某一类符合某种格式的信息,此时,我们可以观察这些数据的规律,然后将 ...
- 使用Python写一个贪吃蛇
参考代码http://blog.csdn.net/leepwang/article/details/7640880 我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的 ...
- softmax函数
该函数作用于输出层之上,用于改善输出层神经元饱和时与该神经元直接相关的w和bias学习率下降的问题. 定义: 这表明,在用柔性最大值函数定义输出神经元的输出时,神经元的输出是一种概率分布,所有输出层神 ...
- elasticsearch映射
前面讲到,无论是关系型数据库还是非关系型数据库,乃至elasticsearch这种事实上承担着一定储存作用的搜索引擎,数据类型都是非常重要而基础的概念.但elasticsearch与其它承担着数据存储 ...
- iOS项目之wifi局域网传输文件到iPhone的简单实现
如今手机发展非常迅速,app的种类也琳琅满目,而自从有了4G网之后,手机流量也越来越不够用了.所以现在越来越多的app有了本地文件的管理功能,方便用户随意浏览手机文件的同时,也为用户节约了流量的使用. ...