网络协议分层简表

网络协议
应用层
DHCP (DHCP · DHCPv6) · DNS · FTP ·Gopher · HTTP · IMAP4 · IRC · NNTP ·XMPP · POP3 · SIP · SMTP · SNMP ·SSH · TELNET · RPC · RTCP · RTP·RTSP · SDP · SOAP · GTP · STUN ·NTP · SSDP · 更多
传输层

TCP · UDP · TLS/SSL · DCCP · SCTP

RSVP · PPTP · 更多

网络层

IP (IPv4 · IPv6) · ICMP · ICMPv6 · IGMP ·

IS-IS · IPsec · BGP · RIP · OSPF ·ARP ·RARP · 更多

数据链路层

Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·

ATM · DTM · 令牌环 · 以太网 · FDDI · 帧中继 · GPRS · EVDO · HSPA · HDLC ·PPP · L2TP · ISDN ·STP · 更多

物理层
以太网 · 调制解调器 · 电力线通信(PLC) ·SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线 · 更多

 

CCNA学习笔记–DHCP

DHCP:动态IP分配以及相关配置(DNS、WINS、网关)

DHCP工作过程:客户端PC和DHCP服务器R1
  1. PC发送一个DHCP discover 广播包,源MAC是自己网卡MAC,源ip因为无,所以是0.0.0.0
  2. R1收到广播包后,查自己的地址池发现有10.0.0.2可用,然后发一个ARP广播查询10.0.0.2是否有被使用,如果收到应答表示已经被使用,在地址池中换一个,没有收到应答表示可以使用。
  3. R1发送DHCP offer,包括一个可用的ip,这个包是广播包,目的MACFFFFFFFFFFFF(以告知网络中可能存在的其他DHCP服务器),目的ip 255.255.255.255
  4. PC收到ip后,发送DHCP request租约选择信息,表示PC将要使用分配的IP地址(这个时候PC仍然没有IP),这个包也是广播包,目的MAC和IP都是广播地址,为了通知可能存在的其他DHCP服务器。包的内容包含要选择的DHCP服务器和要使用的IP
  5. R1收到request信息后发送DHCP positive 确认信息,表示租约成立,其中还包括掩码,网关、DNS等。这个包也是广播
  6. PC收到确认后,广播ARP reply包告示该IP已被使用。

 

CCNA学习笔记–ACL

ACL:Access Control List 访问控制列表,控制路由器各个接口接受哪些包,拒绝哪些包

ACL流程:每一个数据包流出(out)/流入(in)ACL接口时,与该接口配置的access-list逐条比对,符合拒绝(deny)/通过(permit)条件的执行相应动作,若不适用于该条判断命令则进行下一条判断。如果所有判断都不适用,最后隐含了一条拒绝
标准ACL:以源地址为依据过滤
标准ACL创建
config t 模
access-list access-list-number(1-99) {deny|permit} {source[source-wildcard]|any} [log]
access-list-number:ACL列表序号,标准ACL1-99,扩展ACL100-199
deny拒绝 permit允许
source 适用判断的源ip
source-wildcard:反掩码,用于表示与前面ip哪些位匹配的范围,与子网掩码不同,匹配的位可以不连续(0.0.0.254,表示前24位和最后一位匹配)
any:等价于0.0.0.0 255.255.255.255 任何ip都适用
log:显示日志
写配置要注意顺序,ACL是逐条判断,
deny 1.1.1.1
permit any
上写法1.1.1.1不通过,其他通过,调换的话所有ip都符合permit条件,都通过,不进行deny的判断。
在接口启用配置
ip access-group 列表号(1-99){in|out}
标准命名ACL:用字符串标识ACL,配置:ip access-list standard (name)
启用配置时把列表号写成 name 即可

扩展ACL:   可同时使用源地址,目标地址作为条件,可以针对不同协议、协议特征、端口号、时间范围来过滤 
标号范围100-199

    












CCNA学习笔记–PPP

PPP:Point to Point Protocol 点到点协议,用于各种物理类型的点到点串行链路传输上层报文。

