本文主要内容:在接收数据包时,IP协议的处理流程. 内核版本:2.6.37 Author:zhangskd @ csdn blog 我们接着来看数据包如何发往本地的四层协议. ip_local_deliver 在ip_local_deliver()中,如果发现数据报有被分片,则进行组装. 然后调用NF_INET_LOCAL_IN处的钩子函数,如果数据包被钩子函数放行, 则调用ip_local_deliver_finish()继续处理. /* Deliver IP Packets to the h…
本文主要内容:在接收数据包时,IP协议的处理流程. 内核版本:2.6.37 Author:zhangskd @ csdn blog IP报头 IP报头: struct iphdr { #if defined(__LITTLE_ENDIAN_BITFIELD) __u8 ihl:4, version:4; #elif defined(__BIG_ENDIAN_BITFIELD) __u8 version:4, /* 协议版本,IPv4为4 */ ihl:4; /* 首部长度,不包括选项为5,表示2…
本文主要内容:简单分析NAPI的原理和实现. 内核版本:2.6.37 Author:zhangskd @ csdn 概述 NAPI是linux新的网卡数据处理API,据说是由于找不到更好的名字,所以就叫NAPI(New API),在2.5之后引入. 简单来说,NAPI是综合中断方式与轮询方式的技术. 中断的好处是响应及时,如果数据量较小,则不会占用太多的CPU事件:缺点是数据量大时,会产生过多中断, 而每个中断都要消耗不少的CPU时间,从而导致效率反而不如轮询高.轮询方式与中断方式相反,它更适合…
本文主要讲解了Linux内核二层数据包接收流程,使用的内核的版本是2.6.32.27 为了方便理解,本文采用整体流程图加伪代码的方式从内核高层面上梳理了二层数据包接收的流程,希望可以对大家有所帮助.阅读本文章假设大家对C语言有了一定的了解 整体流程如下: 数据报文接收流程伪代码分析如下 /*在基于中断收发报文的网卡设备驱动中, * 当有数据报文进来的时候,使用net_interrupt()进行中断触发 *如 isa-skeleton设备驱动中*/ static int __init netcar…
在<在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP>里面提到 单个TCP包每次打包1448字节的数据进行发送(以太网Ethernet最大的数据帧是1518字节,以太网帧的帧头14字节和帧尾CRC校验4字节 seq编码,在RFC793中,建议ISN和一个假的时钟绑在一起,这个时钟会在每4微秒对ISN做加一操作,直到超过2^32 据此推算,貌似单一线路,网络传输速度也就1.5*(1/4*10^6) = 375M/bs 对此的论据是:segments packets fra…
本文来自网易云社区 当我们需要跟踪网络有关的信息时,经常会说"抓包".这里抓包究竟是什么?抓到的包又能分析出什么?在本文中以TCP/IP协议为例,简单介绍TCP/IP协议以及如何通过wireshark抓包分析. Wireshark 是最著名的网络通讯抓包分析工具.功能十分强大,可以截取各种网络封包,显示网络封包的详细信息. Wireshark下载安装,略.注意,若在Windows系统安装Wireshark,安装成功后可能会出现Wireshark的两个图标,一个是Wireshark(中文…
转:https://segmentfault.com/a/1190000008836467 本文将介绍在Linux系统中,数据包是如何一步一步从网卡传到进程手中的. 如果英文没有问题,强烈建议阅读后面参考里的两篇文章,里面介绍的更详细. 本文只讨论以太网的物理网卡,不涉及虚拟设备,并且以一个UDP包的接收过程作为示例. 本示例里列出的函数调用关系来自于kernel 3.13.0,如果你的内核不是这个版本,函数名称和相关路径可能不一样,但背后的原理应该是一样的(或者有细微差别) 网卡到内存 网卡需…
IP /TCP协议及握手过程和数据包格式中级详解 https://www.toutiao.com/a6665292902458982926/ 写的挺好的 其实 一直没闹明白 网络好 广播地址 还有 网关地址的一些乱七八槽的关系. 剑云锋 2019-03-07 22:33:34 IP地址 定义: IP被称为网际协议,是Internet上使用的一个关键的底层协议.TCP/IP是通用的通信协议,使Internet成为一个允许连接不同类型的计算机和不同操作系统的网络. 特点: IP协议具有能适应各种各样…
根据前面介绍的几种协议,将IP协议.TCP协议.UDP协议组合起来,于是便有了TCP/IP协议.现在很多的应用的通信都是建立在TCP/IP协议的基础上,运用非常广泛,很有必要对其学习一下. 打个不太恰当的比方,TCP/IP协议可以看成是邮局与邮递员的关系(实际TCP/IP协议族会包含四层,应用层.传输层.网络层.链路层).这个协议族中的IP协议定位到哪台计算机,而具体到这台计算机的哪个端口(应用程序)就需要TCP协议,一个属于网络层,一个属于传输层,互相依赖,提供有效的解决通信问题的措施.这就好…
互联网协议 IP 是 Internet Protocol 的缩写,中文缩写为“网协”.IP 协议是位于 OSI 模型中第三层的协议,其主要目的就是使得网络间能够互联通信.前面介绍了 ARP 协议, 该协议用在第二层处理单一网络中的通信.与其类似,第三层则负责跨网络通信的地址.在 这层上工作的不止一个协议,但是最普遍的就是互联网协议(IP) 1. IP协议介绍 互联网协议地址(Internet Protocol Address,又译为网际协议地址),缩写为 IP 地址(IP Address).在上…