【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创建关联关系,并将关系同步到相关:本地域名服务器和根域名服务器。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小程序配置服务器域名的操作步骤(入门级)

将详细列出小程序配置服务器域名的操作步骤: 服务器选购推荐:腾讯云轻量服务器 点击以下任一云产品链接,跳转后登录,自动享有所有云产品优惠权益: 经过笔者亲测,强烈推荐腾讯云轻量应用服务器作为游戏服…

益生菌不一定全是“益”,也存在一定的安全风险

谷禾健康 益生菌被世界卫生组织定义为“当摄入足够量时,可为宿主带来健康益处的活微生物”。近年来,随着人们发现其可用于预防、减轻或治疗特定疾病以及改善健康,益生菌在食品和临床治疗中的应用越来越广泛。 大量研究表明,益生菌有助于维持肠道菌群的平衡,促进消化和吸收…

【图说】电脑发展史

免责声明:文中有一些图片来源自网络,如有版权请通知我删除,谢谢! “结绳记事”是计算的开端 如果说“结绳记事”仅是计数,那么“算筹”就是真正的计算工具 算盘也是我们老祖宗的杰出发明,最擅长“加减乘除”,包括但不限于乘方、开方、对数等。还能进行开发智力的“珠心算…

MongoDB聚合运算符:$count

文章目录 语法使用举例在$group阶段中使用在$setWindowFields阶段使用 $count聚合运算符返回分组中文档的数量。从5.0开始支持。 语法 { $count: { } }$count不需要参数 使用 $count可以用于下列聚合阶段: $bucket$bucket$group$setWindowFields 在$group阶段中…

Apache Flink连载(三十五):Flink基于Kubernetes部署(5)-Kubernetes 集群搭建-1

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 ​编辑

List 集合遍历过程中删除元素避坑指南。

文章目录 1. 遍历2. 遍历过程中删除元素2.1 for 简单循环正向遍历方式2.2 for 简单循环反向遍历方式2.3 foreach 方式遍历删除2.4 Iterator的remove()方法2.5 <font color green> removeIf() &#xff08;推荐&#xff09;<green>2.6 Strem 方式 作为一名后端开发…

S1---FPGA硬件板级原理图实战导学

视频链接 FPGA板级实战导学01_哔哩哔哩_bilibili FPGA硬件板级原理图实战导学 【硬件电路设计的方法和技巧-哔哩哔哩】硬件电路设计的方法和技巧01_哔哩哔哩_bilibili&#xff08;40min&#xff09; 【高速板级硬件电路设计-哔哩哔哩】 高速板级硬件电路设计1_哔哩哔哩_bil…

网安播报|开源Xeno RAT特洛伊木马在GitHub上成为潜在威胁

1、开源Xeno RAT特洛伊木马在GitHub上成为潜在威胁 一种“设计复杂”的远程访问特洛伊木马&#xff08;RAT&#xff09;&#xff0c;称为Xeno RAT已在GitHub上提供&#xff0c;使其他参与者可以轻松访问&#xff0c;无需额外费用。开源RAT是用C#编写的&#xff0c;与Windows 10…

【Flutter 面试题】解释 Flutter的热重载(Hot Reload)功能

【Flutter 面试题】解释 Flutter的热重载&#xff08;Hot Reload&#xff09;功能 文章目录 写在前面解答补充说明 写在前面 关于我 &#xff0c;小雨青年 &#x1f449; CSDN博客专家&#xff0c;GitChat专栏作者&#xff0c;阿里云社区专家博主&#xff0c;51CTO专家博主。2…

JVM运行时数据区——虚拟机栈

文章目录 1、虚拟机栈概述1.1、StackOverflowError1.2、OOM异常 2、栈的存储单位3、局部变量表3.1、局部变量表简介3.2、Slot 4、操作数栈5、栈顶缓存技术6、动态链接7、方法的调用7.1、方法调用的分类7.2、虚方法与非虚方法7.3、关于invokedynamic指令7.4、方法重写的本质7.5、…

