2004年11月27日

  NS是一个离散事件模拟器,是一种常用的系统模拟模型。就是说,时间决定了系统状态的改变,状态的修改是在事件发生的时候进行的,典型的事件包括分组到达、时钟超时等。
  NS本身已有大量的构件库,这些构件库是由两种面向对象的语言编写的:C++和Otcl。Otcl就是ObjectTCL,即面向对象的TCL(Toolkit Command Language)。Otcl就是在TCL中加入了类的概念。
  NS的模拟步骤一般如下:
  (1)编写TCL脚本。配置网络的拓扑结构。
  (2)建立协议代理,包括端设备的协议绑定和通信业务量模型的建立。
  (3)配置业务量模型参数。
  (4)设置trace对象。trace就是把模拟过程中发生的特定事件记录在trace文件中,我们就是通过trace文件来分析研究。
  (5)配置其他过程。
  (6)用NS解释执行TCL脚本。
  (7)分析trace文件。
  (8)调整配置业务量模型重新进行模拟。



一个trace文件的结构:
event time from_node to_node pkt_type pkt_size flage fid arc_addr dst_addr seq_num pkt_id
event:事件,包括如下几种:
 r:receive(at to_node)
 +:enqueue(at queue)
 -:dequeue(at queue)
 d:drop  (at queue)
time:事件发生时间(单位:秒)
from_node:源地址
to_node:目的地址
pkt_type:分组类型
pkt_size:分组大小
flage:标志位
fid:IPV6定义的流标识符
src_addr:分组源地址
dst_addr:分组目的地址
seq_num:序列号
pkt_id:分组唯一标识符

        在课堂上,女教师提问:“要么给我自由,要么让我死。’这句名言最早出自谁之口?
知道的请举手。”


  过了好大一会儿,才有个从日本来的新学生山本用不大熟练的英语回答:


  “1775年,巴特利克·亨利说的。”


  “很好,那么,‘民有、民治、民享’是谁说的。”


  “1863年,亚伯拉罕·林肯说的。”


  完全正确,同学们,刚才回答问题的是位日本学生,


  可是生长在美国的同学却回答不出,多么遗憾啊!”


  “把日本人干掉?”教室里突然发出一声怪叫。


  “谁!谁说的!”女教师气得满脸通红。


  山本立刻回答道:“1945年,杜鲁门总统说的。”


  这时候有人小声嘟囔道:“这真叫人恶心……”女教师听到后更加生气


  “好吧,这是谁说的!?”


  “1991年,乔治·布什会见日本首相时候说的。”山本回答。


  另外一个学生拍着桌子大笑:“耶!你真他妈的够劲。”


  “1997年,比尔·克林顿对莱恩斯基说的。”


  整个班级都陷入混乱,一些学生冲山本高喊:你这泡狗屎,你再敢说话我就把你干
掉。”


  “2001年,盖瑞·康迪特对莱薇说的。(注:莱薇系白宫实习生,2001年被谋杀于华盛
顿。其前男友、民主党人康迪特做为嫌疑人被拒捕)


  女教师气的晕倒在地,学生们在她身边围成一圈。


  一个学生说:“妈的,这回我们有大麻烦了。”


  “2002年,亚瑟·安德森说的。”山本立刻回答道。
  (注:亚瑟·安德森,安达信会计事 务所,美国五大会计公司之一,2002年因为安龙丑闻而陷入倒闭境地)

自动代理脚本Proxy Auto-Config(PAC)是一种很有用的功能,它是一种javascript脚本,任何一个浏览器软件都有这种功能,但实际使用中用的人并不多。
我们都知道某些网址不使用代理的解决方法是选中“对于本地地址不使用代理服务器”,并把这些不使用代理的地址加入到本地地址中去。可是有两个问题(或者说是一个问题)是用代理上网的人经常遇到的:
1、只有部分地址使用代理服务器的情况。
2、数个代理,其中一部分地址走代理A,另一部分走代理B,……
解决的方法,就是不停的换代理,重新设置,用到哪个代理就设置那个,不用就取消。但是用自动代理脚本,完全就可以一劳永逸的解决这个问题。
自动代理脚本可以根据你要访问的网址(或是IP地址)来自动的选择代理地址,当然会有一点点性能上的损失,但是不大。


PAC脚本中必须定义一个名为FindProxyForURL的函数,这个函数会被浏览器自动调用。其格式如下:


function FindProxyForURL(url, host)


