Protocol
Buffers的是一个高效且可扩展的格式结构化数据编码的一种方式。
谷歌使用了Protocol
Buffers的几乎所有它的内部RPC协议和文件格式
使用protobuf传输的好处有:二进制传输,安全、数据量小
.proto文件中我们服务器定义需要传输的数据,及数据类型等。而传输的时候则是使用了通过官方工具生成的具体为.java的消息体
http://code.google.com/p/protobuf/
https://developers.google.com/protocol-buffers/docs/overview
可参考官方网上的具体使用
下面介绍如何用将.proto的文件转换成.java的文件
1.http://code.google.com/p/protobuf/downloads/list
下载 protoc-2.4.1-win32.zip 至本地并解压
2.通过命令行将.proto的文件生成为.java的文件官网上是这样写的
protoc -I=$SRC_DIR
--java_out=$DST_DIR $SRC_DIR/addressbook.proto
下面用图形来说明如果操作。下载的部分就不说了
B. netstat命令妙用提高Win7安全
检测网络连接
如果你怀疑自己的计算机上被别人安装了木马,或者是中了病毒,但是手里没有完善的工具来检测是不是真有这样的事情发生,那可以使用 Windows自带的网络命令来看看谁在连接你的计算机。具体的命令格式是:netstat-an这个命令能看到所有和本地计算机建立连接的IP,它包含四个部分——proto(连接方式)、localaddress(本地连接地址)、foreignaddress(和本地建立连接的地址)、 state(当前端口状态)。通过这个命令的详细信息,我们就可以完全监控计算机上的连接,从而达到控制计算机的目的。
我们在命令提示符中输入如下:netstat-a显示出你的计算机当前所开放的所有端口,netstat-s-e比较详细的显示你的网络资料,包括TCP、UDP、ICMP和IP的统计等大家可能都见过了。那有没有想过更胜层次的了解Vista、Windows7显示协议统计和当前 TCP/IP网络连接的知识呢?
在这里,笔者特别整理netstat命令用法如下(提示:其中按有a-b的顺序排列)——
NETSTAT:Vista/Windows7下显示协议统计和当前TCP/IP网络连接誉薯。可以直接运行netstat不加参数,如图:
NETSTAT[-a][-b][-e][-f][-n][-o][-pproto][-r][-s][-t][interval]
-a显示所有连接和侦听端口。
-b显示在创建每个连接或侦听端口时涉及的可执行程序。在某些情况下,已知可执行程序承载多个独立的组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。此情况下,可执行程序的名称位于底部[]中,它调用的组件位于顶部,直至达到TCP/IP。注意,此选项可能很耗时,并且在您没有足够权限时可能失败。
-e显示以太网统计。此选项可以与-s选项结合使用。
-f显示外部地址的完全限定域名(FQDN)。
-n以数高虚配字形式显示地址和端口号。
-o显示拥有的与每个连接关联的进程ID。
-pproto显示proto指定的协议的连接;proto可以是下列任何一个:TCP、UDP、TCPv6或UDPv6。如果与-s选项一起用来显示每个协议的统计,proto可以是下列任何一个:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP或UDPv6。
-r显示路由表。
-s显示每个协议的统计。默认情况下,显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6的统计;-p选项可用于指定默认的子网。
-t显示当前连接卸载状态。
interval重新显示选定的统计,各个显示间暂停的间隔秒数。按CTRL+C停止重新显示统计。
禁用不明服务
很多朋友在某天系统重新启动后会发现计算机速度变慢了,这个时候很可能是别人通过入侵你的计算机后给你开放了特别的某种服务,比如IIS信息服务等。可以通过“netstart”来查看系统中究竟有什么服务在开启,如果发现了不是自己开放的服务,我们就可以有针对性地禁用这个服务了。方法就是直接输入“netstart”来查看服务,再用“netstopserver”来禁止服务。
轻松检查账户
很长一段时间,恶意的攻击者非常喜欢使用克隆账号的方法来控制你的计算机。他们采用的方法就是激活一个系统中的默认账户,但这个账户是不经常用的,然后使用工具把这个账户
提升到管理员权限,从表面上看来这个账户还是和原来一样,但是这个克隆的账户却是系统中最大的安全隐患。恶戚指意的攻击者可以通过这个账户任意地控制你的计算机。为了避免这种情况,可以用很简单的方法对账户进行检测。
首先在命令行下输入netuser,查看计算机上有些什么用户,然后再使用“netuser+用户名”查看这个用户是属于什么权限的,一般除了Administrator是administrators组的,其他都不是!如果你发现一个系统内置的用户是属于administrators组的,那几乎肯定你被入侵了,而且别人在你的计算机上克隆了账户。快使用“netuser用户名/del”来删掉这个用户吧。
C. netstat 命令的输出内容详解
列出所有端口的命令格式为netstat -lnp。此命令将展示本地监听的网络端口及相关状态信息。
第一部分介绍Proto、Recv-Q、Send-Q等列的含义:
Proto表示协议名称,如TCP或UDP。
Recv-Q表示网络接收队列,即已接收但未被进程取走的数据量。当此值非零时,可能遭遇了拒绝服务攻击。
Send-Q表示网络发送队列,即对方尚未收到或没有Ack的数据,仍处于本地缓冲区。当此值长时间不归零,可能是因为应用向外发送数据包过快或对方接收包不够快。
当Recv-Q和Send-Q非零时,通常为异常状态,应尽快排查原因。
接着是Local Address部分,它提供关于本地端口和IP地址的信息,如监听所有IP地址的端口或特定IPv6地址等。
Foreign Address表示与本地端口通信的外部socket,其显示规则与Local Address相同。
State列展示了链路状态,总共有11种状态。这包括监听、等待连接请求、确认请求、建立连接、关闭等待等。
状态参数包括:
LISTEN:服务端开始监听特定端口。SYN_SENT:客户端主动发起连接请求。SYN_RECV:服务端响应连接请求。ESTABLISHED:连接成功建立,可进行数据交互。FIN-WAIT-1和CLOSE-WAIT:表示关闭连接的主动或被动阶段。FIN-WAIT-2、LAST-ACK和TIME-WAIT:连接关闭的后续状态。CLOSING:不常见状态,表示特定的连接中断过程。CLOSED:连接已完全关闭。状态参数补充包括同步序列编号、确认编号和结束标志,分别用于连接请求、确认数据接收和结束TCP对话。
最后,PID/Program部分提供与socket关联的进程ID和应用名称,方便追踪使用特定端口的应用程序。