wireshark抓包了解tcp建立过程

  categories:资料  author:

1. wireshark界面

wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,

2. 选择一个网卡。

点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡。然后点击”Start”按钮, 开始抓包

3. Wireshark 窗口介绍

WireShark 主要分为这几个界面

1. Display Filter(显示过滤器), 用于过滤

2. Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表

3. Packet Details Pane(封包详细信息), 显示封包中的字段

4. Dissector Pane(16进制数据)

5. Miscellanous(地址栏,杂项)

4. Wireshark 显示过滤阅读全文

tcptraceroute 、Traceroute和tracert

  categories:资料  author:

1 Traceroute

Traceroute最简单的基本用法是:traceroute hostname

Traceroute 程序的设计是利用ICMP及IP header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1 的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器 (router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个 「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后, 便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由 器…… traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个 datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么 traceroute如何得知目的地到达了呢?

Traceroute 在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此 UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute … 阅读全文

Android App应用之发布各广告平台版本

  categories:android资料  author:

来源:http://www.cnblogs.com/qianxudetianxia/archive/2012/12/25/2830343.html

Android的广告平台是很多的,各市场对各平台的接受程度是不一样的,Android的开发者如果想集成广告基本要考虑下面两个问题:
(1)集成什么广告,会赚钱?
(2)集成什么广告,不会被市场拒绝?
最终的结果往往是折中的。
第一个问题是广告平台的判断问题,我没有发言权去评论,本文主要是针对第二个问题展开。
解决方案就是打包应用的不同广告平台版本,本文接下来逐一展开相关话题。

1. 基础
本文其实是针对《Android学习系列(6)–App模块化及工程扩展》和《Android学习系列(31)–App自动化之使用Ant编译项目多渠道打包》的一个扩展和应用场景。
所以当然也需要这两篇文章的基础:
(1). Android类库的应用
(2). 因为要结合自动编译各市场版本,所以要更新编译打包的脚本,当然这一步是可选的,如果你愿意手动的话。

2. 广告平台的选择
我以三个平台为例子吧:万普,有米,桔子。
这里我强调的是,我不做广告,我不是要推荐这三个平台,只是以三个平台为例子。同时,我还要骂这些广告平台,拖款,扣量等等。
为什么选择这三个平台?
(1). 万普是单价比较高,应用比较多,收入比较好,很多开发者选择这个平台,但是因为之前推送的用户体验和积分墙问题,被很多市场封杀,很典型。
(2). 有米,宣传做的好,但是普遍反映收入低,banner广告和积分墙是分开的,所以banner部分可以单独拿出来,发布到一些要求严格的市场。
(3). 桔子,暂时也不大了解,有积分墙,貌似打款还算比较积极,很多新平台开始都很积极(随便挑了个新平台陪衬陪衬吧)
有人说,使用聚合呀,能够使用不同的广告平台,我觉得这和本文讨论是完全不同的两个问题,此处省略五千字。

3. 集成架构
在讨论集成架构之前,我们必须讨论一下应用和广告的关联方式:
(1). 多对多的关系,一个广告平台肯定会被嵌入到很多应用中,一个应用往往也需要发布多个广告平台的版本。
(2). 一对多的关系,这一条是和第一条矛盾的,但是,广告平台的sdk本身就是解决了嵌入到各个应用的问题,而且真要考虑多对多的方案,会很麻烦而且无太大价值,所以我们的重点是,一个应用发布多个广告平台的版本。
(3). 先广告,后应用,再后广告平台。意思是,一开始就考虑广告的集成,但是仅仅是空白占位,什么地方显示banner,要不要在哪里显示个应用推荐,留个空方法会接口;然后开

发应用;应用完成之后,在考虑如何集成不同的广告平台,根据不同的平台重写不同的广告占位,或者是以不同的广告形式展示广告。
在这几个考虑的前提下,我画出如下的集成架构图:

image_thumb[1]

这个架构图是系列应用的一个例子,不仅每个应用能发布多个广告版本,而且一个基库能封装定制出多个应用,这应该是一个比较典型的例子。

4. 阅读全文

activemq的消息存储机制

  categories:mq  tags:  author:

一.KahaDB简介

ActiveMQ 5.3以后,出现了KahaDB。她是一个基于文件支持事务的消息存储器,是一个可靠,高性能,可扩展的消息存储器。
她的设计初衷就是使用简单并尽可能的快。KahaDB的索引使用一个transaction log,并且所有的destination只使用一个index,有人测试表明:如果用于生产环境,支持1万个active connection,每个connection有一个独立的queue。该表现已经足矣应付大部分的需求。
KahaDB内部分为:data logs, 按照Message ID高度优化的索引,memory message cache。

data logs扮演一个message journal,存储消息和命令。当大小超过了规定,将会新建一个data log
.所有在data log里的消息是引用计数的,所以当一个log里的消息不在需要了,这里在添加一句, 经过测试是这个文件中全部消息都可以不再需要了, 才进行后续操作, 假若有一条消息还需要保留, 则整个文件都是被保留的, 因此若是, 您万一多个或者全部日志文件里面都有少量消息需要保存, 这样会造成日志的无法删除,在最坏的情况下, 若是配置了相关的kahadb的相关流控(其实也是磁盘容量,内存容量等的限制),若是日志文件长期无法删除, 会造成生产者无法再发消息(由于磁盘空间占用等达到限额, 并且日志又不能删除,没有多余磁盘空间,因此在配置正确情况下, 客户端会接受到相关的异常信息, 配置不好的, 用户会被挂起,并且没有异常消息的。),可以被删除或者放入archived文件夹。每次消息的写入都是在log的末尾增加记录,所以存储速度很快。
缓存则是临时持有那些有对应消费者在线的消息。如果消费者反馈消息已经成功接收,那么这些消息就不用写入磁盘。
BTree索引,保存消息的引用,并按照message ID排序。Redo log是用来保证MQ broker未干净关闭情况下,用于Btree index的重建。
KahaDB的目录会在你启动MQ后自动创建(使用了KAhaDB作为存储器),

db log … 阅读全文

ActiveMQ 中消息并行存储转发

  categories:mq, 资料  author:

英文文章地址:http://fusesource.com/docs/broker/5.4/persistence/KahaDB-Concurrent.html

Concurrent store and dispatch is a strategy that facilitates high rates of message throughput, provided the consumers are able to keep up with the flow of messages from the broker. By allowing the storing of messages to proceed … 阅读全文

利用MyBatis Generator自动创建代码

  categories:资料  author:

如果你使用过hibernate的eclipse插件自动创建DAO文件,那么就容易理解下面介绍的内容;如果你还没有用过hibernate也无妨。下面介绍使用mybatis 3的eclipse插件自动生成相关文件以及如何使用这些文件。

eclipse插件安装地址:http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/

附件有link安装包,link安装方式参考http://maimode.iteye.com/admin/blogs/1164524

MyBatis Generator详细介绍参见:http://code.google.com/p/mybatis/wiki/Generator

安装插件的过程就不说了,安装完后,eclipse中File-》new-》other中会发现多了mybatis选项说明插件安装成功。

插件安装成功后new选项中多了mybatis

 

如何使用插件

在任意项目中利用上图中的向导创建generatorConfig.xml文件(名称可修改)然后修改文件内容,主要是设置连接数据的相关参数:

Xml代码
  1. <?xml version=”1.0″ encoding=”UTF-8″ ?>
  2. <!DOCTYPE generatorConfiguration PUBLIC “-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN” “http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd” >
  3. <generatorConfiguration >
  4. <context id=”context1″ >
  5. <jdbcConnection driverClass=”oracle.jdbc.driver.OracleDriver” connectionURL=”jdbc:oracle:thin:@192.168.2.21:1521:ORCL” userId=”atfm” password=”atfm” />
  6. <javaModelGenerator targetPackage=”com.topsci.atfm.persistence.mybatis.model” targetProject=”ATFM” />
阅读全文

ActiveMQ学习入门-快速安装与测试

  categories:mq, 资料  tags:  author:

一. ActiveMQ简介

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。

⒈ 多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP

⒉ 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)

