
tcp/ip协议栈
cybertan
做事诚恳塌实,刻苦钻研!
开放,共享,合作!
展开
-
几种开源的TCP/IP协议栈分析
<br />1、BSD TCP/IP协议栈<br /> BSD栈历史上是其他商业栈的起点,大多数专业TCP/IP栈(VxWorks内嵌的TCP/IP栈)是BSD栈派生的。这是因为BSD栈在BSD许可协议下提供了这些专业栈的雏形,BSD许用证允许BSD栈以修改或未修改的形式结合这些专业栈的代码而无须向创建者付版税。同时,BSD也是许多TCP/IP协议中的创新(如广域网中饿拥塞控制和避免)的开始点。<br />2、uC/IP<br /> uC/IP是由GuyLancaster编写的一转载 2010-09-11 16:37:00 · 2247 阅读 · 0 评论 -
ip 路由选项
1.ip头中选项格式由于IP首部中可以存在选项,且可以同时存在多个选项,因此IP首部的长度是可变的,IPv4允许选项最长可达40字节。选项的格式有单字节和多字节两种,单字节的即只包括一个字节的选项类型,而多字节的则除一个字节的类型之外,还包括选项长度以及选项数据等。多字节的选项格式如下所示:所有选项都以1字节类型(type)字段开始。在多字节选项中,类型字段后面紧接着一个长度(le转载 2013-06-13 08:21:36 · 2797 阅读 · 0 评论 -
ss命令
连接数状态获取:netstat在4W以上连接数下工作性能很差。先看看ss命令:ss -t -a #统计所有的TCP连接ss -u -a #统计所有的UDP连接ss还具有过滤功能,下面列一下常用的功能:ss state ESTABLISHED #列出所有ESTABLISHED状态的连接ss -t -a -o excl ESTABLISHED #排除所有ESTABLISHED状转载 2013-05-30 11:14:14 · 2545 阅读 · 0 评论 -
tcp 拥塞1
【摘要】对多种TCP拥塞控制算法进行简要说明,指出它们的优缺点、以及它们的适用环境。【关键字】TCP拥塞控制算法 优点 缺点 适用环境公平性 公平性 公平性是在发生拥塞时各源端(或同一源端建立的不同TCP连接或UDP数据报)能公平地共享同一网络资源(如带宽、缓存等)。处于相同级别的源端应该得到相同数量的网络资源。产生公平性的根本原因在于拥塞发生必然导致数据包丢失,转载 2013-05-02 21:41:29 · 1065 阅读 · 0 评论 -
802.1Qbg、802.1Qbh、802.1BR、VN-Tag的技术比较
前在计算虚拟化与网络虚拟化的边界,出现了若干技术体系: 802.1Qbg,802.1Qbh,802.1BR和Cisco VN-Tag,其目的均是为了解决虚拟机与外部虚拟化网络对接、关联和感知的问题。本文在简述这几种技术框架基础上对各自异同进行比较,以使读者能够了解到不同技术的差异。一、 技术简述表1 各项技术的简要信息1. 802.1Qbg802.1Qbg在转发上转载 2012-12-20 10:39:49 · 3026 阅读 · 0 评论 -
PVID和VID
PVID和VID彻底研究(上)——PVID的作用及和VID的区别Pvid和Vid经常出现于二、三层交换机里,由于PVID和VID的设置不合理,造成VLAN划分变得混乱。本文就对PVID和VID进行了彻底研究。首先解释一下什么是PVID,PVID英文解释为Port-base VLAN ID,是基于端口的VLAN ID.通俗的讲,指的是native Vlan,即不打Vlan转载 2012-12-20 10:36:14 · 7199 阅读 · 0 评论 -
802.1q原理
在数据通信和宽带接入设备里,只要涉及到二层技术的,就会遇到VLAN。而且,通常情况下,VLAN在这些设备中是基本功能。所以不管是刚迈进这个行业的新生,还是已经在这个行业打拼了很多年的前辈,都要熟悉这个技术。在论坛上经常看到讨论各种各样的关于VLAN的问题,在工作中也经常被问起关于VLAN的这样或那样的问题,所以,有了想写一点东西的冲动。大部分童鞋接触交换这门技术都是从思科技术开始的,讨论的时候转载 2012-12-20 10:37:39 · 3403 阅读 · 0 评论 -
xps说明
这个patch主要是针对多队列的网卡发送时的优化,当发送一个数据包的时候,它会根据cpu来选择对应的队列,而这个cpu map可以通过sysctl来设置:/sys/class/net/eth/queues/tx-/xps_cpus复制代码这里xps_cpus是一个cpu掩码,表示当前队列对应的cpu。而xps主要就是提高多对列下的数据包发送吞吐量,具体来说就是转载 2012-11-06 08:45:04 · 2102 阅读 · 0 评论 -
tcp tso
根据Linux的协议栈,在发送tcp数据时,最终会调用如下函数:文件 net/ipv4/tcp.c int tcp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, size_t size) 在此函数中,要根据mss来将大数据拆分成小封包发送到网络上。mss是通过如下函数获取的:mss_now转载 2012-02-16 14:40:46 · 2677 阅读 · 0 评论 -
TC限速例子
#!/bin/bashDEV="tun0"UPLINK=300#下行downlink 3200 k 大概一半左右,以便能够得到更多的并发连接DOWNLINK=2048VIP1="192.168.1.159/32"VIP2="192.168.1.163/32"##两个vip用户echo "==================== Packetfilter and Tr转载 2012-02-21 22:49:58 · 7336 阅读 · 0 评论 -
tun/tap虚拟网卡
简介虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装。本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在linux环境下的设计思路。tun/tap驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。利用tun/tap驱动,可以将转载 2012-02-21 22:45:27 · 9239 阅读 · 0 评论 -
ipv6的一些特殊地址
2008年7月3日第二次修正! 昨天是修正了地址部分,本想发上来的,没来得及。今天修正了NDP协议,接下来会是路由和转换部分。 总结一下各协议的精华:OSPF在于LSA,BGP在属性和策略,IPV6在地址和NDP协议,组播的精华在哪呢?嗯,想起来了,在PIM SM模式中源树的共享树的形成和收敛过程。有时候想想,或许我该去考考IE 第一次总结: 颠覆,又是一个颠覆!否定之否定转载 2012-01-13 08:41:22 · 44613 阅读 · 5 评论 -
udp端口bind
#include #include #include #include main(){ int sock1, sock2; struct sockaddr_in addr; int on = 1;原创 2011-09-02 08:46:24 · 8466 阅读 · 0 评论 -
一个简单的tcp服务程序
<br />client:<br />/* tcpcli.c */<br />#include <stdio.h><br />#include <stdlib.h><br />#include <string.h> <br />#include <unistd.h> <br />#include <sys/types.h> <br />#include <sys/socket.h><br />#include <netinet/in.h><br />#include <arpa/inet.h> <br />转载 2011-01-26 02:29:00 · 1303 阅读 · 0 评论 -
偏移量详解
<br />在网络分析领域,偏移量是一个频繁出现的术语,如IP分段偏移量、TCP偏移量、位偏移,基于数据包偏移、基于协议偏移等等。那它们到底是什么含义,有什么区别呢?带着这些疑问,我查阅了一些TCP/IP书籍,并对其有了一定的了解。下面我就将我的个人理解与大家一起共同分享。欢迎拍砖啊! :)<br />1 IP分段偏移量<br />IP数据包在网络中进行传输,如果数据包的大小超过网络设备的MTU值,则需要进行分段传输。分段偏移量用来标识数据包在该数据流中的位置,也可以原创 2010-10-23 17:57:00 · 25022 阅读 · 0 评论 -
TCP-IP header
<br />我们都知道,不同类型的网络,其MTU(最大传输单元)各不相同,如以太网中,最大的传输帧为1518字节,FDDI为4500字节,令牌环帧在4500字节到17800字节之间,而IP协议的一个重要功能,就是能够对传输的数据大于硬件接口的MTU时,对其进行分段传输。即大于MTU的数据报将被分为2个或多个的合适的大小被传输。一个分片在到达接收主机的路径中,还可能被继续分片,因此,分片的IP数据报可能会以不同的路径传输到接收主机,接收主机通过一系列的重组,将其还原为一个完整的IP数据报,再提转载 2010-10-23 17:56:00 · 8497 阅读 · 1 评论 -
发送arp数据包
<br /> <br />代码来自busybox,函数询问TEST_IP的mac地址。read_interface函数通过ioctl来获取接口interface相关信息,arpping用于发送arp数据包。<br /><br />也可以使用s = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ARP));<br />则地址则变成了struct sockaddr_ll addr; 在arpping中调用以下函数,则也可以发送<br /><br /><br />#i转载 2010-10-20 07:38:00 · 6889 阅读 · 1 评论 -
开源的TCP/IP协议栈资料
项目--<br />(1)bsd tcp/ip stack--最经典的tcp/ip stack<br />Wright 和 Stevens 在《TCP/IP详解 卷2:实现》中详细剖析了其源代码,该书十分精彩!<br /><br />(2)lwip(http://savannah.nongnu.org/projects/lwip/ , http://www.sics.se/~adam/lwip/index.html)<br /><br />lwIP is a small independent转载 2010-09-11 16:52:00 · 4755 阅读 · 0 评论 -
tcp定时
在内核中tcp协议栈有6种类型的定时器:1 重传定时器。2 delayed ack定时器3 零窗口探测定时器上面三种定时器都是作为tcp状态机的一部分来实现的。4 keep-alive 定时器主要是管理established状态的连接。5 time_wait定时器主要是用来客户端关闭时的time_wait状态用到。6 syn-转载 2013-06-24 01:33:58 · 2050 阅读 · 0 评论