PPP分层体系结构:分为LCP(链路控制协议)和NCP(网络控制协议)LCP链路管理相当于OSI第二层,NCP相当于LLC子层和第三层,为上层提供服务接口(IPCP IPXCP ATCP等)
会话建立过程:
  1. LCP:链路建立配置协商,发送LCP帧检测和配置数据链路(打通)
  2. LCP:链路质量检测,可选,测试链路质量是否满足需求
  3. NCP:网络层协议配置,交换NCP分组来配置,对于IP网络就是IPCP,NCP配置好就建立了通信链路,可以开始传输
  4. 链路终止:一方发起断开连接请求后,NCP释放网络层的连接,LCP关闭数据链路层链接,物理链路关闭。
身份验证协议:两种,PAP(密码验证协议)CHAP(挑战握手验证协议)
身份验证是可选的,发生在网络层协议配置之前
PAP验证过程(R1被验证,R2验证)
  1. R1主动发送自己的用户名与密码到R2
  2. R2接收到后检查用户名是否存在,口令是否正确,是返回接收,验证通过,否返回拒绝,不通过

特点:主动请求验证,用户名和密码明文发送 。

CHAP验证过程
  1. 验证方R2向R1发包,内容包括 包序号 ID(分辨向哪个拨号者发包) 随机值r 自己的用户名R2
  2. R1查找自己是否有R2的用户名和密码,有的话用R2 R2的密码 r 计算一个MD5值 然后发送一个应答包, 包括 包序号+1 ID MD5 自己用户名R1
  3. R2用收到的ID查找自己发的随机数r,用返回包的用户名R1查找数据库的用户名密码组合,用自己的这些数计算MD5,和返回包的MD5比较,相同则通过,返回包 序号03,否则不通过,返回序号04

CCNA学习笔记–STP

CCNA学习笔记–STPSTP是:生成树协议,用于解决冗余产生的环路问题

环路的产生情况:
                            两台交换机互联了两根线
                            多台交换机(或集线器)组成的环路
STP解决环路的办法:自行阻塞可能导致环路的冗余路径,以确保网络中所有目的地之间只有一条逻辑路径。被阻塞的端口(路径)不会通过通信流量,只有STP用来防止环路的BPDU帧(网桥协议数据单元)可以通过。当网络发生故障需要启用备用路径时STP会重新计算路径,把必要的端口解除阻塞,把冗余投入使用。
生成树算法:用于计算拓扑中那些端口应该被阻塞;分三步:
                    通过交换机互相交换BPDU帧计算根桥,根桥是所有路经计算的参考点
                    根桥确定后,每台机器计算到根桥的最短路径点,选择一条最小开销的路径
                    确定那些路径需要保留之后,该使用端口的保留开放状态,该阻塞的端口禁用(原文:它会将交换机端口配置为不同的端口角色。端口角色描述   了网络中端口与根桥的关系,以及端口是否能转发流量。)
                    端口角色如下:根端口 - 最靠近根桥的交换机端口。    指定端口 - 网络中获准转发流量的、除根端口之外的所有端口。    非指定端口 - 为防止环路而被置于阻塞状态的所有端口。

CCNA学习笔记–VTP

VTP概念:同步交换机VLAN信息的协议,是思科的专属协议

有什么用:通过在一台机器上配置要使用的VLAN,同步给域中所有交换机,方便分配VLAN
VTP同步的内容有:
        总结通告:VTP域名 :一组VTP管理发生在一个管理域内,一台交换机只能成为一个VTP域的成员
                         当前修订版号:每次添加或删除VLAN时此号会增加,改变VTP域名将重置此号为0
                          其他VTP配置信息
        子集通告:通常包扩VLAN信息,触发此通告的更改有
                                创建或删除VLAN
                                暂停或激活VLAN
                                更改VLAN名称
                                更改VLAN的MTU
        请求通告:客户端交换机向服务器发送,触发此通告的更改有
                                VTP域名改动
                                交换机收到的总结通告包含比自己更高的修订版号
                                子集通告丢失
                                交换机被重置
