Archive for the ‘Network’ Category

Page 1 of 3123»

Linode 360 VPS BenchMark

  昨天帮实验室买了个Linode 360的VPS,梦寐以求哇,迫不及待的去折腾。选在了加州的fremont机房,北京网通的ping值大概在210ms左右,很极品的速度了,ssh上去交互只有一点点地小卡。装的CentOS 5.5,然后配了几个shell账号,通过he.net提供的tunnel broker增加了IPv6的支持,最后装了个启用passenger-ruby模块支持的nginx。明天继续折腾。

  下班前顺便跑了一下Unix Bench 5.1.2,硬件配置上是一颗Intel Xeon L5520 2.27GHz四核的CPU, 8M Cache, Xen虚拟化,360M RAM,16GB Hard Drive。结果如下。

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.2)

   System: li165-73: GNU/Linux
   OS: GNU/Linux -- 2.6.32.12-linode25 -- #1 SMP Wed Apr 28 19:25:11 UTC 2010
   Machine: i686 (i386)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Xeon(R) CPU L5520 @ 2.27GHz (4533.5 bogomips)
          Hyper-Threading, MMX, Physical Address Ext
   CPU 1: Intel(R) Xeon(R) CPU L5520 @ 2.27GHz (4533.5 bogomips)
          Hyper-Threading, MMX, Physical Address Ext
   CPU 2: Intel(R) Xeon(R) CPU L5520 @ 2.27GHz (4533.5 bogomips)
          Hyper-Threading, MMX, Physical Address Ext
   CPU 3: Intel(R) Xeon(R) CPU L5520 @ 2.27GHz (4533.5 bogomips)
          Hyper-Threading, MMX, Physical Address Ext
   18:35:04 up 1 day,  2:19,  1 user,  load average: 0.00, 0.00, 0.00; runlevel 3

------------------------------------------------------------------------
Benchmark Run: 二  6月 08 2010 18:35:04 - 19:03:21
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        9671772.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1914.6 MWIPS (10.5 s, 7 samples)
Execl Throughput                               1259.3 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        302168.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           77339.6 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        880748.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                              425294.5 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  22283.7 lps   (10.0 s, 7 samples)
Process Creation                               2188.1 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   3003.2 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    846.0 lpm   (60.0 s, 2 samples)
System Call Overhead                         437322.7 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    9671772.5    828.8
Double-Precision Whetstone                       55.0       1914.6    348.1
Execl Throughput                                 43.0       1259.3    292.9
File Copy 1024 bufsize 2000 maxblocks          3960.0     302168.6    763.1
File Copy 256 bufsize 500 maxblocks            1655.0      77339.6    467.3
File Copy 4096 bufsize 8000 maxblocks          5800.0     880748.9   1518.5
Pipe Throughput                               12440.0     425294.5    341.9
Pipe-based Context Switching                   4000.0      22283.7     55.7
Process Creation                                126.0       2188.1    173.7
Shell Scripts (1 concurrent)                     42.4       3003.2    708.3
Shell Scripts (8 concurrent)                      6.0        846.0   1410.0
System Call Overhead                          15000.0     437322.7    291.5
                                                                   ========
System Benchmarks Index Score                                         433.5

------------------------------------------------------------------------
Benchmark Run: 二  6月 08 2010 19:03:21 - 19:31:52
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       34776757.0 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     7017.4 MWIPS (10.3 s, 7 samples)
Execl Throughput                               4465.6 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        279935.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           73559.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        993067.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1545852.2 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 153438.0 lps   (10.0 s, 7 samples)
Process Creation                               4991.3 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   6503.9 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    985.1 lpm   (60.1 s, 2 samples)
System Call Overhead                        1479565.4 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   34776757.0   2980.0
Double-Precision Whetstone                       55.0       7017.4   1275.9
Execl Throughput                                 43.0       4465.6   1038.5
File Copy 1024 bufsize 2000 maxblocks          3960.0     279935.4    706.9
File Copy 256 bufsize 500 maxblocks            1655.0      73559.9    444.5
File Copy 4096 bufsize 8000 maxblocks          5800.0     993067.5   1712.2
Pipe Throughput                               12440.0    1545852.2   1242.6
Pipe-based Context Switching                   4000.0     153438.0    383.6
Process Creation                                126.0       4991.3    396.1
Shell Scripts (1 concurrent)                     42.4       6503.9   1533.9
Shell Scripts (8 concurrent)                      6.0        985.1   1641.9
System Call Overhead                          15000.0    1479565.4    986.4
                                                                   ========
