Python——网络编程
网络编程
1、CS架构与BS架构
-
Client <===============> Server
''' 客户端软件send 服务器软件recv 操作系统 操作系统 计算机硬件 <=====物理介质====> 计算机硬件 '''
-
Browsewr<=============>Server
''' 浏览器 <=========> 服务器 '''
2、网络通信
- 网络存在的意义就是跨地域数据传输=> 称之为通信
- 网络=物理链接介质+互联网通信协议
3、OSI七层协议
-
互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
-
五层协议
''' 1、应用层 2、传输层 3、网络层 4、数据链路层 5、物理层 '''
-
协议:规定数据的组织格式
# 格式:头部+数据部分 # 封包裹的过程:数据外加头 # 拆包裹的过程:拆掉头获取数据
-
OSI七层协议数据传输的封包与解包过程
4、五层协议
'''
计算机1: 计算机2:
应用层 应用层
传输层 传输层
网络层 网络层
数据链路层 数据链路层
物理层 <======================> 物理层
01010101010
(源mac地址,目标mac地址)(源ip地址,目标ip地址)数据
'''
-
物理层负责发送电信号
''' 一组物理层数据称之为:位 单纯的电信号毫无意义,必须对其进行分组 '''
-
数据链路层:ethernet以太网协议
''' 规定1:一组数据称之为一个数据帧 规定2:数据帧分成两部分=》头+数据 头包含:源地址与目标地址,该地址是mac地址 数据包含:包含的是网络层发过来的整体的内容 规定3:规定但凡接入互联网的主机必须有一块网卡,每块网卡在出厂时都烧制好一个全世界独一无二的地址,该地址称之为mac地址 注意:计算机通信基本靠吼,即以太网协议的工作方式是广播 '''
-
网络层:IP协议
''' 要达到的目的: 划分广播域 每一个广播域但凡要接通外部,一定要有一个网关帮内部的计算机转发包到公网 网关与外界通信走的是路由协议 规定1:一组数据称之为一个数据包 规定2:数据帧分成两部分=》头+数据 头包含:源地址与目标地址,该地址是IP地址 数据包含的:传输层发过来的整体的内容 ipv4地址: 8bit.8bit.8bit.8bit 0.0.0.0 255.255.255.255 子网掩码: 8bit.8bit.8bit.8bit 255.255.255.0对应的二进制表达 11111111.11111111.11111111.00000000 一个合法的ipv4地址组成部分=ip地址/子网掩码地址 172.16.10.1/255.255.255.0 172.16.10.1/24 计算机1: 172.16.10.1: 10101100.00010000.00001010.000000001 255255.255.255.0: 11111111.11111111.11111111.000000000 通过ip地址+mac地址算出计算机1的网段地址 172.16.10.0: 10101100.00010000.00001010.000000000 计算机2: 172.16.10.2: 10101100.00010000.00001010.000000010 255.255.255.255.0: 11111111.11111111.11111111.000000000 通过ip地址+mac地址算出计算机2的网段地址 172.16.10.0: 10101100.00010000.00001010.000000000 计算机1: 计算机2: 应用层 应用层 传输层 传输层 网络层 网络层 数据链路层 数据链路层 物理层 <=========二层交互机========> 物理层 0101010101010 (源mac地址,xxxx)(源ip地址,目标ip地址)数据 (源mac地址,网关的mac地址)(172.16.10.10/24,101.100.200.11/10)数据 事先知道的是对方的ip地址 但是计算机的底层通信是基于ethernet以太网协议的mac地址通信 ARP: 所以必须能够将ip地址解析成mac地址 '''
- 计算机在同一局域网以及不同局域网内的通信方式
''' # 两台计算机在同一个局域网内 计算机1:172.16.10.10/24 直接 计算机2:172.16.10.11/24 ARP: 自己的ip,对方的ip 1、计算二者网络地址,如果一样,拿到计算机2的mac地址就可以了 2、发送广播包 发送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.11/24 数据 # 两台计算机不在同一个局域网内 计算机1:172.16.10.10/24 网关 计算机2:101.100.200.11/10 ARP: 自己的ip,对方的ip 1、计算机二者网络地址,如果不一样,应该拿到网关的mac地址 2、发送广播包 发送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.1/24 数据 '''
-
总结
''' ip地址+mac地址=》标识全世界范围内独一无二的一台计算机 或者: ip地址=》标识全世界范围内独一无二的一台计算机 '''