早期没有网络 a.py -> b.py 借助c文件中转 a文件把数据放在c文件中,b文件从c文件取 b文件把数据放在c文件中,a文件从c文件取 构成了早期的一种数据的交互原理 -> socket(套接字)模型 socket(套接字)是收发数据的一个工具 后来有了网络 a文件中的数据,可以通过网络协议,转成10101电信号,进行发送 a文件借助socket发送数据 b文件借助socket接受数据
一.、网络开发的两大架构
1、c/s架构
""" c/s 架构 : client server C/S c -> client 客户端 具体制定是一个软件,像qq,微信,腾讯会议,dnf,wow,跑跑卡丁车,龙与地下城ddo,消消乐,劲舞团,英雄联盟 s -> server 服务端 天河三号 百亿亿次超级计算机 """
2、b/s架构
B/S B -> Brower 浏览器 通过输入网址,直接访问对方服务器,对方服务器响应请求之后 把对应的数据通过网络返回到浏览器中进行显示 s -> server 服务端 # b/s 和 c/s 谁代表未来? # b/s! (1) 省去复杂漫长的下载和安装环节,节省了手机和电脑的硬盘空间 (2) 因为手机的便捷性,可以随时随地不受限制的使用各式各样的功能,满足日常需求.
二网络概念
1、 ip
ip地址的最后一位0或者255 两个数字不能用,
一般最后一位0表达的是网段,255代表广播地址
2、网段
""" 网段的作用: 主要用来划分同一区域里的某些机器是否能够互相通信。 在一个网段里可以不通过因特网,直接对话 判别的依据: 如果IP地址和子网掩码相与得到的值相同就是同一网段 """
3、子网掩码:区分网段和主机
案例一
# ip 192.168.30.251 #子网掩码 255.255.255.0 11000000.10101000.00011110.11111011 11111111.11111111.11111111.00000000 11000000.10101000.00011110.00000000 网段 网段:192.168.30.0
#ip 192.168.30.33 #子网掩码 255.255.255.0 11000000.10101000.00011110.00100001 11111111.11111111.11111111.00000000 11000000.10101000.00011110.00000000 网段 网段:192.168.30.0 在一个网段可以互相通信.
案例二
# ip 192.168.30.251 # 子网掩码 255.255.0.0 11000000.10101000.00011110.11111011 11111111.11111111.00000000.00000000 11000000.10101000.00000000.00000000 网段 192.168.0.0
# ip 192.168.35.211 # 子网掩码 255.255.0.0 11000000.10101000.00100011.11010011 11111111.11111111.00000000.00000000 11000000.10101000.00000000.00000000 192.168.0.0
如果两个ip的网段相同就可以一起通讯.
ping+ip 测试是否能够ping通
4、端口
# 某个程序与外界通讯的出口
# 范围: 0~65535 # ip + 端口 访问这个世界上任何一台电脑里面的任何一个应用;
""" 20 端口:FTP 文件传输协议(默认数据口) 21 端口:FTP 文件传输协议(控制) 22 端口:SSH 远程登录协议 25 端口:SMTP 服务器所开放的端口,用于发送邮件 80 端口:http,用于网页浏览,木马 Executor 开放此端口 443 端口:基于 TLS/SSL 的网页浏览端口,能提供加密和通过安全端口传输的另一种 HTTP 3306 端口:MySQL 开放此端口 """
三、osi网络七层模型
""" 应用层(应用层,表示层,会话层) 封装数据: 根据不同的协议,封装成对应格式的数据消息 HTTP [超文本传输协议] HTTPS [加密传输的超文本传输协议] FTP [文件传输协议] SMTP [电子邮件传输协议] 传输层: 封装端口 指定传输的协议(TCP协议/UDP协议) 网络层: 封装ip 版本ipv4 ipv6 数据链路层: 封装mac地址 指定链路层协议arp(ip->mac) / rarp (mac->ip) 物理层: 打成数据包,变成二进制的字节流,通过网络进行传输 交换机:从下到上拆2层,物理层,链路层 路由器:从下到上拆3层,物理层,链路层,网络层 """
1.物理层(电信号101010单纯的101010没有任何意义,就要分组) 2.数据链路层 (具体在哪台机器)(负责分组,电信号就会变得有意义) 以太网协议(ehternet) 数据包分成两部分:1.报头 封装源MAC 目标MAC 计算机之间就可以通信了,广播方式 2.数据 理论上全世界都可以在一个局域网通信,但是要分多个局域网,那一个局域网一台机器怎么找到另一个局域网的机器 3. 网络层 (标识一个房间) ip协议 标识一个网络,首先要知道对方的ip,根据ip和子网掩码计算得到一个网络地址,算出自己的和对方的,网络地址一样,就可以通信,若不一样,把包送给网关,网关在转发。 4.传输层(tcp udp)(找到哪台机器的哪个应用 端口标识) 5.标识层 6.会话层 7.应用层 应用层一个软件会监听一个端口,端口和ip地址绑定
四、arp协议
1、交换机
2、局域网过程
3、广域网过程
4、arp协议:通过ip -> mac (arp地址解析协议)
"""通过交换机的一次广播和一次单薄找到对应mac物理地址"""
""" 由于第一次打包由上到下封装信息,包括TCP头部,IP头部,MAC头, 但是在封装MAC头时,只知道源MAC,不知道目标MAC,将目标MAC设置为 FF-FF-FF-FF-FF-FF 广播地址. 通过交换机的一次广播找到目标MAC,在通过一次单播将目标MAC的广播地址替换为真正的MAC地址. 具体如下: 电脑A先发arp的广播包,把mac标记为全F的广播地址,交换机收到arp广播包,从下到上拆2层,到数据链路层得到mac,发现mac是全F的广播地址,重新打包, 交换机开始广播,所有连接这台交换机的设备都会收到arp广播包,开始拆包,如果是全F的广播地址继续向上找,如果ip不对,直接舍弃. 路由器允许从下到上找三层,拆到网络层,得到ip,找到其中的网段,重新打包,发送给对应这个网段的那个接口(网关),发现对应的那个设备是交换机,从下到上拆2层,发现是全F的广播地址,开始发送arp广播包,数据库服务器拆包, mac为全F的广播地址,mac为全F跳过,发现ip地址就是自己,于是把自己的ip->mac对照表返回给对应的交换机. """