System Benchmarks Index Score                                         999.7

Linux中ADSL通过6to4自动穿隧连入IPv6

  前两天捣鼓了一个USB ADSL在VMWare虚拟机中Linux系统中的安装配置和拨号方法。目前青岛网通这里,如果是在Windows环境下,拨号后能够自动获取6to4自动穿隧方式的2002开头的IPv6地址,Linux下的获取需要手动配置一下,并不是很复杂。

  如果是Windows系统,那么通过ipconfig可以得到类似如下的信息。

C:\Documents and Settings\Administrator>ipconfig
Windows IP Configuration
 
PPP adapter AccessRunner DSL:
   Connection-specific DNS Suffix  . :
   IP Address. . . . . . . . . . . . : 123.235.169.32
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 123.235.169.32
 
Tunnel adapter 6to4 Tunneling Pseudo-Interface:
   Connection-specific DNS Suffix  . :
   IP Address. . . . . . . . . . . . : 2002:7beb:a920::7beb:a920
   Default Gateway . . . . . . . . . : 2002:c058:6301::c058:6301

  其中IPv6地址中的7beb:a920正好对应动态IPv4的地址123.235.169.32,而IPv6网关地址中的c058:6301对应的是不变的192.88.99.1,这个192.88.99.1是一个特定的6to4中用于任意点传送的中继路由地址。需要做的就是记好这几个地址的规律。

  然后换到Linux中,配置好ADSL,拨号后连入IPv4网,ifconfig查询到新获得的动态IPv4地址,然后按照上面的规律自行将其转换到6to4方式下2002开头的IPv6地址。例如现在得到的是124.135.17.179,对应的6to4地址为2002:7c87:11b3::7c87:11b3。下面将手动添加6to4隧道和中继路由。

[root@leon ~]# ip tunnel add 6to4 mode sit remote any local 124.135.17.179
[root@leon ~]# ip link set dev 6to4 up
[root@leon ~]# ip addr add 2002:7c87:11b3::7c87:11b3/16 dev 6to4
[root@leon ~]# ip -6 route add ::/0 via ::192.88.99.1 dev 6to4 metric 1026

  添加完后通过ifconfig可以看到新多出的网卡6to4,同时ping6一下ipv6.google.com已经可以正常的显示结果。

[root@leon ~]# ifconfig
6to4      Link encap:IPv6-in-IPv4
          inet6 addr: 2002:7c87:11b3::7c87:11b3/16 Scope:Global
          inet6 addr: ::124.135.17.179/128 Scope:Compat
          UP RUNNING NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)
 
nas0      Link encap:Ethernet  HWaddr 00:08:5C:14:C0:FB
          inet6 addr: fe80::208:5cff:fe14:c0fb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:275 errors:0 dropped:0 overruns:0 frame:0
          TX packets:281 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:23972 (23.4 KiB)  TX bytes:19561 (19.1 KiB)
 
ppp0      Link encap:Point-to-Point Protocol
          inet addr:124.135.17.179  P-t-P:124.135.17.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:236 errors:0 dropped:0 overruns:0 frame:0
          TX packets:236 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:20202 (19.7 KiB)  TX bytes:9883 (9.6 KiB)
[root@leon ~]# ping6 -c 4 ipv6.google.com
PING ipv6.google.com(tx-in-x68.google.com) 56 data bytes
64 bytes from tx-in-x68.google.com: icmp_seq=1 ttl=58 time=384 ms
64 bytes from tx-in-x68.google.com: icmp_seq=2 ttl=58 time=385 ms
64 bytes from tx-in-x68.google.com: icmp_seq=3 ttl=58 time=387 ms
64 bytes from tx-in-x68.google.com: icmp_seq=4 ttl=58 time=390 ms
 
--- ipv6.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3396ms
rtt min/avg/max/mdev = 384.629/386.821/390.147/2.146 ms

  总结配置过程,首先观察windows下6to4方式IPv4地址与IPv6地址的对应关系及其中继路由地址,然后在Linux中添加隧道,设置6to4网卡,添加IPv6地址和中继路由,最后测试成功。

  延伸阅读:http://en.wikipedia.org/wiki/6to4http://en.wikipedia.org/wiki/IPv6

