发布时间:2013-04-08 21:18:49
1.从协议设计的角度讲,各层分开设计有利于实现。2.某些场景需要这些重复功能 举例来说,TCP和MAC层都有checksum,但是这种设计并非冗余 1)某些应用不需要经过MAC层,比如TCP本地回环通信 还有内核态和用户态调用socket通信 &n.........【阅读全文】
发布时间:2013-01-22 21:40:38
TCP滑动窗口和拥塞窗口的关系:cwnd连续增长,包连续入队列,没有窗间、窗尾的概念......【阅读全文】
发布时间:2013-01-04 15:39:15
这个函数的功能:将IP地址从字符串格式转换成网络地址格式,支持Ipv4和Ipv6. 函数原型: static int inet_pton(int af, const char *src,void *dst) af:address family(协议族),支持的协议族有下面几种: AF_INET Inetnet的Ipv4协议 AF_INET Inetnet的Ipv6协议 src:是个指针,指向保存IP地址字符串形式的字符串。 dst:指向存放网络地址的结构体的首地址 int inet_pton(af, src, dst) ......【阅读全文】
发布时间:2013-01-04 11:33:32
本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。 作者:gfree.wind@gmail.com 博客:linuxfocus.blog.chinaunix.net 上次学习IP包的发送流程时,学习到了dev_queue_xmit这个函数。int dev_queue_xmit(struct sk_buff *skb){ struct net_device *......【阅读全文】
发布时间:2013-01-03 11:48:47
尝试了多种方法,win_init_option_这个选项在调节cwnd_时没什么用。NS2 tcp.cc有关于拥塞窗口初始值的设定源码,initial_window(),具体不记得函数名了,大概是这个函数。有几个if判断语句,比如,大于1095,cwnd返回4.0。把这个判断语句的返回值改了,重新编译安装,没什么作用。【不解】后来发现网上一个脚本有设置cwnd的语句$tcp set windowInit_ 10$tcp set windowOption_ 1更改后,跟踪cwnd_变量,发现初始值已经改变。......【阅读全文】
发布时间:2013-01-03 11:41:08
1.提取文件某一列的方法,在shell脚本里用awk:awk '{print $n}' filename > file_n.txt; 在awk的man手册里,可以找到很多参数用法,其实awk是按行处理的,貌似所有的文本编辑器都是按行处理的。这里的“print $n”可以很方便地打印出任意列,其参数含义是逐行打印第n个元素。 2.将提取出的两列,写入临时文件paste file_n1.txt file_n2.txt > file_n1_n2.txt;3.将临时文件中的两列相除,写入结果文件怎么相除?其实很简单:直接相除。awk '{pri......【阅读全文】
发布时间:2013-01-03 11:31:04
TCP丢包的处理,在TCP/IP详解p235-236讲解的比较明确,这里进行一下扩展和细化。原文摘录:" 拥塞避免和慢启动算法需要对每个连接维持两个变量:一个拥塞窗口cwnd和一个慢启动门限ssthresh。3)当拥塞发生时(超时或收到重复确认),ssthresh被设置为当前窗口大小的一半(cwnd和接收方通告窗口大小的最小值,但至少为2个报文段)。此外,如果是超时引起了拥塞,则cwnd被设置为1个报文段(这就是慢启动)。"【笔者注:这里的ssthresh,是慢启动和拥塞避免两个阶段的分界点,超过这个值,cwnd的增长就不再是乘性增长,而是加性增长,参照AIMD策略】。重复确认:在收......【阅读全文】