再议字节序-------TCP/IP网络传输相关字节序

逆向工程实战:解密AppleAccount的X-MMe-Nas-Qualify签名生成机制 本文通过逆向工程实战,详细解析了AppleAccount服务中X-MMe-Nas-Qualify签名的生成机制。作者利用Frida进行动态追踪定位签名源头,结合IDA Pro进行静态分析,并借助LLDB动态调试还原核心算法。文章最终分享了如何独立于苹果官方库,通过Python代码复现签名算法,为自动化测试和深度交互苹果服务的开发者提供了关键技术路径。 阅读详情
对于网络这一块的字节序,说实话,理解不够深,在网上学些了下,先整理点,以后继续完善。

一、
在网络编程时,并不是什么时候都要考虑字节序问题。那么什么时候需要考虑呢?
实际上如果是应用层的数据,即对TCP/IP来说是透明的数据,不用考虑字节序的问题。 因为发出去是什么样子,接收到就还是什么样子,接收端收到的顺序是和发送端一致的。
TCP/IP协议本身处理数据的时候都是按照网络字节序来处理的。当一个数据是应用层和TCP/IP都需要关心的时候,如网络函数的数字类型参数,需要考虑这个数据的字节序(一般而言就是IP地址和端口号)。

例如我指定了一个端口号:
unsigned short port = 0x0012  (十进制18)
把这个端口号传个TCP/IP建立一个socket连接。
sockaddr_in addr;
 addr.sin_family = AF_INET; //使用互联网际协议,即IP协议
 addr.sin_port = port;
addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
因为网络字节序是big endian,即低地址存放的是数值的高位,所以TCP/IP实际上把这个port解释为0x1200(十进制4608)。本来打算是要在端口18建立连接的,但TCP/IP协议栈却在端口4608建立了连接。故先用htons(port)把端口号转换成网络字节序,这样就可避免这种问题了。

二、
字节序问题归根结底就是因为它们的 编码单元是多个字节,而且这多个字节的顺序在不同机器上可能不一样(大头或小头字节序)。
如四个字节才能表示一个int整形,utf-16编码最小编码单元是两个字节。

对于TCP/IP而言,发送端的字节以什么顺序排列的,接受端就是受到完全一样顺序排列的字节。
接收方接收到数据后,
线性回归做糖尿病分析(diabetes数据集),并分析单个特征值与病情的关系 1.diabetes数据集 共442个样本,每个样本有十个特征,分别是 [‘age’, ‘sex’, ‘bmi’, ‘bp’, ‘s1’, ‘s2’, ‘s3’, ‘s4’, ‘s5’, ‘s6’],对应年龄、性别、体质指数、平均血压、S1~S6一年后疾病级数指标。 Targets为一年后患疾病的定量指标,值在25到346之间。 ... 阅读详情

相关推荐

Blender软件导出地形到Gazebo中

Blender软件导出地形到Gazebo中,并配置纹理、刚度、高度。

m0_70652514的博客 3376

程序设计二(面向对象)_实训10_复杂类的实现_ArrayList类的实现

第1关:构造函数与析构函数的实现

2401_83406306的博客 819

Vue3 - 完美解决高德地图定位失败 Get ipLocation failed.Geolocation permission denied.(获取ipLocation失败。地理定位权限被拒绝。)

Get ipLocation failed.Geolocation permission denied.,vue3引入高德地图当前定位失败 ,vue3中使用高德地图定位报错,高德地图API用户定位失败,高德地图H5 定位失败报错排查和解决方案,微信公众号H5网页高德地图定位报错,谷歌浏览器-高德地图定位失败geolocation,getCurrentPosition 返回的 message报错,如何解决此问题,uniapp h5高德地图,微信、QQ等内置浏览器定位失败,高德地图实现实时用户位置定位,引入高德

🏆 前端领域优质创作者 4168

2023推免(夏令营+套实验室)面试总结(博文附问题汇总和参考答案)

2023推免(夏令营+套实验室)面试总结(博文附问题汇总和参考答案)

m0_51339444的博客 1804

1.14、基于NARX神经网络的磁悬浮建模(matlab)

数据准备:首先,需要准备用于训练和测试的磁悬浮系统的输入和输出数据,包括磁力、电流、位置、速度等信息。数据可以被保存在MATLAB的数据文件中,并加载到工作空间中。使用MATLAB的神经网络工具箱,创建一个NARX神经网络。需要定义网络的层次结构、节点数、激活函数等参数。通常,NARX网络包括自回归层和外部输入层。数据预处理:对加载的数据进行预处理,包括去除噪声、归一化处理等操作,以确保数据质量和网络训练的稳定性。使用MATLAB的训练函数,如trainlm或者trainbr,对NARX神经网络进行训练。

XU157303764的博客 1996

2025华为od机试真题B卷【字符串计数匹配】Java&Go 实现

给你一个字符串str和整数k,返回满足以下条件的所有子字符串个数: 1.恰好包含k个字母。 2.数字0-9各出现至少一次。

MISAYAONE的博客 636

通过Robotstudio修改机器人程序的具体方法和步骤

通过Robotstudio修改机器人程序的具体方法和步骤

Robot_PLC_HMI_Automation 6393

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: VC工程中的字符集工程属性和字符编码
下一篇: c++ 函数返回引用
nodeathphoenix
博客等级 码龄16年 97粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值