网络子系统9_ip校验和计算

简介:
//ip校验和计算使用与体系结构相关的内联汇编
//x86_64版本
//b 1字节
//w 2字节
//l 4字节
//q 8字节
//1010 1010 逻辑左移 -> 0101 010[0]
//1010 1010 算数左移 -> 0101 010[0]

//1010 1010 逻辑右移 -> [0]101 0101
//1010 1010 算数右移 -> [1]101 0101
1.1 static inline unsigned short ip_fast_csum(unsigned char *iph, unsigned int ihl) 
{
	unsigned int sum;
	asm(	
		"  movl (%1), %0\n"//将sum = *iph
		"  subl $4, %2\n"//ihl = ihl-4
		"  jbe 2f\n"//长度为0,跳转到2处
		"  addl 4(%1), %0\n"//sum += *(iph+4)
		"  adcl 8(%1), %0\n"//sum += *(iph+8)
		"  adcl 12(%1), %0\n"//sum += *(iph + 12)
		"1: adcl 16(%1), %0\n"//sum += *(iph + 16)
		"  lea 4(%1), %1\n"//iph = iph + 4
		"  decl %2\n"//ihl -= 1
		"  jne	1b\n"//如果ihl!=0,跳转到1
		"  adcl $0, %0\n"//sum = sum+0
		"  movl %0, %2\n"//ihl = sum
		"  shrl $16, %0\n"//sum逻辑右移16位
		"  addw %w2, %w0\n"//取ihl低16位加到sum低16位
		"  adcl $0, %0\n"//sum = sum+0
		"  notl %0\n"//sum取反
		"2:"
	: "=r" (sum), "=r" (iph), "=r" (ihl)//输出,都使用寄存器保存输出
	: "1" (iph), "2" (ihl)//第一个输入为iph,第二个输入为ihl
	: "memory");//表明内存可能发生变化
	return(sum);//返回sum
}

目录
相关文章
|
1月前
|
网络协议 Linux 虚拟化
配置VM网络:如何设定静态IP以访问主机IP和互联网
以上就是设定虚拟机网络和静态IP地址的基本步骤。需要注意的是,这些步骤可能会因为虚拟机软件、操作系统以及网络环境的不同而有所差异。在进行设定时,应根据具体情况进行调整。
283 10
|
6月前
|
算法 JavaScript 数据安全/隐私保护
基于GA遗传优化的最优阈值计算认知异构网络(CHN)能量检测算法matlab仿真
本内容介绍了一种基于GA遗传优化的阈值计算方法在认知异构网络(CHN)中的应用。通过Matlab2022a实现算法,完整代码含中文注释与操作视频。能量检测算法用于感知主用户信号,其性能依赖检测阈值。传统固定阈值方法易受噪声影响,而GA算法通过模拟生物进化,在复杂环境中自动优化阈值,提高频谱感知准确性,增强CHN的通信效率与资源利用率。预览效果无水印,核心程序部分展示,适合研究频谱感知与优化算法的学者参考。
|
4月前
|
监控 安全 Go
使用Go语言构建网络IP层安全防护
在Go语言中构建网络IP层安全防护是一项需求明确的任务,考虑到高性能、并发和跨平台的优势,Go是构建此类安全系统的合适选择。通过紧密遵循上述步骤并结合最佳实践,可以构建一个强大的网络防护系统,以保障数字环境的安全完整。
132 12
|
5月前
|
监控 安全 网络安全
网络安全新姿势:多IP配置的五大好处
服务器配置多IP地址,既能提升网络速度与安全性,又能实现多站点托管和故障转移。本文详解多IP的五大妙用、配置方法及进阶技巧。从理论到实践,合理规划IP资源,让服务器性能跃升新高度。
181 2
|
6月前
|
存储 消息中间件 弹性计算
阿里云服务器ECS计算型c7和通用算力型u1在适用场景、计算性能、网络与存储性能等方面的对比
阿里云ECS服务器u1和c7实例在适用场景、性能、处理器特性等方面存在显著差异。u1为通用算力型,性价比高,适合中小企业及对性能要求不高的场景;c7为企业级计算型,采用最新Intel处理器,性能稳定且强大,适用于高性能计算需求。u1支持多种CPU内存配比,但性能一致性可能受底层平台影响;c7固定调度模式,确保高性能与稳定性。选择时可根据预算与性能需求决定。
360 23
|
6月前
计算网络号的直接方法
子网掩码用于区分IP地址中的网络部分和主机部分,连续的“1”表示网络位,“0”表示主机位。例如,255.255.255.0 的二进制为 11111111.11111111.11111111.00000000,前24位是网络部分。通过子网掩码可提取网络号,如 IP 192.168.1.10 与子网掩码 255.255.255.0 的网络号为 192.168.1.0。此外,文档还介绍了十进制与二进制间的转换方法,帮助理解IP地址的组成与计算。
450 11
|
7月前
|
域名解析 API PHP
VM虚拟机全版本网盘+免费本地网络穿透端口映射实时同步动态家庭IP教程
本文介绍了如何通过网络穿透技术让公网直接访问家庭电脑,充分发挥本地硬件性能。相比第三方服务受限于转发带宽,此方法利用自家宽带实现更高效率。文章详细讲解了端口映射教程,包括不同网络环境(仅光猫、光猫+路由器)下的设置步骤,并提供实时同步动态IP的两种方案:自建服务器或使用三方API接口。最后附上VM虚拟机全版本下载链接,便于用户在穿透后将服务运行于虚拟环境中,提升安全性与适用性。
|
9月前
|
安全 网络安全 UED
为何长效代理静态IP是网络管理的关键要素
在信息化时代,静态长效IP代理对网络管理至关重要。它能提升网络服务质量,确保远程办公、视频会议等应用的稳定性和连续性;减少延迟和网络拥堵,加快数据传输;提高网络安全,便于设置访问权限,防止未授权访问。91HTTP高质量代理IP服务商助力高效信息获取。
196 23
|
8月前
|
存储 运维 监控
阿里云飞天洛神云网络子系统“齐天”:超大规模云网络智能运维的“定海神针”
阿里云飞天洛神云网络子系统“齐天”:超大规模云网络智能运维的“定海神针”
321 3