对i2c的认识
一开始看到公司做驱动的那些家伙拿着i2c jtag来看一些寄存器之类的东西。
今天查了一下,看到i2c是作为总线接入使用。通过查询发现,i2c可以下挂多个串行总线,目的是用来替代桥或者仲裁;低速和高速设备之间的中间媒介。
通过这样的结构有2个好处:
1,解决了高低速设备之间交换数据的问题。让高速设备不需要等待低速的响应,而直接转为执行其他请求或者指令。
2,扩展了地址线。单地址复用功能。对i2c发送指令进行不同片选,可以让一个地址具备片 选更多设备。
一开始看到公司做驱动的那些家伙拿着i2c jtag来看一些寄存器之类的东西。
今天查了一下,看到i2c是作为总线接入使用。通过查询发现,i2c可以下挂多个串行总线,目的是用来替代桥或者仲裁;低速和高速设备之间的中间媒介。
通过这样的结构有2个好处:
1,解决了高低速设备之间交换数据的问题。让高速设备不需要等待低速的响应,而直接转为执行其他请求或者指令。
2,扩展了地址线。单地址复用功能。对i2c发送指令进行不同片选,可以让一个地址具备片 选更多设备。
先说一说我租房的地方 滨江区来家里,在我联系到房东家咨询房子的时候。房东他老婆就在电话里给我打招呼了:“平时网络可能卡一些,如果网络卡,可别太有意见啊?”
其实听到这句话的时候我就比较的奇怪了,来到房东家看了房子之后,还不错价格也高了一些。但看着房东好像很老实的样子,我也就没有太多的怀疑。加上房东也是本地人(口音听得出来),觉得杭州人还是挺好打交道的。
入住当初不慎了解到了房东家的路由和pppoe帐号密码。因为路由器是tplink低端货,不支持qos。我家也刚好有一个这样的路由,记得通过升级某个版本的软件,就有qos。
后来一直努力查找,终于找到了一个软件版本支持qos的。升级之后为了避免房东发现,我于是将密码改掉。估计房东也知道我改掉密码了,不过他并不知道他家的路由已经支持限速功能了。
入住这么几个月里,一直用路由器的限速功能做测试。统计全网中下载最狠的(包括用一些p2p协议看电影),前提是我通过mac和ip绑定。这样的结果就是每次dhcp到的ip是固定的除非用户自己设定一个合法的ip。
这需要从tcp慢启动开始说,慢启动的意图在于让网络通道处理理想状态下。理想状态:发送方发送的间隔=网络中刚好不重传的情况(理想不丢包)。
假设tcp窗无穷大。那么就有这么一个局面,网络中暂时储存着一些数据包(由于延时造成)。这时计算得到的结果是带宽延时积= ping延时 * 网络速率(这个速率是TCP协议速率= 理论速率 – (帧头+尾)) / 8 (现在的单位是byte,除于8就是将bit换成byte)
设想2个队列,一个是由于网络暂存特定抽象的,另一个是TCP窗。
初学winpcap, 看着例子过来的。winpcap的文档还是有些简单;大多都是列出了函数列表,让用户去看。对于我这类E文差到极点的人来说,还是吃力。
好在还有一个中文的理解解说。这个u_char *pkt_data在很多运用中都应该能用到,他是一个内存buff的指针,指向抓到的数据包(也有可能是解析过的数据包)。
1,在关于流量统计的一文中,这个pkt_data的数据结构被winpcap自己格式化,因此出现了自有的格式。
2,在过滤器抓取数据包一文中,这个kt_data指向的数据又是从osi第一层封装中取出来的数据。
因此,在不同的情况下。pkt_data将会有多种数据结构。
以前太过于片面的理解嵌入式了,所以了解到arm之初就开始学起了arm。那时候要补的知识太多了,同时又是学生时期,迷茫也没有人带;再加上寝室作息有问题,导致曾一度放弃。其实回头想一想,arm也许会比也么高不可攀,学习不得要领;基础知识也不够用,有问题那是当然的。
现在arm的人越来越多,其实我还是很羡慕他们做arm的人。但可惜的是,由于google(java-linux)操作系统的推出,让我非常的失望。几乎手机嵌入式又要回归到java上,我并不排斥java。但java程序员中太烂的人太多了,不像C/C++一样具有选择性。只有强者才能做到核心的部分。
前几天散热一直有问题,后来拆开看了才知道原来是出风口堵住了。清洗了一下,然后装回原位。
装的时候没有注意把一个机壳上的螺丝扭到了散热器上面。后来发现散热老不畅,原先并不知道可能是这螺丝的问题。
但后来尝试着把这个螺丝给调换回去,调换后发现还真有用。温度逐渐下降,差不多有2度差别吧。
可见螺丝的在某些部位起到了导热的作用。
新进入这家公司不久,还在试用期内时间暂时也不会太多。听说转正后事情会多一点,我看那情况事情也多不到哪去。无非就是周末加班,无论怎样了。工资觉得不多那是也主要让我想兼职的动机。
我的工资应该是应届生比较普遍的一个价位吧。待遇没谈,但刚来面试的时候,人力就说,努力一点可能能拿到本科应届生中上层次(2.8-3K)。
试用期工资也发了,也按照签约当初的价格发的。但我记得有个明文规定,试用期是转正后的8折。换句话说,转正了和试用期的工资差别也不是很大;人力在和我签约时候一个劲的再说转正后会调整。我越听越糊涂了,难道是转正后有人要往上调?
今天房东去复位交换机和路由器。其实也该是复位的时候了,天气又热;又有在线看电影的。后来我就设置了一下路由的限速,一不小心,路由就出现处理数据包来不及的情况。也不知道是cpu忙,还是缓冲满了。
复位的时候,房东可能操作不当,造成我这边出现了3-4次网卡up 和 down。没想到,就这么一下子,网卡就假死了。表现为,网卡不转发数据,也不接受数据。当是否down网卡芯片还是有反应。
这样的情况,我记得以前出现过。次数不算多,这次出现的特别严重。主板芯片组是sis的,网卡也是。后来我自己用拔插网线的方式复现了一次,基本断定是网卡部分的问题。
防浪涌应该改是每一个网卡都应该做好的,现在的笔记本越来越白菜价。看来背后是这样的偷工减料,要怎么说都不知道了。
首先说一下标题中提到2者之间的联系。半开连接是针对TCP协议来说,而且这种做法是普遍运用于BT,电驴用。
因为半开连接对于谁来说都是一种高效的做法。
先说一说路由器丢包的问题。
今天在BT下载时,偶然发现路由的log上有这么一些信息:
Free=866, Busy=158, Bind=154, Inv=0/1, Bc=0/0, Dns=109, cl=48, fc=0/0, sq=2/30
Free在路由初始化时,被设置成了1024,bind=0.其他的几个也没怎么看明白,Dns应该是dns请求数吧,cl可能是换行符?或者别的。sq可能是arp请求?bind难道和端口映射有关?
而free的初值,我想就应该是路由器的转发缓冲了。至于有多大?不知道,只知道有1k的缓冲项能力。当我把bt打开时,busy可以达到1000+,可见BT在寻找节点初的请求量,当若干分钟后busy会稳到200左右。后来我又打开电驴,初始化之初,free只有600。之后逐步递减到400左右。
路由丢包,原因已经很清楚。就是缓冲溢出,转发能力造成的。如果局域网内有多个高网络并发网络程序,那么很有可能会造成网络堵塞。这与adsl上行拥堵造成的网络不畅通有相似之处,也有差别。
同时,我也佩服这BT客户端,居然能在初始化之初并发这么大。相对电驴还是温和一些。
回过头来说半开连接,他是TCP四次握手(断开连接)的一种特例。正常情况下,如果四次握手行为中,只有2次握手出现,那么有一方很有实用了半开连接。
一个很明显的案例就是C/S中,服务器listen,然后accpet,在established后,客户端即将断开连接。此时会出现TCP的四次握手。但为什么四次握手之后,服务器依然还能接受本socket的TCP连接呢?
因为服务器就是用了类似半开连接的做法。在给予客户端FIN确认时。自己虽然关闭掉了一个worker线程,但并没有关闭自己的实际连接。因此它能够继续listen , accpet下去。
至于其他更多的内容,还需要我进一步的学习才会清楚。
星期五的时候,工头(PL)过来说,某思的C#小组要过来10个人。然后呢就说腾位置给他们的事情,说着说着就想起那个梦。
最后工头们最后商量着吧,就把某思的位置定在了会议室。于是乎一个下午大家就都忙活起来,回到住处。一直在反思这自己,难道会有这么巧的事情?于是想到,就记下来吧。用blog将每一次的巧合记下来。看一看到底是不是真有其事不就知道了?呵呵。
我家有一个tplink的r402m,房东家也是这个。测试的都是用我的笔记本,只不过防火墙换了一下。
特点如下,在我的笔记本上同时开电驴和BT以后,会发现网络阻塞。就连路由的web管理页面都很难打开。
当我关掉其中一个以后,情况会有一些好转,当我都关了以后,路由需要一定时间才会稳定到初始状态。甚至有些时候路由都会出现转发数据包困难。
手头因为没有这个路由的原理图一类的玩意,也很难去判断,到底是以太口的缓存溢出,还是ARM遇忙。
刚刚看到tcp/ip的dns部分,之前并不了解方向解析的真实作用。看到这部分之后,回想起几年前的BT伪造数据包攻击事件,我才想起来。
先回顾一下几年前针对p2p的攻击,攻击都很清晰,大都是在p2p网络里面伪造数据包。伪造的数据包也连通报头也一起伪造,因此ip和mac基本都是假的。后来在BT下载器里面,就有人用到了免费代理ip的做法。
我记得好像是在BT网里面选择几台知名的服务器做代理ip,他们的数据包都通过这些代理服务器转发认证。也就是说,在BT链接初期,节点直接的链接是靠代理服务器来中间媒介完成的,同时代理服务器中也会同时记录下客户ip。而被请求端则使用方向解析的方法来认证ip地址的合法性。至于具体细节我已经模糊了,由于关键字的淡忘,现在已经很难找到当时的文章。
方向解析的实质,就是将ip地址翻译成域名。可以看作域名解析的逆过程。但不可等同,因为配置未必就是ip和域名一一对应关系。
在这里又多出一种解决问题的办法,在很多的确都有运营商dns劫持的情况。如果采用dns方向解析,其实很能说明问题。因为有些地区的劫持相对隐蔽一些,在http会话里面做过手脚。
是在受不了IE内核了,终于打算换一个。
首先说一下我的环境吧,winxp sp2 64bit,听说这个版本是基于win 2003 server 64bit修改过来的。说实在的,这个xp 64bit的确有很多一些隐性的性能特性,要比32bit好很多。但不知为什么,居然昙花一现。。。估计这是MS的有意的吧?
我用的是ie 8 64bit版本。硬件是t1400的u, 2g 的 内存。
因为平时都很干净,除了flash控件以外,也没有太多别的玩意。因此也很少遇到ie8莫名其妙假死的情况。正因为如此,我一直感觉ie8已经够我用了。
但一些很头疼的问题也不是没有,比如说遇到一些网页的时候。cpu占有会出现很大的抖动,而有一些时候100%的占有时间又比较长。不过最终都会逐步回落到正常水平。打开IE速度也是个问题,打开网页同样也是个问题。瞬间的假死,会让人错觉认为是网络慢造成。
我的简历一直挂在招聘网上,我没有去投,也没有设置访问权限。但始终会出现一个搞笑的公司去浏览我的简历。不是我浮躁,而是他们的确都很搞笑。更不用说打电话给我的一些搞笑公司。
我很多时候在简历上写的清清楚楚的,我要找一个编程方面的岗位。目前的状态的是:观望好的机会。
而大部分打电话给我的公司,都会这么一句话:“你找到工作了吗?”
正当他们问这句话的时候,其实我很想挂电话。不过也有少数电话会这样问道:“我看你的简历是写,观望。不知道你现在工作情况如何?”反而接到这样的电话会让我有一些好感。
因为运营商的问题。不得不面对这么现实!