【python开发】网络编程(上)
这里写目录标题
- 一、必备基础
- (一)网络架构
- 1、交换机
- 2、路由器
- 3、三层交换机
- 4、小型企业基础网络架构
- 5、家庭网络架构
- 6、互联网
- (二)网络核心词汇
- 1、子网掩码和IP
- 2、DHCP
- 3、内网和公网IP
- 4、云服务器
- 5、端口
- 6、域名
一、必备基础
(一)网络架构
两台电脑之间如果想要传输数据,最原始的方法是在两个电脑之间连接一个网线,网线上有网口,网口本质上就是网卡,网卡是专门用来做网络通信的。

1、交换机
两台电脑之间可以通过网线进行数据交换,但如果有四台电脑,四个电脑之间想要进行数据交互的时候,就必须让一台电脑拥有三个接口,这显然是低效率的,于是就发明了交换机。
当四台电脑连接到交换机上,互相之间就可以进行数据传输,此时就形成了小小的局域网,交换机会给四个电脑分配IP地址,IP也可以自己指定,这个IP地址就代表了电脑,每个电脑的网口中有一个网卡,而每个网卡上都有一个mac地址,mac地址是在电脑出厂的时候配置到网卡上的,而网卡一般是连在电脑的主卡上的,如果电脑换了主板,意味着电脑的主板会发生变化。
交换机在局域网内,通过广播的形式实现了电脑的通信:当2号电脑给3号电脑发消息时,电脑会打包一个数据信息,包括头部信息和发送数据,其中,头部信息包括了本机IP和mac地址以及目标机台的IP和mac地址,信息包传递到交换机上,交换机会以广播的形式传送给每天机器,所有的电脑就会进行校验,查看该信息包是否是传送给自己的,当目标机器3号收到信息时,也会给2号信息传递一个已经收到的信息,同样是通过交换机以广播的形式进行传递。但是这样的传递效率还是比较低的,但是随着传送次数多了之后,交换机和局域网内所有电脑就会有记录:IP地址和MAC地址的对应关系,之后交换机就会通过IP地址直接将信息传递给对应的mac地址,这样就免去了广播形式,只需要单播就可以发送信息。
2、路由器
当局域网和局域网之间需要进行数据传递时,如果将交换机之间进行直连,则会产生广播风暴,此时就需要借助另外一个有效的机器——路由器。
有了路由器之后,则会给不同的局域网配置不一样的ip地址,进行一个区域划分,接着要配置网关地址。
所以不同的局域网之间传递信息,将通过网关检查网段是否正确,然后通过交换机传递到目标电脑上。全球的信息传递就是通过交换机和路由器实现的。

3、三层交换机
集成了交换机和路由器的功能,既能够实现在局域网内收发消息,也能够构建不同局域网并在不同局域网内实现通讯。三层交换器内,首先由路由器划分vlan(网段),这一步相当于是交换机脸上了路由器。不同的局域网有不同的网段,不同局域网之间进行数据交互,则需要通过网关检查所属网段,然后发送到目标网段中,再有交换机通过广播/单播的形式发送给目标电脑。

4、小型企业基础网络架构