这几种通告的发送方式:VTP服务器或客户端每5分钟发送一次总结通告,如果交换机执行了配置操作就立即发送总结通告;客户端向服务器发送请求通告后,服务器先发送总结通告,再发送子集通告。
所有的通告发送接收仅限于一个VTP域内有效,所以所有通告的帧必有管理域名
VTP模式:交换机在VTP域中的身份,有 VTP服务器 VTP客户端 VTP透明,功能如下

补充: VTP服务器:是交换机的默认模式,可以创建、修改、删除整个VTP域中的VLAN,向相同域中的其他交换机通告自己的VLAN配置。自身的VLAN信息存储在NVRAM中。
            VTP客户端:不能创建、更改、删除VLAN,VLAN信息要通过向服务器发送请求通告以获取VLAN信息,并存储在RAM中,客户端每次重启都要重新请求更新。
            VTP透明模式:将收到的VTP通告转发给网络中其他交换机,既不会通告自己的VLAN配置,也不会根据通告更新自己的VLAN配置,只负责转发。自身的VLAN信息存储在NVRAM中。

VTP进行过程:s1作为服务器,s2作为客户端
①s1配置域名=aaa
②添加VLAN2,修订=1
③添加VLAN3,修订=2
④通过trunk连接到s2
⑤s1发送总结通告,包含域名=aaa,修订号=2
s2收到后修改VTP域名为aaa,修订不变=0
⑦因为0<2,s2向s1发送请求通告
⑧s1收到请求后先向s2发送一次总结通告,再发送包含VLAN详细配置的子集通告, VLAN=1、2、3
⑨s2根据第二次的总结通告修改修订=2,根据子集通告修改VLAN配置=1、2、3
(定期or触发)总结→(触发)请求→(回应)总结+子集
VTP域内的VTP透明交换机仅仅作为转发VTP通告用,完全不参与配置信息
VTP修剪概念:不将不使用的VLAN配置信息传递给下层交换机,防止广播帧流量过高
配置VTP注意事项:
服务器:
            一定要恢复默认设置,重置修订版号
            至少配两台服务器做冗余,一旦域中没有了服务器只有客户端,就不能在添加新的VLAN(只能手动配置所有的)
            注意VTP域名,注意VTP口令
            所有的交换机要配置相同的VTP协议版本,第一版与第二版不兼容
            先配置VTP,再配置VLAN。启用VTP前创建的VLAN会在启用后被删除
            注意配置trunk口,VTP通告只通过trunk口
客户端:
            一定要恢复到默认设置
            默认是服务器模式,一定要手动改
            注意trunk口
            确保到服务器的线路通畅
            在给端口分配VLAN之前,检查是否更新了最新的修订版号和VLAN,确认无误才可以进行分配工作。客户端模式只能分配给同步来的VLAN,不能手动添加新的
            
            

cisco配置默认路由

ip default-network 192.168.2.0
  ip route 192.168.2.0 255.255.255.0192.168.2.2
  ip route 192.168.2.0 255.255.255.0192.168.2.1
  ip route 0.0.0.0 0.0.0.0FastEthernet0/0
  ip route 0.0.0.0 0.0.0.0 192.168.2.2
  在思科路由器中,添加默认路由的方式有如下三种:
  1、ip default-gateway   后跟下一跳ip地址
  2、ip default-network   后跟网络号
  3、ip route 0.0.0.0 0.0.0.0  后跟下一跳ip地址(或本身接口号)
  一、ip default-gateway
  该命令用于路由器关闭路由功能(no ip routing)后,不进行数据路由转发,把自身当做是一台PC。通过网络给这台路由器升级IOS时使用。
  简单点说,就相当于给PC配置默认网关。
  二、ip route 0.0.0.0 0.0.0.0
  该命令在实际案例中最为常见,后面主要跟下一跳的ip地址,作为缺省路由。即:数据的目的地址不匹配其他路由策略时,则全都转发到该命令指定的下一跳。
  三、ip default-network
  该命令后面跟的是网络号,如:ip default-network 192.168.1.0
  不能单独使用,必须存在后面网络号的静态路由,才可生效。如上面的例子中,路由器必须已经知道了去往192.168.1.0/24该怎么走。
  这条命令的意思是,当数据转发时,如果其目的地址(如10.10.2.2)没有匹配的路由策略,则一律按照去往192.168.1.0这个网络的策略去走。
  思科官方文档说,该命令后面跟的网络号,必须为主类网络,否则会出现意想不到的后果。

