1、网络基础

news2025/1/17 6:17:34

网络发展背景、IP、端口、网络通信协议,TCP/IP五层模型、字节序

一、网络发展背景

局域网:网络覆盖在1000m以内的网络

城域网:网络覆盖在20km以内的网络

广域网:网络覆盖在20km以上的网络

因特网、互联网:更大的国际化的广域网

以太网(ETH)、令牌环网:组网方式

二、IP

1、作用

在网络中能够唯一标识一台主机。

2、本质

uint32_t——无符号32位的一个整数。

注意:在网络中通信的每一条数据中,都会具有俩个信息——源端IP地址&对端IP地址

           因为这俩个信息描述了数据从网络中的那个主机来,要到那个主机去。因为IP地址大小是无符号4字节,因此网络中的IP地址只有43亿个左右

IPv4版本IP地址:uint32_t

        DHCP:动态地址分配

        NAT技术:网络地址转换技术(一种组件私网,私网中的大量主机使用的一个对外地址通信)

IPv6版本IP地址:uint8_t ip[16],并不向前兼容IPv4。

 一条数据中包含的信息:sip , sport ,dip,dport,protocol(协议)五元组

三、端口PORT

1、本质

uint16_t类型——无符号16位的整数。

2、作用

在一台主机上标识一个进程。

注意:在网络中通信的每一条数据中,都会具有俩个信息——源端端口&对端端口

           每个主机上的网络通信程序都会提前告诉操作系统,网卡收到的发往哪个端口的数据应该交给自己来处理。

一个端口只能被一个进程占用,但是一个进程可以有多个端口。

四、网络通信协议、TCP/IP

1、定义

就是约定,指的是网络通信中的数据格式约定。

协议分层:将复杂的网络通信环境,按照提供的服务,使用的协议、接口进行划分。

2、国际标准化组织(ISO)

OSI七层网络互联模型:应用层,表示层,会话层,传输层,网络层,链路层,物理层

3、IEEE,TCP/IP五层模型

应用层:负责应用程序之间的数据沟通,HTTP,FTP,SMTP

传输层:负责进程之间的数据传输,TCP/UDP——包含了端口信息

网络层:负责地址管理和路由选择,IP——包含了IP地址信息,典型设备:路由器

链路层:负责相邻设备之间的数据传输,ETH(以太网地址协议)——MAC地址,交换机

物理层:负责物理光点信号的传输,以太网协议——集线器

五、网络字节序

1、字节序

cpu对内存中数据以字节为单位进行存取的顺序。

2、分类

内存有高低地址之分,数据二进制有高低位之分。

  1. 大端:低地址存高位
  2. 小端:低地址存低位

eg:

 主机字节序是取决于cpu架构的:x86——小端; MIPS——大端

3、场景

  1. 字节序在网络通信中存在的一些问题
  2. 什么样的数据才存在字节序的问题

 比如上图:在网络通信中,通信的俩端主机是不同字节序,就可能出现数据二义性

因此规则在网络通信中必须使用网络字节序(网络通信中的字节序标准)

网络字节序采用的是大端字节序。

4、字节序针对什么样的数据?

针对存储单元大于一个字节的数据。

 如果是结构体变量,如果要考虑应该是针对每一个成员变量单独考虑,而不是整体考虑翻转。

第一个就是对的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSH跳转远程目标服务器的高阶使用

在日常开发和运维的过程中,我一般是使用Xshell的工具对linux服务器的相关操作。我说一下我写这篇文章的背景:甲方因为安全需要,给了一台可以通过vpn访问的跳板机,通过这台跳板机去操作另外的十多台应用服务器,那么肯定…

MySQL 8目录结构与源码

目录 一、主要目录结构 二、获取MySQL 源代码 一、主要目录结构 MySQL的主要目录结构说明bin目录所有MySQL的可执行文件。如:mysql.exedata目录系统数据库所在的目录my.ini文件MySQL的主要配置文件D:\MySQL\Data用户创建的数据库所在的目录 二、获取MySQL 源代码 …

【OpenCV • c++】图像几何变换 | 图像平移

🚀 个人简介:CSDN「博客新星」TOP 10 , C/C 领域新星创作者💟 作 者:锡兰_CC ❣️📝 专 栏:【OpenCV • c】计算机视觉🌈 若有帮助,还请关注➕点赞➕收藏&#xff…

代码随想录算法训练营day3 | 203. 移除链表元素,707. 设计链表,206. 反转链表

目录 203. 移除链表元素 707. 设计链表 206. 反转链表 203. 移除链表元素 难度:easy 思路: 代码: // 使用虚拟头结点 class Solution {public ListNode removeElements(ListNode head, int val) {if (head null) {return head;}// 虚拟…

Waves 14 Complete对Mac和Windows系统的最低要求

Waves 14 Complete是一款功能齐全的音频编辑软件,适用于音乐制作、音频工程和声音设计等领域。它提供了一系列强大的工具和效果,帮助用户在音频处理过程中实现专业水平的效果和混音。 Waves 14 Complete包含了多个实用的插件,如均衡器、压缩…