USB ADSL在VMWare中Linux环境下拨号方法

  鉴于北京和山东网通已经提供原生ipv6服务(via newboysyb@newsmth提供了6to4方式的ipv6服务,不过家里的路由器和vmware目前根本就不支持ipv6穿透。为了将ipv6充分利用起来,打算在VMWare中的Linux环境下进行USB ADSL的拨号,这样就跨越了路由器的限制。很繁琐,研究了一个上午才搞定。

1.可行性分析

  网络环境:青岛网通ADSL
  硬件设备:大亚科技ADSL USB Modem,型号DB101-A(Conexant芯片)
  操作系统:VMWare Workstation 6.5.0虚拟机下的Fedora 10(内核版本2.6.27.5)

  整个过程之所以繁琐,最重要的原因是这个ADSL是USB接口的,要像学校里武汉电信ADSL使用的都是RJ-45接口从而system-independent也就舒服了。所以,首先设备必须被kernel所支持,幸运的是一般比较新的kernel都是没有问题的。然后需要检测一下自己的USB ADSL Modem是否被Conexant  AccessRunner芯片的Linux驱动所支持。简单方法如下图,在Windows的设备管理器中查询该设备的16进制Vendor ID和Product ID,然后看是否在这个网页http://accessrunner.sourceforge.net/modems.shtml所示的列表中。如若不然,奉劝早点收手,后面一些都是白费功夫。

2.让USB ADSL穿透VMWare

  这一步的目的是屏蔽掉VMWare这层马甲的影响,让Linux客户机能够“直接”存取这个USB ADSL设备。方法是在虚拟机客户端的设置页中,将USB Controller的Connections三个选项都打勾,然后重新启动Linux客户机,在VMWare窗口的右下角应该就出现了新的USB设备,指向它时会出现“Conexant ADSL USB Modem”字样的提示,然后点击它选择Connect (Disconnect from Host),这样主机便会失去设备连接,转而让Linux客户机获取。

Read the rest of this entry »

毕业IP纪念

  Farewell, my beloved 222.20.38.146.

  Farewell, my beloved 2001:250:4000:8fff:0:5efe:de14:2692.

华中科技大学韵苑学生公寓23#635寝室2号床位IP

答辩:无线传感器网络时间同步算法性能分析

无线传感器网络时间同步算法性能分析

高 磊

(华中科技大学电子与信息工程系,通信与探测研究所)

摘要:
  无线传感器网络近年来颇受关注,时间同步是无线传感器网络的一项重要支撑技术。在理论上对不同类型时间同步机制进行了性能分析;在网络仿真工具NS-2中设计并添加仿真模块,设计仿真脚本,从单跳时间同步精度和消息传输量两个方面评估RBS、TPSN、DMTS三种经典的时间同步机制的性能并与理论结果进行了对比分析。
  研究和仿真实验结果表明在同步精度方面,TPSN算法约比RBS算法优一倍,DMTS算法最次。在消息传输量方面,DMTS最优,TPSN算法和RBS算法则需要进行多次通信,或者需要多于两个节点间的通信。
  此性能分析结果可以为不同需求的场合下的无线传感器网络时间同步算法的选取提供参考借鉴的依据,以求得同步精度和同步开销二者的权衡。

关键词:无线传感器网络;时间同步;NS-2;RBS算法;TPSN协议;DMTS算法

(答辩PPT,其中有一些动态效果在这里看不到,如感兴趣欢迎致信索取)

毕设感想

  毕设老师是要我来用NS-2仿真WSN的某方向几个算法的。

  报题目时,我对这个挺感兴趣,因为NS-2非常复杂和难于上手,我喜欢有挑战性的东西。

  可是,随着毕设的深入,我发现我的远远高估了自己的能力,首先NS-2,这个东西本身所需要的深厚的功底不是简简单单会点coding就能胜任的。我经常会不小心被ns-2某个隐藏的bug卡在半路上浪费掉很多时间,而不能专心下来做coding,更不用说自己代码中的bug和对于下一步要如何实现的无限的空白和无知。

  没有研究生带和引路的日子是异常痛苦的,只有自己在百思、近场论坛上慢慢的观察、讨论,在水木请教诸位大牛,在google上筛选海一般的信息,然后继续硬着头皮去读晦涩的paper,然后思考,然后继续coding。

  对于WSN,我甚至以为它是一个早产的婴儿,我不知道它是否会夭折,在水木上看了很多也想了很多,学术界本身对WSN前途的不明朗负有很大的责任。我在网上请教过一个做过WSN项目的研究生,对于WSN的model搭建,甚至在一无所知的情况下就做出了太多的假设。我发现我下到的那些paper,都没有在讨论WSN的模型究竟最开始是如何搭建起来的,而更多的是在讨论搭建起来以后,可以借鉴和发展哪些具体技术。里面很多假设和模型都是做纯物理层的人看起来根本不正确或不符合实际的。比如做路由的时候就假定通信链路有或者没有,做时间同步的时候又假定链路都建立可以进行数据交换了,可是WSN一开始的连物理层的通信都没建立起来。

Read the rest of this entry »

fGmail 0.2版发布

  新版本特点:主要解决了明文存储Gmail账号信息和飞信账号信息而导致的不安全问题。可以真正的worry free。

  其实很好办,无非是通过shc来将shell脚本加密,生成二进制文件,就无法明文观察到密码了。有人会问,shc的加密真的那么可靠吗?一般来说是安全的,除非使用gdb等调试工具来获取源代码,这种安全级别对我们来说已经足够了。

  如同前一版本一样,fGmail的获取地址在这个Google Code的工程里面。欢迎试用。

fGmail发布!

  Gmail难道开通了新邮件免费短信通知?失望的是,仍然没有。不过,我做了一个“曲线救国”的方案,运用Gmail Feed + wget + sed + libfetion + cron + 我写的小程序fGmail,然后有一台在网的linux主机,即可实现这个功能!

  OK,实现思路如下:Gmail提供了通过Feed访问新邮件的功能,我们通过wget来抓取它并保存成xml文件,然后写个shell脚本运用sed将新邮件数、邮件标题和发送者解析出来,传递给另一个小程序,这个程序利用DDD开发的libfetion库,实现向自己的手机发送短信的功能。将那个shell脚本放在cron中,设定每隔一段时间执行一次即可。是不是很简单?

  我把所有程序都放在了这个Google Code的工程中,直接下载地址在这。除了libfetion等已经声明版权的内容外,fGmail遵从GPLv3协议。

  使用时,只需解压后按照README安装即可。

  费了这么多周折,终于实现了Gmail的新邮件短信通知。不过其局限性也是很显而易见的,如只是Gmail,没有其他邮件,只能是中国移动飞信的已注册用户,要有一个linux系统来跑等等。不过这些限制对我自己来说,刚好已经满足了。

  基于libfetion开发的项目很多,网上最常见的例子比如免费天气预报之类。如果有好的构思,完全可以做出非常实用的东西来。也希望我的这个fGmail小例子能实现抛砖引玉的作用。最后希望能早日实现上手G2的梦想,爽歪歪的直接用手机收发邮件。

Q & A :

Q:Why fGmail?
A:I choose `f’ and `Gmail’ to name it simply for fetion Gmail or fetch Gmail.

Q:Hey, but how about its safety, I mean the Gmail and fetion account information?
A:Your Gmail account information is directly stored in the file `account’, and I am sorry for that. Maybe I will fix it in the next version.

Page 1 of 3123»
  • 全文搜索

  • 按月存档

  • 请猛点这里

    标签云

  • 最新评论

    • Lemok: 诶哟 恭喜包子哥...
    • 谢国冰: 老大 遇到点事情 寻求帮忙 有时间上...
    • Lee: 我也看中了这个,不过好贵呀,最便...
    • Min: 求源码......fla形式...
    • 网上·网下: 真是太棒了,比原文件少了许多,却...
    • Chon: 前两天还特意去看了一下,没研究出...
    • WeekFace: 安全的维护一台服务器需要考虑的太...
    • ugg boot: 这么多人围观,有好吃的要和大家分...
    • nfl jersey: 这么多人围观,有好吃的要和大家分...
    • nfl jersey: 呵呵,有抱枕有骨头,有睡有吃的…...
  • 纵横坐标