ToB企服应用市场:ToB评测及商务社交产业平台

标题: day17-网络编程 [打印本页]

作者: 老婆出轨    时间: 2024-5-17 22:50
标题: day17-网络编程
1.必备基础

你必须了解的网络相关设备和基础概念。
1.1 网络架构

假设 alex 上了一个野鸡大学买了一台电脑,电脑里存了1部小影戏,整宿整宿的在宿舍反复的看。

alex 如何想要和室友 于超 进行收发数据,可以通过一根网线来进行毗连,并进行数据的传输。

1.1.1 交换机

其他2位室友如何也想和他们的电脑相互毗连然后进行资源的共享,此时就需要一个设备 【二层交换机】组件一个局域网。
  1. 当电脑接入交换机之后,我们需要为每台电脑分配一个IP,例如:
  2.     - 电脑1:192.168.10.1
  3.     - 电脑2:192.168.10.2
  4.     - 电脑3:192.168.10.3
  5.     - 电脑4:192.168.10.4
复制代码
  1. 局域网内容个电脑之间是基于ARP协议来进行通信,例如:A电脑向 IP为192.168.10.3的另一个电脑发送消息。
  2. 第一步:A封装数据包,此时只知道目标IP不知道目标mac地址(未知mac地址时默认会设置为FF)。
  3. 第二步:将数据包发送到交换机,交换机通过广播的形式将数据发送给所有电脑。
  4. 第三步:目标电脑接收到数据包后,监测自己是否是目标IP。
  5.                 - 是,收到数据并回复。
  6.                 - 不是,则丢弃包。
  7. 为防止每次发送消息都是广播形式,每台电脑的内部都为维护了一个ARP表,接受到数据时(无论是否自己的)都会记录自己了解的IP和MAC的对应关系,例如:
  8.     Internet地址                               物理地址
  9.     192.168.10.1            14-9d-da-2a-dd-0a
  10.     192.168.10.3            14-9d-da-2a-dd-0c
  11.     ...
  12.    
  13. 以便于下次在发送消息时,就知道了目标的mac地址,直接让交换机转发给指定的电脑(单播)。
  14. 同时,当有消息发送经过二层交换机时他的内容也会维护记录了交换机接口和连接的电脑的mac地址的对应关系,例如:
  15.     接口(网卡)               mac地址
  16.       接口1              14-9d-da-2a-dd-0A
  17.       接口2              14-9d-da-2a-dd-0B
  18.       接口3              14-9d-da-2a-dd-0C
  19.       ...
  20. 这样一来,交换机在进行数据转发时,效率就更高了。
  21. 注意:每台电脑出厂时在网卡中都设置了唯一的mac地址(不重复),网卡集成在主板上,如果更换了主板则mac地址也会变更。
复制代码

  1. 头部信息:xxx
  2. 数据:你好
复制代码
  1. 头部信息:xxx
  2. 数据:收到
复制代码
1.1.2 路由器

多个宿舍之间想想要组建一个相互可以通讯网络,此时需要【二层交换机】和【企业路由器】配合组建稍微大一点的局域网(同时也可缓解广播风暴)。
  1. 划分好网络结构之后,其实会给各宿舍的电脑分配IP和网关,例如:
  2.    宿舍A:
  3.                 - 电脑1:192.168.10.1  网关:192.168.10.254
  4.                 - 电脑2:192.168.10.2  网关:192.168.10.254
  5.                 - 电脑3:192.168.10.3  网关:192.168.10.254
  6.                 - 电脑4:192.168.10.4  网关:192.168.10.254
  7.    宿舍B
  8.                 - 电脑1:192.168.20.1  网关:192.168.20.254
  9.                 - 电脑2:192.168.20.2  网关:192.168.20.254
  10.                 - 电脑3:192.168.20.3  网关:192.168.20.254
  11.                 - 电脑4:192.168.20.4  网关:192.168.20.254
  12. 然后再在路由器中配置路由表(包含网段和路由器上的接口的对应关系),例如:
  13.          接口             IP
  14.      eth0             192.168.10.254(192.168.10网段)
  15.      eth1             192.168.20.254(192.168.20网段)
  16.    
  17. 想与外部网络通信,需要配置网关,网关就是路由表中配置的指向此网段的IP。其实就类似于贸易出口都需要经过海关。
