20. 网络编程(上)

本文介绍了网络编程的基础知识,包括网络架构中的交换机、路由器和三层交换机,网络核心词汇如子网掩码、IP、DHCP、内网和公网IP、端口和域名的概念。此外,还提到了Python中的socket模块用于网络数据传输,并简单讨论了B/S和C/S架构的区别。
摘要由CSDN通过智能技术生成

20. 网络编程(上)

在这里插入图片描述

目标:掌握网络相关的基础知识并可以基于Python开发程序(基于网络进行数据传输)。

概要:

  • 网络必备基础
  • 网络编程(Python代码)
  • B/S和C/S架构

1.必备基础

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

1.1 网络架构

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

在这里插入图片描述

vn 如何想要和室友 提莫进行收发数据,可以通过一根网线来进行连接,并进行数据的传输。

在这里插入图片描述

1.1.1 交换机

其他2位室友如何也想和他们的电脑相互连接然后进行资源的共享,此时就需要一个设备 【二层交换机】组件一个局域网。

当电脑接入交换机之后,我们需要为每台电脑分配一个IP,例如:
    - 电脑1192.168.10.1
    - 电脑2192.168.10.2
    - 电脑3192.168.10.3
    - 电脑4192.168.10.4
局域网内容个电脑之间是基于ARP协议来进行通信,例如:A电脑向 IP为192.168.10.3的另一个电脑发送消息。

第一步:A封装数据包,此时只知道目标IP不知道目标mac地址(未知mac地址时默认会设置为FF)。
第二步:将数据包发送到交换机,交换机通过广播的形式将数据发送给所有电脑。
第三步:目标电脑接收到数据包后,监测自己是否是目标IP。
		- 是,收到数据并回复。
		- 不是,则丢弃包。

为防止每次发送消息都是广播形式,每台电脑的内部都为维护了一个ARP表,接受到数据时(无论是否自己的)都会记录自己了解的IP和MAC的对应关系,例如:
    Internet地址			       物理地址
    192.168.10.1            14-9d-da-2a-dd-0a
    192.168.10.3            14-9d-da-2a-dd-0c
    ...
    
以便于下次在发送消息时,就知道了目标的mac地址,直接让交换机转发给指定的电脑(单播)。

同时,当有消息发送经过二层交换机时他的内容也会维护记录了交换机接口和连接的电脑的mac地址的对应关系,例如:
    接口(网卡)               mac地址
      接口1              14-9d-da-2a-dd-0A
      接口2              14-9d-da-2a-dd-0B
      接口3              14-9d-da-2a-dd-0C
      ...
这样一来,交换机在进行数据转发时,效率就更高了。

注意:每台电脑出厂时在网卡中都设置了唯一的mac地址(不重复),网卡集成在主板上,如果更换了主板则mac地址也会变更。

在这里插入图片描述

在这里插入图片描述

头部信息:xxx
数据:你好
头部信息:xxx
数据:收到
1.1.2 路由器

多个宿舍之间想想要组建一个相互可以通信网络,此时需要【二层交换机】和【企业路由器】配合组建稍微大一点的局域网(同时也可缓解广播风暴)。

划分好网络结构之后,其实会给各宿舍的电脑分配IP和网关,例如:
   宿舍A:
		- 电脑1:192.168.10.1  网关:192.168.10.254
		- 电脑2:192.168.10.2  网关:192.168.10.254
		- 电脑3:192.168.10.3  网关:192.168.10.254
		- 电脑4:192.168.10.4  网关:192.168.10.254
   宿舍B
		- 电脑1:192.168.20.1  网关:192.168.20.254
		- 电脑2:192.168.20.2  网关:192.168.20.254
		- 电脑3:192.168.20.3  网关:192.168.20.254
		- 电脑4:192.168.20.4  网关:192.168.20.254

然后再在路由器中配置路由表(包含网段和路由器上的接口的对应关系),例如:
	 接口             IP
     eth0   	  192.168.10.254(192.168.10网段)
     eth1   	  192.168.20.254(192.168.20网段)
    