交通工具的简单物理模拟(cocos2d-x)

我们使用的是VS2013+Cocos2d-x 3..2rc0 的编译环境。

1.行驶方向上的加速减速

设游戏中一帧的时长为1s。那么在下一帧中,汽车的速度应该为

Vn+1=Vn+a;a为汽车引擎的加速度

而摩擦力引起的加速度是固定的,但是由于加速度跟物体的运动速度相反,而且为矢量,我们为了在游戏中计算的简便性,模拟出真实情况下汽车减速加速的情况则

Vn+1=f*Vn+a,f<=1

若f=1则说明不存在摩擦力。若f<1,则可以通过推倒得出V=a/(1-f)

f越接近1,车得最大速度V越大。而f可以根据地形的不同设置为不同的值。而a则为汽车当前加速度,需要随着按键时间增加而增大,但应该有最大值。其中f为标量,Vn和a都是矢量。

故Vn+1_x*cos(rot) =f*Vn_x*cos(rot)+a*cos(rot)

Vn+1_y*cos(rot) =f*Vn_y*cos(rot)+a*cos(rot)同理可得

在y轴上的速度矢量。

2.方向控制

ROTn=ROTn-1 – DROT

ROT为汽车当前的转角度数,DROT为汽车将转动的度数。DROT若设置为一个定值,则在游戏中会表现得相当不自然。所以DROT应该随着按键时间的持续而变大,但是应该设置一个最大值和一个初始转角。

3.代码实现

为了代码的简便,我们固定了汽车加速的值和汽车转向的加速度值。

首先声明一个汽车类:

#ifndef __InitialCar_Sprite_H__
#define __InitialCar_Sprite_H__

#include “cocos2d.h”
USING_NS_CC;
class InitialCar : public cocos2d::Sprite
{
public:
virtual bool init();//初始化函数
CREATE_FUNC(InitialCar);//creat函数
void updaterot();//更新汽车角度
void updateSpeed();//更新汽车速度
void updatePosition();//更新汽车位置
void turnright();//汽车左转
CC_SYNTHESIZE(Vec2, car_speed, car_speed);//车速度
CC_SYNTHESIZE(double, car_rot, car_rot);//车角度

CC_SYNTHESIZE(double, max_speed, max_speed);//最大速度
CC_SYNTHESIZE(double, friction, Friction);//摩擦力
CC_SYNTHESIZE(double, accel, Accel);//最大加速度

CC_SYNTHESIZE(double, staet_drot, Start_Dort);//初始转向角度
CC_SYNTHESIZE(double, max_drot, Max_Drot);//最大的转向角度
CC_SYNTHESIZE(double, delta_drot, Delta_Drot);//增加的角度
CC_SYNTHESIZE(double, return_drot, Return_Drot);//减少的角度
Sprite *car;
};

#endif //

接着实现bool InitialCar::init()方法,在里面初始化变量

bool InitialCar::init()
{
if (!Sprite::init())
return false;
car = Sprite::create(“small.png”);
addChild(car, 1);

setcar_speed(Vec2(0, 0));//汽车初始速度
setAccel(0.3);//初始加速度
setcar_rot(90);//初始角度
setFriction(1.0);//摩擦力 1.0代表不存在摩擦力
setStart_Dort(0);//右旋转的初始角度
return true;
}

然后实现

void InitialCar::updaterot()//更新车角度
{
setcar_rot(getcar_rot() – getStart_Dort());
car->runAction(RotateTo::create(0.0, 90-getcar_rot()));
}

void InitialCar::updateSpeed()//更新车速度
{
Vec2 car_speed_tmp = getcar_speed();
Vec2 accel(cos(getcar_rot()*M_PI / 180), sin(getcar_rot()*M_PI / 180));
accel = accel*getAccel();
car_speed_tmp = car_speed_tmp*getFriction() + accel;
setcar_speed(car_speed_tmp);
}

