首先明确大端、小端概念:
大端:高字节存放低地址,低字节存放高地址;
小端:低字节存放低地址,高字节存放高地址。
再明确一个概念,网络字节序
网络传输的数据为字节流。对于像占 4 个字节的 int 这样的多字节数值,在进行网络传输时,需明确先传递哪个字节。也就是说,接收端收到第一个字节后,要确定将其作为高位字节还是低位字节处理,这是一个有意义的问题。
UDP/TCP/IP 协议规定:需将收到的第一个字节视为高位字节。这意味着发送方发送的第一个字节必须是高位字节。然而,发送方在发送时,只能从存储该变量的起始地址开始,逐个字节地进行发送。只有大端字节序能够满足这一要求。网络要求先发出去的必须是变量的高地址,而实际机器中是要从低地址开始一字节一字节地发,这两句话结合起来就意味着只有机器是大端字节序才刚好能满足要求。所以网络字节序是大端字节序,并且网络协议会使用大端字节序来传输数据。
我们可以发现一个问题,若机器是大端,它就会按照大端的要求发出;若机器是小端,不做任何处理发出去的就是小端。是的,这

就出现了以下现象:
我们的机器一般是小端字节序。在进行网络数据传输时,最初建立连接并进行初始化操作时,常常需要先将 IP 和端口转换为大端模式(通过使用 htons 函数)。
网络传输协议规定了传输使用大端字节序。那为什么只把 IP 地址、端口等转成大端格式呢?而数据部分却不进行大小端转换呢?
我纠结这个问题还纠结了很久,答案是没有必要。
首先明确 IP 地址和端口需要大端化的原因。网络传输协议规定要进行大端化,所以各级交换机和路由器在提取报文中的 MAC、IP 时也应该采用大端化方式。这样做的好处是统一规范,便于进行比对以查找路由表。
为什么数据部分不大端化呢?数据大小端的差异和机器的存储方式相关,与传输方式没有关系。也就是说,网络包是以大端的方式进行传输的,当传输到本地对包进行解析时,不管是按大端传来的还是按小端传来的,接收方把变量赋值给本地变量时,都只能将先拿到的字节存放在低地址。如果发送端和接收端都是大端,那么解析存储的变量就没有问题;如果发送端和接收端都是小端,那么存储的变量在解析时也没有问题。然而,如果一端是大端机器,另一端是小端机器呢?大端机器会按照先发出的是高字节来发出数据,小端机器也会在分配好的内存位置按照顺序一个一个地存储数据,但是当从地址处取值读取时就会出现问题。所以网络传输只是规定要以大端字节序进行传输,然而它自身并不负责转换的事宜,内核也不会负责。至于具体是否要进行转换、转换哪些以及如何转换等问题,都需要各位依据具体的情况亲自去处理,而不是将其交给网络传输让它在传输过程中为你转换好。
所以与之相对应的现象是,在接收到数据之后,若想要获取发送方的 IP 地址和端口,就需要将大端字节序进行本地化。数据部分,你那边的存储方式是什么,你发给我后我就按照你发的方式存储。只要不是一个大端一个小端,我接收完后就能正常解析。所以没必要在发送时转换一次,接收时又转换回来。交换机和路由器不需要关心你传输的数据是什么,你只需将它们所需的 IP 和端口按照大端转换好,这样它们才能正确找到路由。对于数据而言,无论你以何种方式发送,亦或是按照何种格式发送,网络都会将其认定为大端。然而,实际上是否为大端,你自己心中有数即可。
附加一点笔记有个知识点有点忘记了:
和是什么关系?
先放点代码在这
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code> intsockfd;
定义了一个名为 m_addr 的 sockaddr_in 结构体。
创建一个用于网络通信的套接字,将其赋值给 sockfd 。该套接字的地址族为 AF_INET ,类型为 SOCK_STREAM ,协议参数为 0 。
m_addr 的 sin_family 被设置为 AF_INET 。
m_addr 的 sin_port 被设置为 htons(MYPORT) 。
inet_addr("192.168.0.106") 被赋值给 m_addr 的 sin_addr 的 s_addr 。
将 my_addr.sin_zero 清零,清零的长度为 8 。
将 sockfd 与 (struct sockaddr *)&m_addr 进行绑定,绑定的长度为 sizeof(struct sockaddr)。</code></pre></p>
它只是一个用于通信的符号,所存储的是具体通信需要的信息。将其绑定在上,如此一来,这个管就能负责与里面地址的通信。
相关推荐:
SEO使用:如何让你的网站轻松登顶搜索引擎排名,渭南网站seo
莱芜网站建设,助力企业数字化转型升级,莱芜企业数字化转型升级新引擎——莱芜网站建设助力篇章
揭秘秦志强SEO视频创作的背后秘诀,如何让内容脱颖而出?,佛山seo优化方式
教你如何通过发红包就可以赚钱的网赚项目操作思路!
承德网站建设,打造高效 *** 平台,助力企业腾飞,承德企业腾飞,高效 *** 平台建设,专业网站打造
SEO字:如何通过精准关键词提升网站流量与排名,厦门优化seo
自媒体营销,如何在不为人知的情况下实现品牌价值的飙升?,群内怎么推广营销活动
成都市网站建设,打造专业 *** 形象,助力企业腾飞,成都专业网站建设,塑造企业 *** 品牌新形象
SEO在线服务-让您的网站快速跃升至搜索引擎前列,襄樊网站建设路串串
深圳 *** 营销型网站建设的实践与思考,深圳 *** 营销型网站建设,实践与思考
学校网站系统,构建现代教育信息化的桥梁,现代教育信息化桥梁,学校网站系统构建之道
探索数字营销的奥秘,揭秘东西湖SEO费用与策略,苏州网站建设服务
SEO手法如何通过精准优化提升网站排名,获取海量流量,智佳科技网站优化
探索未知,如何利用百度统计优化你的SEO策略,永州响应式网站建设
自媒体营销,打造个人品牌的黄金法则,石羊推广营销
网站运营,策略与实践,打造高效在线平台,高效在线平台打造,网站运营策略与实践解析
宁海SEO优化服务,让您的网站在搜索引擎中脱颖而出,装修行业关键词排名前十
SEO建议:如何通过优化提升网站流量,赢得市场竞争,DTNL课件网站建设
探索青海,一段发现自我之旅的短视频SEO源码之旅,小吃培训网站怎样做推广
打造个性空间,装饰网站建设助力家居美学生活,装饰网站建设,打造个性化家居美学生活空间指南
淮安SEO咨询,揭秘搜索引擎优化背后的秘密武器,昆山网站建设选哪家
乐清网站建设,打造企业互联网新名片,助力企业腾飞,乐清企业互联网新名片,网站建设助力腾飞
探索火星旅游,科幻梦想与现实挑战,seo优化业务怎么样
青岛网站设计,打造个性化与专业并重的 *** 门户,青岛专业定制,个性化网站门户设计服务
徐州网站优化,提升企业在线竞争力的秘密武器,徐州企业网站优化攻略,在线竞争的秘密武器
揭秘SEO营销的成本与收益,如何精准投资,实现最大回报?,周口网站seo优化
抖音SEO优化,如何让你的视频火遍全网?,塔城网站建设推广
广州网站建设工作室,助力企业互联网转型的专业服务提供商,广州专业网站建设工作室,赋能企业互联网转型之路
杭州网站推广,助力企业拓展线上市场,实现品牌价值更大化,杭州专业网站推广服务,助力企业线上飞跃
恩施SEO搜索推广,探索自然与文化的完美融合,营销推广策划互联网
揭秘新闻网站源码,技术背后的秘密与价值,解码新闻网站核心技术,源码揭秘与深层价值解析
南京网站建设公司,助力企业打造专业形象,提升品牌影响力,南京专业网站建设,助力企业塑造品牌形象与影响力,南京专业网站建设,塑造企业品牌形象与影响力新高度
探索数字营销的奥秘,SEO优化软件如何助力你的品牌成长?,自助网站建设推广公司
白山SEO技巧,如何让我的网站在搜索引擎中脱颖而出?,海东市当地网站优化招聘
济南建网站,助力企业数字化转型的创新之路,济南赋能企业数字化转型,建站创新引领潮流,济南引领企业数字化转型,创新建站赋能未来
揭秘自媒体营销的黄金法则,如何快速提升内容曝光度,珠宝网站网站建设模板
哈尔滨网站 *** ,打造专业、高效、个性化的 *** 平台,哈尔滨专业定制网站建设服务,成就卓越 *** 平台
探索数字营销的奥秘,SEO与SEM的完美融合,松原seo工具技巧
短视频SEO优化,打造爆红内容的秘诀,市场seo推广计划表格
SEO合作:让你的网站在搜索引擎中脱颖而出,网站功能布局优化方法
东营网站建设,打造企业线上形象,助力区域经济发展,东营企业线上形象塑造与区域经济腾飞助力之旅,东营企业线上形象塑造,助力区域经济腾飞之旅
优秀网站设计,构建吸引人的数字世界门户,卓越的网站设计,打造吸引人、现代化的数字世界门户
WAP网站 *** 的未来发展趋势与挑战,WAP网站 *** 的发展趋势及面临的挑战分析,WAP网站 *** ,未来发展态势及挑战剖析
网站策划技巧,打造成功网站的关键要素,网站策划攻略,揭秘打造高成功率网站的核心要素
详细分析教大家怎么做APP地推拉新推广!
从零到一,如何打造个人品牌?,在哪里寻找推广网站信息
天津网站优化,提升 *** 竞争力,打造高效在线平台,天津网站优化攻略,增强 *** 竞争力,构建高效在线商务平台
郴州整站SEO优化,提升网站在搜索引擎中的排名,助力企业腾飞,新影视推广素材下载网站
旅游网站管理系统,打造智慧旅游新体验,智慧旅游平台,创新旅游网站管理系统引领新体验
探寻滨海新区SEO之魅,寻找性价比最高的创作力量,部队招标建设网站