想与外部网络通信,需要配置网关,网关就是路由表中配置的指向此网段的IP。其实就类似于贸易出口都需要经过海关。
数据通信的过程结合了APR协议和IP协议,例如:宿舍A的电脑1向宿舍B的电脑3发送消息(目标IP:192.168.20.3)。

简化过程:
	- 宿舍A的电脑1,通过广播或单播将数据发送到网管(路由器)
    - 路由器接收到数据之后,再通过对应的接口把数据通过广播的形式发送到宿舍B。
注意:各自局域网内通过学习并记录相关mac地址后,就可以不再使用广播形式,而是使用单播来发送消息了。

在这里插入图片描述

在这里插入图片描述

1.1.3 三层交换机

三层交换机集成了 交换机 & 路由器的功能(大部分路由器功能),上述的三个设备其实可以用一个三层交换机就可以搞定。

按照下图,在三层交换机上分别做如下几件事:

1. 划分两个vlan,模拟出来路由器的两个接口。
2. 将交换机的接口划分给指定的vlan,例如:
	接口123划分给一个vlan,相当于交换机连接上了路由器。
    接口456划分给一个vlan,相当于交换机连接上了路由器。
3. 电脑连接上交换机。
4. 进行相应的配置。
	宿舍A(左边)电脑配置:
    	- 电脑1192.168.10.1  网关:192.168.10.254	对应交换机接口:1
		- 电脑2192.168.10.2  网关:192.168.10.254	对应交换机接口:2
		- 电脑3192.168.10.3  网关:192.168.10.254	对应交换机接口:3
	宿舍B(右边)电脑配置:
		- 电脑1192.168.20.1  网关:192.168.20.254	对应交换机接口:4
		- 电脑2192.168.20.2  网关:192.168.20.254	对应交换机接口:5
		- 电脑3192.168.20.3  网关:192.168.20.254	对应交换机接口:6
	
    交换机中的路由配置:
    	  接口               IP
         左vlan   	  192.168.10.254192.168.10网段)
         右vlan   	  192.168.20.254192.168.20网段)
        
通过上述的配置之后,就可以实现宿舍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位,由小数点分开,例如:

二进制表示:00000000.10010111.11111111.00001111
十进制表示:251.151.255.15

0~255
192.178.11.211
192.178.11.311

在网络中的每台电脑都会有一个IP与之绑定,这样通过IP就可以找到相应的电脑。

一个IP地址可以划分为两个部分,即:网络地址 + 主机地址。

  • 问题1:如何确定网络地址和主机地址呢?

    通过子网掩码就可以确定IP的网络地址和主机地址。
    
    示例1:
        	IP:192.168.1.199      11000000.10101000.00000001.11000111
    	子网掩码:255.255.255.0     11111111.11111111.11111111.00000000
    此时,网络地址就是前24位 + 主机地址是后8位。你可能见过有些IP这样写 192.168.1.199/24,意思也是前24位是网络地址。
    
    
    示例2:
        	IP:192.168.99.254     11000000.10101000.01100011.11111110
    	子网掩码:255.255.240.0     11111111.11111111.11111100.00000000
    此时,网络地址就是前22位 + 主机地址是后10位。你可能见过有些IP这样写 192.168.99.254/22,意思也是前22位是网络地址。
    
  • 问题2:划分 网络地址 + 主机地址 的意义是什么?

    网络地址相同的IP,也称为属于同一个网段。
    在局域网内只有同一个网段的IP才能相互通信,不同网段IP想要通信需要借助路由的转发才能通信。
    
    当了解子网掩码之后,其实就可以确定某个网段可以容纳的主机个数,例如:
    【IP: 192.168.10.2  掩码:255.255.255.0】 和 【192.168.10.251 掩码:255.255.255.0】 数据同一个网段。
    
    	示例网段的主机范围:11000000.10101000.00001010. 00000001  ~  11000000.10101000.00001010.  11111110
    	                 --------------------------              --------------------------
    	                          网络地址                                   网络地址
    				           192.168.10.1                 ~           192.168.10.254
                               
    【IP: 192.168.8.1  掩码:255.255.240.0】 和 【192.168.11.254 掩码:255.255.240.0】 数据同一个网段。
    	子网掩码:255.255.240.0
    	示例网段的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚学渣.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值