网络
文章平均质量分 71
yiyeguzhou100
专注,探索,分享
展开
-
Linux网络 - 数据包的接收过程
https://segmentfault.com/a/1190000008836467原创 2021-05-25 23:42:59 · 107 阅读 · 0 评论 -
tso与mtu
现象:设置了网卡mtu为1500,用tcpdump抓包,发现抓到的包大小有大于1500的,但在网卡连接的交换机上抓包,没有抓到大于1500的包。这是什么原因?原因:后来发现这跟网卡的tso功能有关,tso(TCP Segment Offload)是一种利用网卡替代cpu对大数据包进行tcp分片,降低cpu负载的技术。因为开启了网卡的tso功能,tcpdump又是在内核协议栈层面抓包,内核协议栈是不会tcp分片的,所以tcpdump会抓到大于mtu的包;因为tcp分片交给了网卡来处理,所以在交换机上抓包,原创 2020-07-30 18:59:02 · 2250 阅读 · 1 评论 -
Linux内核报文收发-网卡部分
https://zhaozhanxu.com/archives/page/7/Linux版本: 3.10.103网卡驱动: ixgbe报文收发简单流程网卡驱动默认采用的是NAPI的报文处理方式。即中断+轮询的方式,网卡收到一个报文之后会产生接收中断,并且屏蔽中断,直到收够了netdev_max_backlog个报文(默认300)或者收完网卡上的所有报文之后,重新打开中断。网卡数据处理网卡初始化内核启动时会调用do_initcalls,从而调用注册的初始化接口net_dev_i.转载 2020-05-16 09:14:26 · 1309 阅读 · 1 评论 -
linux 路由表功能解析
本文,简单描述一下路由的作用.简单来说,路由器就是一个公交站台,公交站台上面有很多路公交.每条线路公交车又有很多站台(路由器),你就会选择最近的一条公交出行方案,当然啦,站牌上面的路线是会经常更新,更新的事,有当地部门更新.这就是路由.一台电脑主机有路由表,路由器也有路由表,一般来说,一台主机电脑如果只有一个网卡的话,应该会有最少两条路由信息,一条是公网路由,一条是局域网路由(它是不会经过路由器的转载 2016-07-05 09:55:35 · 3414 阅读 · 0 评论 -
Linux 网络常见报错及监控项
Linux 网络常见报错及监控项Sunday, December 7 2014被来是想将报错和监控拆开的,但是发现两者几乎是耦合的,通过监控项才能发现错误,定为错误的原因时也要依赖监控项。索性就将两者合并到了一起。对于很多的报错,实际上你即使看到报错的信息也不清楚到底是那里报错了,或者模棱两可,甚至是误导。最好的方式是 “Show me the code” 。在此,简单介绍转载 2016-07-27 21:47:36 · 4625 阅读 · 0 评论 -
2.6.28内核以太网帧接收时的流量控制
2.6.28内核的接收拥塞控制比Understanding Linux Network Internals中所描述的已经简化了很多这里给出一个简单描述首先是内核结构成员的变化1.每cpu变量struct softnet_data中去掉了以下三个成员。 int throttle; int cng_level;转载 2016-07-20 09:32:45 · 2821 阅读 · 0 评论 -
流控机制的解析
流控是以太网的一项基本功能,可以防止在端口拥塞的情况下出现丢帧。在深入分析之前,先看一个简单的应用场景: 端口A和B接收报文,端口C向外转发报文。如果端口A和B的收包速率之和大于端口C的带宽,那么部分报文就会缓存在设备内部的报文buffer中。当buffer的占用率达到一定程度时,端口A和B就会向外发送PAUSE帧,通知对端暂停发送一段时间。PAUSE帧只能阻止对端发送普通的转载 2016-07-22 10:16:47 · 11885 阅读 · 0 评论 -
利用arping发广播包
arping的-b参数用于发送以太网广播帧(FFFFFFFFFFFF)。arping一开始使用广播地址,在收到响应后就使用unicast地址,但下面的试验实际上192.168.129.76已经是k2-a的IP,所以在k2-a上发送arping广播包向网络询问谁用了192.168.129.76这个IP,实际上k2-a会一直得不到回应的,所以k2-a将一直发送该广播包,利用跟这个机制,可以用arpin原创 2016-05-05 17:33:28 · 5311 阅读 · 0 评论 -
dhcp抓包分析
在axm上dump包,然后重启k2a(192.168.253.12),可以dump到dhcp(bootp)的包toor@server:~# tcpdump -i k2a -ne ##k2a是server端上连接client的接口tcpdump: WARNING: k2a: no IPv4 address assignedtcpdump: verbose output原创 2016-06-26 22:27:53 · 2488 阅读 · 0 评论 -
Diskless Operation with PXE - Advanced Networking
http://www.freebsd.org/doc/handbook/Chapter 30.8. Advanced Networking30.8. Diskless Operation with PXEUpdated by Jean-François Dockès.Reorganized and enhanced by Alex Dupre.转载 2016-08-07 19:50:07 · 501 阅读 · 6 评论 -
IP route rule
最长匹配原则:http://blog.sina.com.cn/s/blog_99509264010160k9.html路由掩码最长匹配原则是指IP网络中当路由表中有多条条目可以匹配目的ip时,一般就采用掩码最长(最精确)的一条作为匹配项并确定下一跳。(也叫最长前缀匹配,是路由器在查找路由表进行选路的算法)例如,考虑下面这个IPV4的路由表:192.168.20.16原创 2016-10-11 15:57:13 · 1002 阅读 · 0 评论 -
ip介绍
ip是iproute2软件包里面的一个强大的网络配置工具,本文将介绍ip命令及其选项。Ip命令的语法:ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]OPTIONS:其中,OPTIONS是一些修改ip行为或者改变其输出的选项。所有的选项都是以-字符开头,分为长、短两种形式。目前,ip支持如下选项:-V,-Version: 打印i转载 2016-11-25 23:13:23 · 1449 阅读 · 0 评论 -
sk_buff封装和解封装网络数据包的过程详解
可以说sk_buff结构体是Linux网络协议栈的核心中的核心,几乎所有的操作都是围绕sk_buff这个结构体进行的,它的重要性和BSD的mbuf类似(看过《TCP/IP详解 卷2》的都知道),那么sk_buff是什么呢? sk_buff就是网络数据包本身以及针对它的操作元数据。 想要理解sk_buff,最简单的方式就是凭着自己对网络协议栈的理解封装一个直到以太转载 2016-07-24 18:04:50 · 1332 阅读 · 0 评论 -
Ethernet frame
Ethernet II帧格式 为什么帧长必须在64和1518字节之间 | DA | SA | TYPE | DATA | FCS | 6Bytes转载 2016-05-20 10:37:11 · 4551 阅读 · 0 评论 -
通过/proc/net/dev分析网络包量,流量,错包,丢包
一,/proc/net/devuser_00@xxxx64:~> cat /proc/net/devInter- | Receive | Transmit face转载 2016-01-19 20:03:56 · 1039 阅读 · 0 评论 -
/proc/net/vlan
该目录记录了在网卡上或者网卡逻辑接口上创建的vlan,以及创建了vlan的网卡或网卡逻辑接口。其中config文件记录了所有创建的vlan,以及该vlan基于的网卡虚拟接口。toor4nsn@arm core:/proc/net/vlan# cat configVLAN Dev name | VLAN ID Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VI原创 2016-01-19 20:11:14 · 1597 阅读 · 0 评论 -
tcpdump command, iplog 设置大小,文件循环写
如何将抓到的LOG循环写tcpdump -i any -s 0 -C 20 -W 3 -w ./ip.pcap -Z root -i : 设备名-s : 过滤包大小限制-C :(M), 定义生成文件大小,兆为单位,取整数-W : 可生成多少个文件-w :指定生成文件的路径-Z :如果想循环写文件,此选项必须有,转载 2016-02-17 13:13:13 · 2635 阅读 · 0 评论 -
poll函数
poll函数和select函数非常相似,但是函数接口不一样。 int poll(struct pollfd fdarray[], nfds_t nfds, int timeout); int select(int maxfdp1, fd_set *restrict readfds, fd_set *restrict expectfds, struct timeval * res转载 2016-03-04 22:40:36 · 441 阅读 · 0 评论 -
udhcpc为网卡虚拟接口申请IP
root@axm:~# timeout -t 50 taskset 0x1 /sbin/udhcpc -t 2 -T 1 -A 3 -i mtudhcpc (v1.22.1) startedSending discover...Sending select for 192.168.255.57...Lease of 192.168.255.57 obtained, lease ti原创 2016-04-03 23:01:32 · 3609 阅读 · 0 评论 -
最全的tcpdump使用详解
简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tc转载 2016-05-05 12:28:03 · 5870 阅读 · 1 评论 -
预留端口避免占用ip_local_reserved_ports
问题描述:业务遇到这个情况,在重启服务时,出现1986端口被占用而无法启动,非得等该端口释放后才启动成功。问题分析:1986端口被该服务器上的客户端随机选取源端口给占用掉了。解决方案:使用net.ipv4.ip_local_port_range参数,规划出一段端口段预留作为服务的端口,这种方法是可以解决当前问题,但是会有个问题,端口使用量减少了,当服务器需要消耗大量的端转载 2016-05-29 16:40:22 · 6603 阅读 · 0 评论 -
修改内核临时端口范围
1.显示当前临时端口的范围:一般情形下:linux临时端口号范围是(32768,61000) sysctl net.ipv4.ip_local_port_range 或 cat /proc/sys/net/ipv4/ip_local_port_range2.暂时性修改临时端口的范围:# echo 1024 65535 > /proc/sys/net/ipv转载 2016-05-29 17:13:45 · 6364 阅读 · 0 评论 -
数据包接收系列 — NAPI的原理和实现
本文主要内容:简单分析NAPI的原理和实现。内核版本:2.6.37 概述 NAPI是linux新的网卡数据处理API,据说是由于找不到更好的名字,所以就叫NAPI(New API),在2.5之后引入。简单来说,NAPI是综合中断方式与轮询方式的技术。中断的好处是响应及时,如果数据量较小,则不会占用太多的CPU事件;缺点是数据量大时,会产生过多中断转载 2016-05-29 22:09:23 · 546 阅读 · 0 评论 -
组播MAC地址
组播MAC地址 MAC地址是以太网二层使用的一个48bit(6字节十六进制数)的地址,用来标识设备位置。MAC地址分成两部分,前24位是组织唯一标识符(OUI, Organizationally unique identifier),后24位由厂商自行分配。 MAC地址有单播、组播、广播之分。单播地址(unicast address)表示单一设备、节点,多播地址或者组播转载 2016-06-03 16:19:12 · 934 阅读 · 0 评论 -
网络中MTU与MSS
关于mtu和mss 网上的资料很多,在看《tcp/ip详解卷1》的时候里面重点说了下mtu的重要性. 但是却没找到mss,或许是因为mss是tcp层的一个概念吧,当然mss和mtu也有莫大的关系.这里为什么再写一下,是因为在实际工作中,前方测试遇到的一个奇怪问题. 解决完之后,做一个总结而已. 那么什么奇怪的问题呢? 就是大部分网站能上去,有些网站上不去. 或许经常玩网络设备的人马上就转载 2016-06-24 22:41:03 · 3511 阅读 · 0 评论 -
TCP 协议中MSS的理解
在介绍MSS之前我们必须要理解下面的几个重要的概念。MTU: Maxitum Transmission Unit 最大传输单元MSS: Maxitum Segment Size 最大分段大小PPPoE: PPP Over Ethernet(在以太网上承载PPP协议),就是因为这个协议的出现我们才有必要修改我们的MSS或者是MTU值。MTU最大传输单元,这个最大传输单元实际上和链路层转载 2016-06-24 23:29:59 · 3279 阅读 · 0 评论 -
TCP协议深度解析
本文描述了TCP协议,首先简单介绍了TCP完成了一些什么功能;介绍了TCP报文格式,以及典型报文的数据格式;接着从链路控制和数据传输两个方面进行了介绍,在TCP中链路控制和数据传输是通过同一个通道进行的,并没有区分控制通道和数据通道;在网络中传输数据(控制或真实数据),网络可能发生拥堵,因此接下来简单描述了主机端进行拥塞控制所采取的方法,也简单提及了中间路由器/交换机进行拥塞避免所采取的主动措施;转载 2016-06-25 17:24:12 · 1614 阅读 · 0 评论 -
TCP滑动窗口
http://kb.cnblogs.com/page/209101/TCP滑动窗口 需要说明一下,如果你不了解TCP的滑动窗口这个事,你等于不了解TCP协议。我们都知道,TCP必需要解决的可靠传输以及包乱续的问题,所以,TCP必需要知道网络实际的数据处理带宽或是数据处理速度,这样才不会引起网络拥塞,导致丢包。所以,TCP引入了一些技术和设计来做网络流控,Sliding Win转载 2016-06-25 22:30:21 · 1762 阅读 · 0 评论 -
dhcpd usage
1,boot_k_setup.sh:alarm () { echo $1 > $alarm_file exit 1}brctl addbr ks #ks网桥brctl addif ks ka #ka,b,c交换机物理端口brctl addif ks kbbrctl addif ks kcip addr add 1原创 2016-06-14 18:45:32 · 1887 阅读 · 0 评论 -
VLAN device for 802.1.q on Linux
http://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/VLAN device for 802.1.qVLAN 又称虚拟网络,是一个被广泛使用的概念,有些应用程序把自己的内部网络也称为 VLAN。此处主要说的是在物理世界中存在的,需要协议支持的 VLAN。它的种类很多,按照协议原理一般分转载 2016-01-25 10:52:09 · 539 阅读 · 0 评论