⒊ 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性

⒋ 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上

⒌ 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA

⒍ 支持通过JDBC和journal提供高速的消息持久化

⒎ 从设计上保证了高性能的集群,客户端-服务器,点对点

⒏ 支持Ajax

⒐ 支持与Axis的整合

⒑ … 阅读全文

Android App消息通知机制

  categories:android资料  author:

来源:http://www.cnblogs.com/qianxudetianxia/archive/2011/05/03/2029704.html

有人说,程序员很安静,但我不完全同意,程序员的聒噪,是藏在代码后面,是藏在程序后面。

这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。

1.消息推送机制
     服务器器端需要变被动为主动,通知客户一些开发商认为重要的信息,无论应用程序是否正在运行或者关闭。
     我想到了一句话:Don’t call me,i will call you!
     QQ今天在右下角弹出了一个对话框:"奥巴马宣布本拉登挂了…",正是如此。
     自作聪明,就会带点小聪明,有人喜欢就有人讨厌。

2.独立进程
     无论程序是否正在运行,我们都要能通知到客户,我们需要一个独立进程的后台服务。
     我们需要一个独立进程的后台服务。
     在AndroidManifest.xml中注册Service时,有一个android:process属性,如果这个属性以"."开头,则为此服务开启一个全局的独立进程,如果以":"开头则为此服务开启一个为此应用私有的独立进程。举个具体的例子吧,我们新建了一个 Application,创建了主进程com.cnblogs.tianxia,那么:

<!--下面会创建一个全局的com.cnblogs.tianxia.message的独立进程-->
<service android:name=".service.MessageService" android:label="消息推送" android:process=".message" />
<!--或者-->
<!--下面会创建一个应用私有的com.cnblogs.tianxia:message的独立进程-->
<service android:name=".service.MessageService" android:label="消息推送" android:process=":message" />

    我们没必要建立一个全局的,本文选择第二种方案,创建一个当前应用私有的独立进程。 … 阅读全文

NetCat的使用

  categories:资料  author:

一。 netcat 简介