5、家庭网络架构
运营商连接光猫连接家用路由器(简单得实现了交换机和路由器的功能)连接电脑,家用路由器性能差,只能连接较少的设备。
6、互联网
与国外的网络进行链接,也需要专门的设备,该设备由三大运营商出资购买。
(二)网络核心词汇
1、子网掩码和IP
每一个IP地址代指一台电脑,IP其实是一个32位的二进制,为了便于记忆将它分为4组,每组8位,由小数点分开,每组的数值在0-255之间。
子网掩码的主要作用是屏蔽IP地址的一部分以区别网络标识和主机标识。一个ip地址可以分为两个部分:网络地址+主机地址。192.168.1.199/24表示前24位是网络地址(被掩盖),后面8位是主机地址。
划分成网络地址+主机地址的意义是什么?
网络地址相同的可以视作是同一个网络,网络地址相同的IP属于同一个网段,在局域网内只有同一个网段的IP才能相互通信,不同网段的IP通信需要借助路由器转发才能通信。在局域网内如果不是同一个网段也不能相互通讯。
2、DHCP
在一个局域网内,给某台电脑分配IP的方法有两种:(1)手动设置;2、自动获取。其中自动获取方式在电脑为“自动获取IP地址”,在路由器或三层交换机,开启DHCP服务,并设置IP地址。
3、内网和公网IP
自己在一个局域网内为电脑分配的IP都称为内网IP,基于内网IP可以在一个局域网内进行互相通信是可以的,但是不能跨运营商进行数据传输。如果想要通过互联网进行通信,就必须借助公司IP,例如家庭电脑想访问某公司服务器上部署的网站:
(1)公司去运营商申请公司的固定IP(办理专线宽带时,运营商会分配至少1个固定IP地址),其实运营商就是将专线和固定IP建立一个绑定关系。
(2)配置公网IP与制定服务器的转发规则。
(3)家庭电脑如果想访问某个公司拂去其上的网站,只需要执行制定IP,运营商就会根据IP找到与之关联的公司专线,并通过公司路由器、防火墙等设备找到服务器。
由于全球用户太多,IP不够分,所以运营商会进行划分,让多个家庭宽带用户共用一个公网IP(动态,所以每次上网公网IP都不一样)。
如果想开发一个网站供全球的用户访问,需要达到以下几个条件:
(1)拉专线,申请固定公网IP;
(2)买一台服务器(性能好的电脑);
(3)公网IP绑定至服务器;
(4)将写好的代码放在服务器上并运行起来。
4、云服务器
简单说,云服务器就是构建了一个机房,买了很多服务器,然后通电+通网,主要对外租赁这些服务器资源,让用户不必再自己拉专线+配置网络+买服务器。
假设在腾讯云租一台服务器,就可以根据自己的需求去选择配置,腾讯云会根据配置在他的物理机上虚拟出一个服务器,并进行相应的环境初始化并绑定公网固定IP,这样就可以快速拥有一台可以被大家访问的服务器了。注:一台性能非常高的物理机虚拟出很多虚拟机,类似于在自己电脑上通过vmware、parallel等搞出多台虚拟机。
5、端口
假设公司在腾讯租了一台云服务器(外网IP:123.206.15.88),然后又开发了两个网站运行在服务器上。那么用户在自己的手机或电脑上如何分别来访问同一台服务器上的两个程序呢?
在计算机中有一个端口,每个程序想要通过网络来进行通讯都必须要制定一个借口,例如:网站A 8001端口、网站B 8002端口。注意:端口的取值范围是:0~65535,其中前5000个端口已经有特定的含义,在自定义的时候最好选择5000之后的端口。
6、域名
对于浏览器来说,如果给了IP地址,但是没有给端口,会自动补全端口,由于IP地址很难记,所以域名就产生了,域名类似于www.baidu.com,为了好查询网址,对域名和IP创建对应关系,用户只需要记住域名就可以了。域名与端口无关。
当用户在自己电脑或手机上输入域名去访问时,有两个步骤:(1)根据域名寻找IP;(2)获得IP后,再通过IP去访问指定的服务器。
在电脑上输入域名后,寻找IP的过程如下:
(1)在自己电脑的DNC缓存记录中寻找域名对应的IP,如果未命中,则执行下一步;
(2)在自己电脑的hosts文件中寻找,如果未命中,则执行下一步;
(3)在自己电脑上找到DNC配置的地址(本地域名服务器),去这个地址寻找域名对应的IP,如果未命中,则进行下一步;
(4)去根域名服务器中询问(全球共13台根域名服务器,离中国最近的一台在日本)。

