从这一章节开始,我们就要开始接触python的网络编程了,本部分为学前导入部分
常用名词
项目架构
- C/S Client/Server 客户端服务器架构 例如:QQ,Wechat,钉钉等
优势 可以将一些常用的文件缓存到本地
缺点 需要占用本地存储 对本地性能要求高
- B/S Browser/Server 浏览器服务器架构 例如:教务系统,学习通
优势 不需要安装本地客户端 方便维护,统一更新
缺点 要求服务器的性能 高并发 服务器集群(刀片机)
网络通信
- IP地址
格式 xxx.xxx.xxx.xxx
是在网络中的位置
两个特殊IP 127.0.0.1/localhost 本地回环地址
- MAC地址
格式 00-00-00-00-00-00
是一个唯一的物理地址,类似于身份证
- 端口
有效端口 0 - 65535
对应某一个服务的表示位置
0 - 1023
知名端口,系统备用端口 一般不要随便用
1024 - 65535
动态端口,不固定分配某种服务,而是动态分配
- 路由器
路由器(Router),是连接因特网中各局域网、广域网的设备,是互联网络的枢纽
- 网关
某一段网段的入口和出口
- 子网掩码
是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。
比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0
知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND(&)运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网
络?
两者与子网掩码分别进行AND运算,
172.16.10.1: 10101100.00010000.00001010.000000001
255.255.255.255.0: 11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0
172.16.10.2: 10101100.00010000.00001010.000000010
255255.255.255.0: 11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0
结果都是172.16.10.0,因此它们在同一个子网络。