NetCat是一个非常简单的Unix工具,可以读、写TCP或UDP网络连接(network connection)。它被设计成一个可靠的后端(back-end)工具,能被其它的程序程序或脚本直接地或容易地驱动。同时,它又是一个功能丰富的网络调试和开发工具,因为它可以建立你可能用到的几乎任何类型的连接,以及一些非常有意思的内建功能。NetCat,它的实际可运行的名字叫nc,应该早很就被提供,就象另一个没有公开但是标准的Unix工具。

(windows下也有相应版本的nc, 下载地址如下: http://eternallybored.org/misc/netcat/

功能同linux下的类似。


  最简单的使用方法,”nc host port”,能建立一个TCP连接,连向指定的主机和端口。接下来,你的从标准输入中输入的任何内容都会被发送到指定的主机,任何通过连接返回来的信息都被显示在你的标准输出上。这个连接会一直持续下去,至到连接两端的程序关闭连接。注意,这种行为不同于大多数网络程序,它们会在从标准输入读到一个文件结束符后退出。
  NetCat还可以当服务器使用,监听任意指定端口的连接请求(inbound connection),并可做同样的读写操作。除了较小限制外,它实际并不关心自己以”客户端”模式还是”服务器”模式运行,它都会来回运送全部数据。在任何一种模式下,都可以设置一个非活动时间来强行关闭连接。
  它还可以通过UDP来完成这些功能,因此它就象一个telnet那样的UDP程序,用来测试你的UDP服务器。正如它的”U”所指的,UDP跟TCP相比是一种不可靠的数据传输,一些系统在使用UDP传送大量数据时会遇到麻烦,但它还有一些用途。
   你可能会问”为什么不用telnet来连接任意的端口”?问题提得好(valid),这儿有一些理由。Telnet有”标准输入文件结束符(standard input EOF)”问题,所以需要在脚本中延迟计算以便等待网络输出结束。这就是netcat持续运行直到连接被关闭的主要原因。Telnet也不能传输任意的二进制数据,因为一些特定的字符会被解释为Telnet的参数而被从数据流中去除。Telnet还将它的一些诊断信息显示到标准输出上,而NetCat会将这信息与它的输出分开以不改变真实数据的传输,除非你要求它这么做。当然了,Telnet也不能监听端口,也不能使用UDP。NetCat没有这些限制,比Telnet更小巧和快捷,而且还有一些其它的功能。
  NetCat的一些主要功能:

1. 支持连出和连入(outbound and inbound connection),TCP和UDP,任意源和目的端口

2. 全部DNS正向/反向检查,给出恰当的警告

3. 使用任何源端口

4. 使用任何本地设置的网络资源地址

5. 内建端口扫描功能,带有随机数发生器

6. 内建loose source-routing功能

7. 可能标准输入读取命令行参数

8. 慢发送模式,每N秒发送一行… 阅读全文

64位xp系统下打开ahci功能介绍

  categories:资料  author:

一.64位xp的安装和中文设置


使用了windows8 64位系统一段时间了, 各种功能还可以, 但是最近需要应用vmware软件做些网络方面的练习,采用了vmware软件做了工作, 但是网络上老是有些问题, 怎么也没办法解决,最后更换了virualbox虚拟机软件, 问题也没有真正解决, 最后决定还是使用xp吧。也许程序使用xp才是明智之举。

为此安装了xp的64位版本, 这样才能比较充分发挥笔记本内存的优势。现在大于4G内存的笔记本到处都是了, 普通的32位xp最多3g内存也就差不多了, 对于4g内存比较浪费,因此64位内存是比较合适。

安装32位xp现在都是采用ghost安装方法比较好的, 安装速度快,也方便,但是安装64位系统没有那么简单。

最后采用64位英文版本的xp系统安装, 安装完成后安装 中文语言包。在安装中文语言包时, 有几个选项都要选择默认中文语言, 对于非unicode的文字编码需要采用中文支持。

最后安装完成后再控制面板中选择地区语言等, 把相关设置都更换成中文和中国等设置,重新启动xp后系统界面变成中文界面。



二.为64位xp打开ahci功能


按照上述方法安装完成xp的64位系统没有打开ahci功能, 硬盘访问比较慢,让人难以忍受。因此考虑如何打开xp下的ahci功能, 在百度搜索了很长时间后,选择了如下文章。参照文章进行相关设置。相关设置比较麻烦,但是文章很详细了,大家可以参照。(这个文章介绍的,笔者没有成功, 最后还是蓝屏了, 但是这个过程是大家要了解, 后面我们会介绍在这个文章基础上稍作改进就可以避免蓝屏了。)

Ahci驱动程序下载地址如下:

http://drivers.mydrivers.com/drivers/426-170722-Intel-Rapid-Storage-Technology-10.5.0.10/2


首先确保bios中硬盘设置不是ahci模式, 是兼容模式。然后仔细参考下面文章。

1. 大家打开硬件的管理界面, 如下图。 若是您不熟悉这个过程, 建议您找个熟悉系统的人进行操作, 否则您可能要重新安装操作系统。

请注意按照下面的步骤进行的操作, … 阅读全文



快乐成长 每天进步一点点