垃圾收集器CMS-JVM(十一)

Jvm类的创建过程包括类的加载,类的验证,准备,分析,初始化。 验证是不是.class文件。 准备过程则是先赋值初始化的值,并不是直接赋值原始值。 分析比较复杂,会有静态链接处理和动态链接处理。 最后就是类…

亚马逊云科技,加速生成式AI的落地

编辑:阿冒 设计:沐由 “展望今天的世界,在机遇之外,更多事后我们看到的是前所未有的巨大挑战。事实证明,惟有通过创新、专注创新,方能挖掘和发现更多的增长机会。” 在2023亚马逊云科技中国峰会的第二天&am…

【笔记】oracle线上生产数据库使用exp的方式更新到本地

笔记来源 今天的任务是:将线上老的数据库里的数据同步到本地现有的二期数据库中来,即二期项目需要线上数据进行最后测试,于是就有了今天这篇,线上生产数据库更新到本地数据库的笔记。 由于数据量较大,我尝试过将线上…

建表与数据准备

自己新建数据库: create table Student(sid varchar(10),sname varchar(10),sage datetime,ssex nvarchar(10));insert into Student values(01 , 赵雷 , 1990-01-01 , 男); insert into Student values(02 , 钱电 , 1990-12-21 , 男); insert into Student values(03 , 孙风 ,…

原生微信小程序手把手创建发布评论效果

1.静态设计 1.1标题 1.1.1 wxml文件 <!-- 标题 --><view class"title">励志语句</view> 1.1.2 wcss文件 .title{font-size: 50rpx;text-align: center;/* 上左右下 */padding: 60rpx 0 30rpx; } 1.1.3显示 1.2方块卡片 1.2.1 wxml文件 <…

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

python数据处理方法——pkl格式文件

目录 1.pkl文件格式简介&#xff1a; 1.1 什么是 pkl 文件&#xff1f; 1.2 pkl文件和pmml文件的简单区别 1.3 pkl 文件的优点 1.4 使用场景 2.使用 Python 操作 pkl 文件 2.1 对象序列化为 pkl 文件&#xff08;将数据保存为pkl文件&#xff09; 2.2 从 pkl 文件中反…

JS逆向系列之猿人学爬虫第18题-jsvmp - 洞察先机

文章目录 目标网址加密参数分析Python 实现往期逆向文章推荐目标网址 https://match.yuanrenxue.cn/match/18题目标着难度是困难级别,主要还是vmp保护的JS代码调试困难,理清逻辑就会变得简单了 加密参数分析 请求第一页时没有加密参数,从第二页开始,url会携带t和v两个参数…

依次查找数组中指定字符的索引值从左侧开始查找和从右侧开始查找numpy.char.find();numpy.char.rfind()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 依次查找数组中指定字符的索引值 从左侧开始查找和从右侧开始查找 numpy.char.find()&#xff1b;numpy.char.rfind() [太阳]选择题 下列代码最后输出的结果是&#xff1f; import numpy as …

python 运行前端

到html目录下执行&#xff1a;python -m http.server 8080 &#xff08;看你的python版本python or python3 &#xff1f;&#xff09;

机器学习实践(2.2)LightGBM回归任务

前言 LightGBM也属于Boosting集成学习模型(还有前面文章的XGBoost)&#xff0c;LightGBM和XGBoost同为机器学习的集大成者。相比越来越流行的深度神经网络&#xff0c;LightGBM和XGBoost能更好的处理表格数据&#xff0c;并具有更强的可解释性&#xff0c;还具有易于调参、输入…

青岛大学_王卓老师【数据结构与算法】Week05_10_顺序栈的操作3_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…

OpenTelemetry

OpenTelemetry&#xff08;简称为Otel&#xff09;是一个开源项目&#xff0c;旨在为分布式系统提供可观测性&#xff08;observability&#xff09;。它提供了一组标准化的API、工具和库&#xff0c;用于生成、收集和分析分布式应用程序的跟踪&#xff08;tracing&#xff09;…

Redis报错-CROSSSLOT keys in request don‘t hash in the same slot

背景 问题涉及&#xff1a;spring security、spring session、redis 问题描述 springbootspringsecurityspringsessionantd 登录功能的时候&#xff0c;在源码中使用到了redis的rename命令&#xff08;如下图所示&#xff09; 在这里就会报错 CROSSSLOT keys in request d…

微信小程序安装和使用 Vant Weapp 组件库

微信小程序安装和使用 Vant Weapp 组件库 1. Vant Weapp 介绍2. Vant Weapp 的 安装2.1. 通过npm安装2.2. 构建npm2.3. 修改 app.json2.4. 修改 project.congfig.json2.5. 测试一下&#xff0c;使用Vant Weapp提供的组件 1. Vant Weapp 介绍 Vant 是一个轻量、可靠的移动端组件…