如果想要让自己的网站通过域名来访问,应该怎么办?
(1)租一个域名:ICANN,域名的总管理者(英国的一个非盈利机构),它仅制定域名政策,注册业务会授权一些顶级注册商,可以对外销售域名,但要受国家互联网信息中心的管理。
顶级注册商有:中国万网(阿里云收购)、新网互联、商务中国、中国频道等。
代理注册商:顶级注册商可以再招一些代理帮助他们麦域名。
(2)备案:现在国内注册域名后,需要进行备案(提交一些网站、个人或企业信息后)才能使用,国外的域名无需备案就可以使用。
(3)域名解析:让域名和IP创建关联关系,并将关系同步到相关:本地域名服务器和根域名服务器。
相关文章:
【python开发】网络编程(上)
这里写目录标题 一、必备基础(一)网络架构1、交换机2、路由器3、三层交换机4、小型企业基础网络架构5、家庭网络架构6、互联网 (二)网络核心词汇1、子网掩码和IP2、DHCP3、内网和公网IP4、云服务器5、端口6、域名 一、必备基础 &…...
php源码 单色bmp图片取模工具 按任意方式取模 生成字节数组 自由编辑点阵
http://2.wjsou.com/BMP/index.html 想试试chatGPT4生成,还是要手工改 php 写一个网页界面上可以选择一张bmp图片,界面上就显示这张bmp图片, 点生成取模按钮,在图片下方会显示这张bmp图片的取模数据。 取模规则是按界面设置的&a…...
设计模式-命令模式(Command Pattern)
承接Qt/C软件开发项目,高质量交付,灵活沟通,长期维护支持。需求所寻,技术正适,共创完美,欢迎私信联系! 一、命令模式的说明 命令模式(Command Pattern)是一种行为设计模式…...
鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:位置设置)
设置组件的对齐方式、布局方向和显示位置。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 align align(value: Alignment) 设置容器元素绘制区域内的子元素的对齐方式。 卡片能力: 从API…...
ShardingJdbc实战-分库分表
文章目录 基本配置分库分表的分片策略一、inline 行表达时分片策略algorithm-expression行表达式完整案例和配置如下 二、根据实时间日期 - 按照标准规则分库分表标准分片 - Standard完整案例和配置如下 基本配置 逻辑表 逻辑表是指:水平拆分的数据库或者数据表的相…...
51单片机-(定时/计数器)
51单片机-(定时/计数器) 了解CPU时序、特殊功能寄存器和定时/计数器工作原理,以定时器0实现每次间隔一秒亮灯一秒的实验为例理解定时/计数器的编程实现。 1.CPU时序 1.1.四个周期 振荡周期:为单片机提供定时信号的振荡源的周期…...
midjourney提示词语法
更高级的提示可以包括一个或多个图像URL、多个文本短语和一个或更多个参数 Image Prompts 可以将图像URL添加到提示中,以影响最终结果的样式和内容。图像URL总是位于提示的前面。 https://docs.midjourney.com/image-prompts Text Prompt 要生成的图像的文本描述。…...
【鸿蒙 HarmonyOS 4.0】路由router
一、介绍 页面路由指在应用程序中实现不同页面之间的跳转和数据传递。HarmonyOS提供了Router模块,通过不同的url地址,可以方便地进行页面路由,轻松地访问不同的页面。 二、页面跳转 2.1、两种跳转模式: router.pushUrl()&…...
AT24C1024的模拟IIC驱动
AT24C1024是基于IIC的EEPROM,容量为1024/8128k bytes。它的引脚如下: 其中A1,A2为硬件地址引脚 WP为写保护引脚,一般我们需要读写,需要接低电平GND,接高的话则仅允许读 SDA和SCL则为IIC通信引脚 芯片通信采用IIC&…...
Stable Diffusion生成式扩散模型代码实现原理
Stable Diffusion可以使用PyTorch或TensorFlow等深度学习框架来实现。这些框架提供了一系列的工具和函数,使得开发者可以更方便地构建、训练和部署深度学习模型。因此可以使用PyTorch或TensorFlow来实现Stable Diffusion模型。 安装PyTorch:确保您已经安…...
解决Keepalived “脑裂”(双VIP)问题
1. 检查广播情况 yum install tcpdump -y tcpdump -i ens33 vrrp -n master 192.168.80.130 与 backup: 192.168.80.131都在广播,正常情况下backup应该是不在广播的,所以可以判断存在防火墙屏蔽vrrp问题,需要设置VRRP过掉防火墙࿰…...
cAdvisor+Prometheus+Grafana 搞定Docker容器监控平台
cAdvisorPrometheusGrafana cAdvisorPrometheusGrafana 搞定Docker容器监控平台1、先给虚拟机上传cadvisor2、What is Prometheus?2.1、架构图 3、利用docker安装普罗米修斯4、安装grafana cAdvisorPrometheusGrafana 搞定Docker容器监控平台 1、先给虚拟机上传cadvisor cAd…...
java基础知识面试题
下面是关于java基础知识的一些常见面试题 equals 与区别 在Java中,""是一个比较操作符,用于比较两个变量的值是否相等。而"equals()"是Object类中定义的方法,用于比较两个对象是否相等。 具体区别如下: &…...
科技云报道:黑马Groq单挑英伟达,AI芯片要变天?
科技云报道原创。 近一周来,大模型领域重磅产品接连推出:OpenAI发布“文字生视频”大模型Sora;Meta发布视频预测大模型 V-JEPA;谷歌发布大模型 Gemini 1.5 Pro,更毫无预兆地发布了开源模型Gemma… 难怪网友们感叹&am…...
解决i18n国际化可读性问题,傻瓜式webpack中文支持国际化插件开发
先来看最后的效果 问题 用过国际化i18n的朋友都知道,天下苦国际化久矣,尤其是中文为母语的开发者,在面对代码中一堆的$t(abc.def)这种一点也不直观毫无可读性的代码,根本不知道自己写了啥 (如上图,你看得出…...
【Django】执行查询—F()表达式
F() F()可以实现将模型字段值与同一模型中的另一字段做比较。举个例子看一下: class Entry(models.Model):...number_of_comments models.IntegerField(default0)number_of_pingbacks models.IntegerField(default0)...找到所有 number_of_pingbacks 大于 numbe…...
202112CSPT4磁盘文件操作
题意:有n个id号,m段空间,k个操作: 0 0 0:从L开始到R或遇到第一个其他非空id号为止,写入 i d id id号以及值 v a l val val;如果成功写入则输出写入成功的最右位置,否则输出-1 1 1 1:若 [ L , …...
5GC SBA架构
协议标准:Directory Listing /ftp/Specs/archive/23_series/23.501/ (3gpp.org) NF描述说明NSSFNetwork Slice Selection Function网络切片选择,根据UE的切片选择辅助信息、签约信息等确定UE允许接入的网络切片实例。NEF Network Exposure Function网络开…...
《求生之路2》服务器如何选择合适的内存和CPU核心数,以避免丢包和延迟高?
根据求生之路2服务器的实际案例分析选择合适的内存和CPU核心数以避免丢包和延迟高的问题,首先需要考虑游戏的类型和对服务器配置的具体要求。《求生之路2》作为一款多人在线射击游戏,其服务器和网络优化对于玩家体验至关重要。 首先,考虑到游…...
精读服务器默认rsyslog的配置文件
rsyslog的配置文件 rsyslog.conf #### MODULES ####$ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imjournal # provides access to the systemd journal #$ModLoad imklog # reads kernel messages (the same are read…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