{


……



下面举例来说明:
function FindProxyForURL(url, host)
{
 if(isPlainHostName(host))  return “DIRECT”;
 
 else if(
  (shExpMatch(host, “*.microsoft.com”)) ||
  (shExpMatch(host, “*.passport.com”)) ||
  (shExpMatch(host, “*.passport.net”)) ||
  (shExpMatch(host, “*.passportimages.com”)) ||
  (shExpMatch(host, “*.windowsupdate.com”)) ||
  (shExpMatch(host, “*.hotmail.com”)) ||
  (shExpMatch(host, “*.msn.com”)) ||
  (shExpMatch(host, “*.msdnaa.net”)) ||
  (shExpMatch(host, “*.interactservices.com”)) ||
  (shExpMatch(host, “*.thespoke.net”)) ||
  (shExpMatch(host, “*.gotdotnet.com”)) ||
  (shExpMatch(host, “*.asp.net”)) ||
  (shExpMatch(host, “*.wimdows.net”)) ||
  (shExpMatch(host, “*.worldofdotnet.net”)) ||
  (shExpMatch(host, “*.wimdows.net”)) ||
  (shExpMatch(host, “*.c-sharpcorner.com”)) ||
  (shExpMatch(host, “*.imaginecup.com”))
  
 ) return “PROXY 202.194.15.124:8080; DIRECT”;//表示当前一个代理无效时,直接连接
 
 else if(
  (shExpMatch(host, “gmail.google.com”))||
  (shExpMatch(host, “*.spymac.com))||
  (shExpMatch(host, “*.mymallop.com”))


 ) return “PROXY 61.179.12.210:80″;//代理服务器地址


 else return “DIRECT”;
}


上面的脚本中,一些微软的网站,使用专用代理202.194.15.124:8080,而其他的网站比如gmail、mymallop等,使用61.179.12.210:80的代理服务器,你还可以根据自己的需要进行修改和添加。
然后保存为.pac文件,如proxy.pac。在浏览器里面选中使用自动配置脚本,使用file://协议键入file://c:/proxy.pac格式的地址就可以了。

FTP 是一种数据传输协议 (File Transfer Protocol),它的连接模式有两种: 主动模式( active )和被动模式( passive )。


以下说明FTP的连接是怎样建立的:


在 active 模式下 (一般预设的模式):


FTP client 开启一个随机选择的TCP port 呼叫 FTP server 的 port 21请求建立连接。当完成 Three-Way Handshake 之后,连接就成功建立,但这仅是命令通道的建立。
当两端需要传送数据资料的時候,client 透过命令通道用一个 port command 告诉 server ,client可以用另一个TCP port 做数据通道。
然后 server 用 port 20 和刚才client 所告知的 TCP port 建立数据连接。注意:连接方向是从server 到 client 的,TCP 分组中会有一个 SYN flag。
然后 client 会返回一个带 ACK flag的确认分组﹐并完成另一次的 Three-Way Handshake 过程。这時候,数据连接才能成功建立。开始数据传送。
 
在 passive 模式下:


FTP client 开启一个随机选择的TCP port 呼叫 FTP server 的 port 21请求建立连接,完成命令通道的建立。
当两端需要传送数据的時候,client 通过命令通道发送一个 PASV command 給server,要求进入 passive 传输模式。
然后 server 像上述的正常模式之第 2 步驟那樣,挑一個TCP port ,並用命令通道告訴 client。
然后 client 用另一个TCP port 呼叫刚才 server 告知的 TCP port 来建立数据通道。此时分组中带有 SYN flag。
server 确认后回送一个 ACK 分组。并完成所有握手过程﹑成功建立数据通道。
开始数据传送。 在实际使用中, active mode 用来登入一些架设在主机上没有安装防火墙的 FTP server,或是架设在 client side 的 FTP server! Passive mode (简称 PASV)用来登陆一些架设于防火墙保护下而又是开设于主机上的 FTP server!

2004年11月26日

1:我要数星星 
单位年底欢聚,一个平时很沉稳的同事那天喝得眼睛血红。领导见势不好,赶紧让我把他送回家。可等我伸手招来出租车,这同事却死活不上车,反而兴致勃勃的坐在了马路沿上。只见他抬起头,很豪壮的对着天空说:“谁说天上的星星数不清,今天晚上我就要把它们都数出来!” 

2:拦警车 
一次吃饭,一个哥儿们喝的有些高,但看起来还算清醒,大伙就没理他。饭局散场的时候,这哥儿们忽然冲到马路中央,伸手拦住了一辆正在巡逻的110警车,然后拉开车门,冲坐在里面的警察大声说:我知道你们这车一块一一公里,(青岛的出租车定价是每公里一块一)可你们也用不着写这么大给我看,你们以为我是近视眼呀…… 

3:生意真好 
去饭店吃饭,有个哥儿们中途去厕所,回来后很神秘的告诉我们:“这家酒店的生意太好了,连厕所里都摆着两桌!” 
大伙正奇怪的时候,一伙人冲了过来,揪起那哥儿们就要打。我们当然不干了,问他们:他又没惹着你们,你们打他干什么? 
“打他干什么?我们吃饭吃的好好的,可这家伙跑到我们包房里撒了泡尿就走。” 

4:车漏油了 
有一个比较酷的哥儿们,一次他身穿皮裤脚蹬摩托去赶饭局。一通傻喝之后,大家撤退。在路边分手的时候,这哥儿们忽然尿急起来,就走到一棵树下,没解皮裤,但解开了腰带,只见他手提着腰带,冲着大树就开始畅快起来。结束的时候,他还拎着腰带一通狂抖。 
然后,他推出自己的摩托车。就在他要发动的时候,他注意到皮裤下的地面居然湿成了一团。于是,他特迷糊的问了我们一句:“奇怪,我的车怎么漏油了?” 

5:钞票大放送 
当年在报社的时候,有个同事,他有个特传奇的爱好,一喝高了就喜欢给人发钱,一人一百,让人打车回家。谁不要他就跟谁急,狠不得暴打人家一顿。 
可一到第二天,他就特委屈的挨个跑到人家面前,摆出一付可怜相:“大哥,把昨天给你的钱还给我吧……” 
最搞笑的是,同样的给人发钱的事,一个月内居然在他身上发生了三次。 

6:扔手表 
我老爸,酒醉后总爱和人打赌,有一次他深夜不回,我们去各酒馆找他。找到他时,他正在大街上嚷嚷着要和另一个人比手表的优劣。吵到最后,他老人家把手腕上的欧米茄脱下,往街对面一扔,然后急步走过去捡起来兴奋地大叫:“你看,我的手表还在走,你也来试试?” 

7:四海为家 
我家门前有个花坛,有天清晨出门,发现花坛里睡着一个哥儿们,浑身上下只有一条小裤衩。 
而他的衬衣,裤子,领带,都叠得整整齐齐的放在旁边,上面压着他的手机,居然是关了机的。还有皮鞋,也是整整齐齐的摆着,袜子放在鞋洞里……看来这哥儿们是把这当家了。 
后来一想,幸亏这哥儿们没有裸睡的爱好,不然,更有热闹可看了。 

8:爬楼梯 
有一次,天津来了网友,号称要把我们上海人灌倒在桌子底下,我们当然都不服气,于是轮番上阵。从啤酒喝到红酒,从红酒喝到黄酒,从黄酒喝到白酒,最终的结果是:那位天津的老兄本应把脚趾骨折的太太抱上楼,却稀里糊涂把我六岁的女儿从一楼背到七楼,再从七楼踉踉跄跄送回到一楼,被太太一顿暴打,眼都青了。 

9:遭遇劫匪 

跟一帮人喝了完酒,约了去某某家。走着走着,一个人就走丢不见了,另一个就去找他。 
大家先到某某家,坐下,过了一会儿走丢的那个人来了,很神气地给大家说他碰上劫匪了,让他连打带吓用砖头把劫匪给砸跑了。话刚说完,去找他的那个人也到了,气急败坏的说走丢的那丫的用砖头砸他,砸得他抱头鼠窜。 

10:我又来了 
一次,几个朋友约在一家名叫鱼头王的酒店喝酒,其中的一位喝多了之后,硬是要赶到另一家酒店去会又一批酒友,大家栏他不下,只得放他去了。可没过多久,他又一脸灿烂地突然出现在我们面前,一边连声抱歉:“对不起,对不起,我刚刚喝了一顿,来晚了。”说着,一屁股坐了下来,冲着服务员喊道:“来啊,上饭!” 
后来我们才知道说,他离开我们之后,很利落到的钻进了出租车上,冲着司机大声说:“开路,去鱼头王!” 
结果,司机带他在街上溜了一圈,又把他送了回来。等他再次来到我们面前时,他已经辨认不出谁是谁来,结果还好一痛抱歉! 

11:又哭又笑 
前年的冬天,认识了一个女孩。气质好得不行了。我们俩几乎每天都粘在一起。晚上不是去泡酒吧就是去泡迪厅。有一次晚上,我们喝的醉醺醺的回了家。她回家之后就开始闹。哭啊,哭的可厉害了。她自己一个人躲在卫生间里哭。我把门踹开把她拉出来,她又钻到大衣橱里去了,接着哭。 
好不容易把她弄到床上,她又抱着我哭。这还不算完,看到手边的手机,砰的一下。狠狠的往墙壁上砸去。我就那么眼睁睁的看着那漂亮的折叠式手机分成两半。 
第二天,她睡醒过来。撑着脑袋看着地上断成两截的手机,气呼呼的跑下楼拎了个砖头上来。我莫名其妙的看着她。只见这位小姐拿起砖头狠狠的砸向手机,将外壳砸开后,她取出里面的零件,笑咪咪的看着我说:“呵呵,这些零件值300块钱呢,把它卖了再凑钱买个手机!” 

12:太可惜了 
一次关系单位来请我们同事喝酒,请客的地点是一家挺高档的酒楼,鲍鱼燕窝什么的,点了一大堆。席间大家频频举杯,轮翻混战,也不知道喝了多少瓶红酒,只记得走的时候,我的一个同事在酒店楼下呕吐不止,一边吐一边惋惜 

13:从南京到镇江 
我认识一大哥,南京人,特喜欢喝酒。那时他来来去去都骑一辆小木兰摩托车,有一晚,他喝醉了,但仍骑着他的摩托车回家。当时他也看不清路了,只知道晕晕乎乎地沿着312国道一路前行。记不清骑了多久,等他有点清醒的时候,冷不丁的抬头一看,眼前的一个招牌竟然是“镇江大酒店”。 
他居然从南京骑小木兰摩托车骑到了镇江! 
更狠的是,他又骑着小木兰再从镇江骑回南京。 

14:情义绵绵 
有一个平时做派很文雅的男士喝高了,去一棵小树旁方便,完事了抽身要走,却感觉有人扯住了他,他回头推辞,“不,不,太晚了,我该回去了,妹妹再见。” 
无奈就是走不脱。等他的人看他一个人忙活,等的不耐烦了,也过来跟他一起劝解,“小姐,你松手吧,我们以后再来,机会有的是呢。” 
来来回回推辞一个多小时之后,他们才发现,他其实是把腰带连人带树一起捆上了,还跟树好一阵情义绵绵……. 

15:认错了 
我哥哥单位发年终奖金,他和几个要好的同事一起上饭店庆祝了一通。酒足饭饱之后,哥哥出来用车钥匙开自行车,却无论如何都打不开。哥哥心想,可能是因为自己喝多了,手发抖的缘故吧?反正今天发了挺多钱,干脆打个车回家得了。于是他把那辆自行车放到出租车的后备箱里,乘出租车回到了家。第二天醒酒后,哥哥来到楼下一看,坏了!他还得打车再把自行车给拉回去。 
原来,咋晚上被他拉回家的是同事小李的自行车! 

16:到家了 
我的一个邻居,喜欢喝酒,常醉。有一次,他喝醉之后上了出租车,司机缓缓开着车等他说去哪里。可等了半天也没动静,回头一看,他正脱衣服呢。司机吓一跳,连忙问:“先生,你这是干什么!”他说:“到家了,我要脱衣服睡觉!”司机赶紧告诉他:“这是我的车,不是你的家。”他呆呆想了一会儿,大声喊:“快,快回到我上车的地方去!”司机问为什么,他说:“我刚才以为到家了,把鞋给脱门口了!” 

17:算命 
有一次,我的一个外地的朋友到青岛办事,朋友们去饭店聚了一下,结果他喝的有点高,到了酒店后,死活不肯把房间钥匙拿出来,没办法,我们只好去酒店前台另想办法。 
等我们和服务员一起回到房间门口的时候,只见他正津津有味的把自己的钱包里的钞票、信用卡、名片之类的玩艺一张一张整整齐齐的摆在地上。看到我们后,他兴奋而欣喜的说:“来来来,我给你们算上一卦!” 

18:把车还我 
我一哥儿,就喜欢酒后驾车,一次,回家时正碰上警察在查车。就在他暗叫倒霉下车接受检查的时候,警察接了个电话,捧着手机,指手划脚,滔滔不绝的说了起来。他一看有机可趁,就悄悄的返回车里,趁打电话的警察不备,风风火火的把车开回了家。 
到了第二天,有人来敲他家的门,正是昨天的那个警察。他的酒现在已经醒了,自然理直气壮的质问警察:“你来干什么?有什么事?” 
警察说:“你的车我已经给你开到了门口,现在,你把警车还给我吧。”