StarRocks——中信建投基于StarRocks构建统一查询服务平台

目录 一、需求背景 1.1 数据加工链路复杂 1.2 大数据量下性能不足&#xff0c;查询响应慢 1.3 大量实时数据分散在各个业务系统&#xff0c;无法进行联合分析 1.4 缺少与预计算能力加速一些固定查询 二、构建统一查询服务平台 三、落地后的效果与价值 四、项目经验总结…

laravel ApiResponse接口统一响应封装

一&#xff0c;新增接口返回码配置文件 在config中新增配置文件apicode.php <?phpreturn [ apicodes>[/*** Message("OK")* 对成功的 GET、PUT、PATCH 或 DELETE 操作进行响应。也可以被用在不创建新资源的 POST 操作上*/HTTP_OK > 200,/*** Message(&qu…

C#,K中心问题(K-centers Problem)的算法与源代码

1 K中心问题&#xff08;K-centers Problem&#xff09; k-centers problem: 寻找k个半径越小越好的center以覆盖所有的点。 比如&#xff1a;给定n个城市和每对城市之间的距离&#xff0c;选择k个城市放置仓库&#xff08;或ATM或云服务器&#xff09;&#xff0c;以使城市…

python实现ElGamal算法

ElGamal公钥密码算法是在密码协议中有着重要应用的一类公钥密码算法&#xff0c;基于公钥密码体制和椭圆曲线加密体系&#xff0c;其安全性是基于有限域上离散对数学问题的难解性。至今仍是一个安全性良好的公钥密码算法。既可用于加密又可用于数字签名的公钥密码体制。 数字签…

2.2_2 进程调度的时机、切换与过程、调度方式

文章目录 2.2_2 进程调度的时机、切换与过程、调度方式&#xff08;一&#xff09;进程调度的时机&#xff08;二&#xff09;进程调度的方式&#xff08;三&#xff09;进程的切换与过程 总结 2.2_2 进程调度的时机、切换与过程、调度方式 &#xff08;一&#xff09;进程调度…

Qt 自定义长条进度条(类似播放器进度条)

1.运行界面 2.步骤 其实很简单。 2.1绘制底图圆角矩形 2.2绘制播放进度圆角矩形 参考&#xff1a;painter绘图 3.源码 #pragma once#include <QWidget> #include <QLabel> #include <QHBoxLayout> #include <QMouseEvent> #include <QDebug&g…

助力智能化农田作物除草,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建农田作物场景下玉米苗、杂草检测识别分析系统

在我们前面的系列博文中&#xff0c;关于田间作物场景下的作物、杂草检测已经有过相关的开发实践了&#xff0c;结合智能化的设备可以实现只能除草等操作&#xff0c;玉米作物场景下的杂草检测我们则少有涉及&#xff0c;这里本文的主要目的就是想要基于DETR模型来开发构建玉米…

26、Qt调用.py文件中的函数

一、开发环境 Qt5.12.0 Python3.7.8 64bit 二、使用 新建一个Qt项目&#xff0c;右击项目名称&#xff0c;选择“添加库” 选择“外部库”&#xff0c;点击“下一步” 点击“浏览”&#xff0c;选择Python安装目录下的libs文件夹中的“python37.lib”文件&#xff0c;点击“下…

文献笔记:LINE: Large-scale Information Network Embedding

paper 看完√ code复现ing https://arxiv.org/pdf/1503.03578v1.pdf 本文研究了将非常大的信息网络嵌入到低维向量空间的问题&#xff0c;这在可视化、节点分类和链路预测等许多任务中都很有用。大多数现有的图形嵌入方法无法扩展到通常包含数百万个节点的现实世界信息网络。…

java 正则表达式介绍

Java正则表达式是一种强大的文本处理工具&#xff0c;它允许你进行模式匹配、搜索和文本操作。正则表达式提供了一种简洁、灵活的方式来处理字符串&#xff0c;可以用于各种应用场景&#xff0c;如数据验证、文本解析、搜索和替换等。 正则表达式的基础知识 正则表达式…