void InitialCar::updatePosition()//更新车位置
{
auto tmp = car->getPosition();
car->setPosition(tmp.x + getcar_speed().x, tmp.y + getcar_speed().y);
}

 

最后最关键的turleft函数,由于精灵在同一帧中不能同时执行两个动作,所以采用顺序执行的方式,分明执行更新汽车位置和汽车转向的操作,最后采用调用自身的方式进行不断迭代右转。

void InitialCar::turnright()//右转
{
car->runAction(Sequence::create(
CallFunc::create(this, callfunc_selector(InitialCar::updateSpeed)),
CallFunc::create(this, callfunc_selector(InitialCar::updatePosition)),
CallFunc::create(this, callfunc_selector(InitialCar::updaterot)),
CallFunc::create(this, callfunc_selector(InitialCar::turnright)), NULL
));
}

 

到此就实现了汽车右转中的物理模拟。

 

 

srun3000bug updating

版本:windows客户端ipv4版

操作系统环境:windows8.1 update

  • 现象:返回提示:“您的IP不在radius表中”,检查ip并无误,并且可以在提示这个错误之前正常使用。解决方法:更换IP,并且只能通过修改MAC的方式重新获取一个新的IP,使用ipconfig /release & /renew 命令会获取到相同的IP,无法解决问题。
  • 现象:在 认证服务器地址 框中,填入默认的 shaert.uestc.edu.cn 和 rz.uestc.edu.cn 域名,登陆时提示  认证服务器IP地址输入错误(信息待确认?),填入认证服务器ip地址后即可登陆。dns可解析域名。解决方法:填入认证服务器ip地址。
  • 待补充

版本:windows客户端ipv4/ipv6版

操作系统环境:windows8.1 update

  • 现象:登陆成功,可以查看认证服务器端的用户信息,但访问外网时仍跳转到登陆页面。解决方法:无
  • 待补充

版本:linux 64位版

操作系统环境:Fedora20;桌面环境:Gnomeshell(GTK)

  • 现象:登陆成功,可以查看认证服务器端的用户信息,但访问外网时仍跳转到登陆页面。解决方法:无
  • 待补充

尚未测试的客户端版本:英文版、linux 32位版、Android版、Mac OS X版、ios(iPAD)版、ios(iPHONE)版。

【密码?那是什么!】H3C交换机绕过密码保护方法

今天办公室拿来了一台新交换机,准备配置一下装到宿舍的机柜里使用。小伙伴们开心的插电源、连串口,正要大展Ctrl+C/Ctrl+V大法的时候,遭到一个冷冰冰的 Password: !!新机器诶!

可能是哪里替换下来的机器,没有清空配置就拿来用了。这种不知其父的机器我们上哪去找密码呢…突然想到,思科的机器是有办法开机绕过配置文件的,因为不管是console线路还是远程登录的密码都是保存在配置文件里的,如果开机不读取已有的配置文件,交换机就基本等于出厂状态,重新配置后写入配置文件就能搞定。赶快google(翻墙扯到了蛋)百度一下,还真的找到了这样的方法,而且比思科机器简单许多:H3C交换机忘记了密码怎么解决?看招~

简单来说就是H3C交换机有个引导交换机启动的程序,它像电脑的BIOS一样提供给我们一个更改引导配置的菜单bootmenu,通过它就可以选择启动时不读取已有的配置文件,这样配置的密码之类也统统成了摆设,尽可为所欲为。

这个方法也有局限。第一,必须要使用console线路,远程管理无法实现。第二,bootmenu本身就可以设置密码,这个密码原则上不能被绕过的,不过据说给H3C售后工程师打电话可以给个超级密码绕过一切障碍= =。

作为网管,在各种XX黑客横行的时代,安全第一是首要原则,防范这种绕过密码的办法也很明确了:1、保管好机房机柜钥匙,生人勿进。2、telnet密码、console密码、bootmenu密码全部配好,尤其是敏感场合的设备,保险不嫌多。3、密码保管好,决不能泄露,自己不要忘= =