复制代码
  1. 数据通信的过程结合了APR协议和IP协议,例如:宿舍A的电脑1向宿舍B的电脑3发送消息(目标IP:192.168.20.3)。
  2. 简化过程:
  3.         - 宿舍A的电脑1,通过广播或单播将数据发送到网管(路由器)
  4.     - 路由器接收到数据之后,再通过对应的接口把数据通过广播的形式发送到宿舍B。
  5. 注意:各自局域网内通过学习并记录相关mac地址后,就可以不再使用广播形式,而是使用单播来发送消息了。
复制代码


1.1.3 三层交换机

三层交换机集成了 交换机 & 路由器的功能(大部分路由器功能),上述的三个设备其实可以用一个三层交换机就可以搞定。
  1. 按照下图,在三层交换机上分别做如下几件事:
  2. 1. 划分两个vlan,模拟出来路由器的两个接口。
  3. 2. 将交换机的接口划分给指定的vlan,例如:
  4.         接口1、2、3划分给一个vlan,相当于交换机连接上了路由器。
  5.     接口4、5、6划分给一个vlan,相当于交换机连接上了路由器。
  6. 3. 电脑连接上交换机。
  7. 4. 进行相应的配置。
  8.         宿舍A(左边)电脑配置:
  9.             - 电脑1:192.168.10.1  网关:192.168.10.254        对应交换机接口:1
  10.                 - 电脑2:192.168.10.2  网关:192.168.10.254        对应交换机接口:2
  11.                 - 电脑3:192.168.10.3  网关:192.168.10.254        对应交换机接口:3
  12.         宿舍B(右边)电脑配置:
  13.                 - 电脑1:192.168.20.1  网关:192.168.20.254        对应交换机接口:4
  14.                 - 电脑2:192.168.20.2  网关:192.168.20.254        对应交换机接口:5
  15.                 - 电脑3:192.168.20.3  网关:192.168.20.254        对应交换机接口:6
  16.        
  17.     交换机中的路由配置:
  18.               接口               IP
  19.          左vlan             192.168.10.254(192.168.10网段)
  20.          右vlan             192.168.20.254(192.168.20网段)
  21.         
  22. 通过上述的配置之后,就可以实现宿舍A和宿舍B的网络通信了。
复制代码

1.1.4 小型企业基础网络架构


1.1.5 家庭网络架构

家用路由器集成了是交换机和路由的功能(性能差、代价自制)。

1.1.6 互联网


1.2 网络核心词汇

1.2.1 子网掩码和IP

之前说过,接入网络设备后,需要一个IP来代指次电脑,例如:192.168.10.1 。
IP其是一个32位的二进制,为了便于影象就将它分为4组,每组8位,由小数点分开,例如:
  1. 二进制表示:00000000.10010111.11111111.00001111
  2. 十进制表示:251.151.255.15
  3. 0~255
  4. 192.178.11.211
  5. 192.178.11.311
复制代码
在网络中的每台电脑都会有一个IP与之绑定,这样通过IP就可以找到相应的电脑。
一个IP地址可以分别为两个部分,即:网络地址 + 主机地址。
1.2.2 DHCP

在一个局域网内想要给某台电脑分配IP有两种方式:


1.2.3 内网和公网IP
  1. 一般情况下,内网IP都用这些(潜规则):
  2.         - 10.0.0.0 到 10.255.255.255
  3.         - 172.16.0.0 到172.31.255.255
  4.         - 192.168.0.0 到192.168.255.255
复制代码
之前我们自己在一个局域网内为电脑分配的IP都称为内网IP,基于内网IP可以在一个局域网内进行相互通讯(也需要相关的设置)。

如果想要通过互联网进行通讯,就必须借助公网IP。例如,右边家庭电脑想访问左边某公司服务器上的部署的网站:
按理说,每个从运营商接入网的用户都可以有一个外网IP,但由于环球用户太多而IP根本就不敷分配,所以,运营商网络会进行分别,让多个家庭宽带用户共用一个公网IP(动态,可能每次上网公网IP都不一样)。
让家庭用户想要通过网络访问访问其他IP时,先发给运营商由运营商向外转发到其他IP。
注意:外部用户想要访问家庭宽带的IP时,运营商不会把请求转发到我们的电脑。

所以,以后如果你想开发一个网站供环球的用户访问,那你就需要做以下几件事:
这样就可以搞定了...
扩展:IPv4和IPv6
  1. IPv4,长度为 32 位(4 个字节), 格式:A.B.C.D
  2. IPv6,长度为 128 位(16 个字节),用":"分成8段,格式:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX(每个X是一个16进制数)。
复制代码
1.2.4 云服务器

大家可能之前听说过:阿里云、腾讯云、亚马逊aws等之类的平台都在搞云服务器,那是个啥?

简单的说:他们造了一个机房(网吧),买了很多很多的服务器(高性能电脑),然后将他们放在机房,然后通电+通网,主要对外去租赁这些服务器资源,让用户不必再自己  拉专线+设置网络+买服务器。
假设,你想要在腾讯云租一台服务器,就可以根据自己的需求去选择设置,腾讯云会根据设置在他的物理机上假造出一个服务器,并进行相应的环境初始化并绑定公网固定IP,这样你就可以快速拥有一台可以被大家访问的服务器了。
注意:一台性能非常高的物理机假造出很多假造机,雷同于你在自己电脑上通过vmware、parallel等搞出多个假造机。

1.2.5 端口


假设,你在腾讯租了一台云服务器(外网IP:123.206.15.88),然后又开发了 2 个网站运行在服务器上。
那么问题来了,用户在自己的电脑或手机上如何来分别访问同一台服务器上两个步伐呢?
其实,在盘算机中有一个 端口 的概念,每个步伐想要通过网络进行通讯都必须要指定一个端口,例如:
注意:端口的取值范围:0 ~ 65535,很多端口在盘算机的内部已被使用,我们平时自定义时尽量选择5000之后的端口。
示例:访问百度

提示:如果在浏览器上只写IP不写端口,则默认是80端口。
1.2.6 域名

假设你创业开发了一个网站,用户很难记住你的公网IP:123.206.15.88:80   123.206.15.88。
所以,域名就诞生了,让域名和IP创建对应关系,用户只需要记住域名就可以了,例如:
  1. www.baidu.com   -->  110.242.68.3
  2. www.taobao.com  --> 121.18.239.232
  3. ...
复制代码
注意:域名只是和IP创建了对应关系,与端口无关 www.baidu.com:80。

在用户在自己的电脑或手机上输入域名去访问时,其实要执行两个步调:
在电脑上属如域名后,寻找IP的过程如下:
问题来了
了解域名是怎么回事之后?现在你如果想要让自己的网站通过域名来访问,应该怎么办呢?【目前了解即可】
2. 网络编程


Python中内置了一个socket模块,可以快速实现网络之间进行传输数据。例如:
上述示例需要借助于互联网,你至少需要租一台云服务器才气通讯。
为了节流学习成本,大家可以在自己电脑上模拟【服务端】和【客户端】,等以后项目开发完毕后,再租服务器并部署到服务器上。
注意:在自己本地运行上述代码时,要监听和毗连时的IP地址。



当然,你也可以把在自己的局域网内找两台电脑,A作为服务端,B作为客户端,这样两者也可以通讯。
  1. 服务端的代码需修改:监听的IP修改为A的IP地址。
  2. 客户端的代码需修改:连接的IP修改为A的IP地址(客户端要去找到服务端,并与服务端创建连接)。
复制代码
注意事项:
案例:智障客服

案例:文件上传

3. B/S和C/S架构


平时在开发或与人沟通时,常常会有人提到b/s和c/s架构,他们是啥意思呢?
简而言之,B/S架构就是开发网站;C/S架构就是开发安装在电脑的软件。
总结

作业

  1. 二层交换机:构建局域网并实现局域网内数据的转发。
  2. 路由器:实现跨局域网进行通信。
  3. 三层交换机:具备二层交换机和路由的功能。
复制代码
  1. IP,本质上是一个32位的二进制,通过 . 等分为了4组8位二进制。
  2. 子网掩码,用于指定IP的网络地址和主机地址。
  3. DHCP,网络设备中的一个服务,用于给接入当前网络的电脑自动设置 IP、子网掩码、网关。
  4. 公网IP,一般企业拉专线时会给固定的公网IP,只有具备公网IP才可以被互联网上的其他电脑访问。
  5. 端口,IP用于表示某台电脑,端口则表示此电脑上的具体程序。0-65535
  6. 域名,与IP构造对应关系,方便用户记忆。
复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4