Python 第二十八章 网络初识+五层协议+三次握手四次挥手
-
网络初识
-
1、C/S和B/S
- C:client客户端B:browse 浏览器S:server 服务器
- C/S 架构:基于客户端与服务器之间的通信
- QQ 皮皮虾
- 优点:个性化设置,响应速度快
- 缺点:开发成本,维护成本高,占用空间,用户固定
- B/S 架构:基于浏览器与服务器之间的通信
- 谷歌浏览器,火狐浏览器
- 优点:开发维护成本低,占用空间相对低,用户不固定
- 缺点:功能单一,没有个性话设置,响应速度相对慢一些
-
2、网络通信原理
- 软件直接的通信80年代,使用固定电话联系(未推广英话)没有统一英话,要想友好交流,需学习当地方言统一交流方式:
- 推广英语全球范围内交流 三步
- 1.两台电话直接一堆物理连接媒介质连接
- 2.拨号 锁定对方电话的位置
- 3.统一交流方式
- 互联网交流本质
- 1.两台计算机要有一堆物理连接介质连接
- 2.找到对方计算机软件位置
- 3.遵循一揽子(多)互联网通信协议
-
3、osi 七层协议
-
应传网数物:从下到上研究
-
5.物理层:发出去
- 最底层指的是网线,光纤等物流连接介质
- 发送的是比特流:0101010101010...源源不断的发送
- 只发比特流有什么问题?
- 无法解析数据需要有规律的分组,分组是数据链路层做的事情
-
4.数据链路层:加 工
- 对比特流进行分组
- 最先是各自有各自的分组标准
- 后改为统一的标准:对数据分组的标准
- 称之为以太网协议(最重要的协议 对比特流进行合理的分组)
- 一组数据01010101 叫做一帧也叫数据报 长度是固定的 8位
- head | data head 是固定长度:18个字节
- 源地址:6个字节 mac 地址
- 目标地址:6个字节 mac地址
- 数据类型:6个字节
- data 无固定长度,有长度限制 最少46个字节 最大1500字节
- 一帧数据:最少64个字节,最大1518个字节
- 一帧数据|一帧数据|一帧数据...
- 每个电脑上的网卡都记录一个独一无二的地址
- mac地址:计算机网卡上标注的地址
- 12位 16进制的数组成:前6位是厂商编号,后6位是流水线号
- 源mac地址 目标mac地址 数据类型|data
- '1C-1B-0D-A4-E6-4A'
- 计算机的通信方式
- 同一局域网内,通过广播的形式通信
- 广播:消息通过广播发出,局域网所有的计算机都能接收到消息,开始分析消息,与自己对号,不是就丢弃
- 广播的形式:在同一个局域网之内,Mac地址+广播即可通信
- 只能在局域网内进行广播,范围大了,引起广播风暴,效率低
- 未解决
- 不同局域网如何通信
- 软件与软件的通信,而不是计算机之间的通信
- 补充说明
- 同一个局域网通过广场的形式发送数据
- 交换机的mac地址学习功能
- 前提:必须知道对方的mac地址,才能以广播的形式发送消息。实际上网络通信中,只要知道对方的ip和自己的ip即可
- 一个交换机的5个接口:5个计算机
- 1:FF-FF-FF-FF-FF-FF
- 接口1:源mac 1C-1P-0D-A4-E6-4R 目标 1C-1P-0D-A4-E6-4E 数据以广播的形式发出
- 2,3,4,5口都会接收到消息,5口是最终的目标地址,交换机就会将5口与mac地址对应上
- 当五个口都对应上具体的mac地址,2口再次发消息,就不会广播了,就会以单播发送 ;提高效率
-
3.网络层:加工
- 找到具体软件的位置,上一层的事情
- IP协议:确定局域网(子网)的位置
- 四段分十进制 192.168.0.12
-
取值范围 0~255 0~255 0~255 0~255
- 子网掩码
-
C类子网掩码:255.255.255.0
- IP地址+子网掩码构成了ip协议 按位与运算,计算出是否在同一局域网(子网,网段)
-
172.16.10.1与172.16.10.128 在同一个局域网可以通过广播发消息 计算在同一局域网: 十进制转二进制
- 一个网段最多可以承载多少个Ip地址?
-
00000000 ~ 11111111 有255中数字
-
172.16.10.0 网段地址被占用
-
172.16.10.255 广播地址 被占用
-
172.16.10.1 被占用
-
253台计算机可以使用
-
如果要给另一个计算机发数据,需要知道对方的IP地址
-
ARP协议
- 从对方的ip地址获取到对方的mac地址
- 源Mac 目标Mac 源IP 目标ip
-
源Mac 1C-1B-0D-A4-E6-4A'
- 目标Mac FF:FF:FF:FF:FF:FF:FF:FF
-
源IP 172.16.10.13
- 目标IP 172.16.10.156
-
第一次发消息:发送到交换机->路由器 广播的形式发出去
- 目标极端就收到消息:回消息
- 源Mac 目标Mac 源IP 目标ip 数据
-
-
2.传输层:加工
- 端口协议 确定软件在计算机的位置
-
端口协议:UDP协议,TCP协议
- 端口有:65535个,可以按照65535个软件
-
1~1024 操作系统专门使用的端口
- 3306 数据库专用端口
-
8080后 是自己开发的软件
-
tcp协议:
-
可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
-
UDP协议:
- 不可靠、无连接的服务,传输效率高,一对一,一对多,多对一,多对多,面向报文
-
TCP协议的三次握手和四次挥手
-
三次握手:
- 客户端发送与服务端建立连接请求
- 服务端接收到,与客户端建立通道;并返回与客户端建立连接
- 客户端接收到,与服务端建立通道
-
四次挥手:
-
客户端传完,给服务端发送断开请求,客户端与服务端断开连接
-
服务器传完,给客户端发送断开请求,服务器与客户端断开连接
-
-
syn洪水攻击:
- 制造大量的假的无效的IP请求服务器致使正常的ip访问不了服务器
-
-
1.应用层:做点什么,进行传输
- 自己定义的协议
-
总结:广播(局域网)+ mac地址(计算机的位置)+ ip(局域网位置)+ 端口(软件在计算机的位置)+ 源数据(字典格式‘data_size':12,data:'晚上来吗')
-
有了以上四个参数:可以确定世界上任何一个计算机的软件的位置
-
对五层协议详细的补充说明
应用层:自己定义的协议,进行文件传输
FTP dic = {filename,md5,filesize}数据
传输层:通过端口协议(UDP协议和TCP协议)封装了端口获取软件在计算机的位置
端口 | dic = {filename,md5,filesize}数据
网络层:通过IP协议确定局域网位置和通过ARP协议获取mac地址
ip(双方的) | 端口| dic = {filename,md5,filesize}数据
ARP协议:通过ip地址获取对方的mac地址
数据链路层:通过以太网协议对数据进行分组
Mac地址 | ip(双方的) | 端口| dic = {filename,md5,filesize}数据
物理层:物理介质连接,源源不断发送比特流
总结
单播:单独联系某个人
广播:给所有人发送消息(群发)
比特流:bit就是010101.... 像水流源源不断的流
以太网协议:将数据进行分组:一组称之为一帧,数据报再发出去
head | data
head : 固定的18个字节 源mac地址|目标mac地址|数据类型
data : 最少46个字节,最多1500个字节
mac地址:计算机网卡上记录的地址,是计算机独一无二的标识(类似于身份证)
用于局域网内广播(单播)时查找的计算机的位置
交换机:起到分流连接计算机的作用
路由器:
外网(公网)IP
内网(局域网)IP 都是假的
DHCP协议:路由器自动分发的IP地址,网关等等
手动更改ip地址
子网掩码不用改
默认网关不能改
家用路由器:一般两个网段,接外网的插口 其他四个起到分流,一个ip地址接一个电脑,接入一个交换机,可以连接48个电脑
企业版路由器:可以接多个交换机,口多;可以分配多个网段
交换机的mac学习功能:
第一次发送消息广播的形式,当学习表记录上端口与mac地址对应关系之后,再发送消息,单播的形式发送
端口1:1c-4G-3B-8I-2-6
广播风暴:所有的计算机都在用广播的形式发送消息
IP协议:四段分十进制 172.168.0.3
子网掩码:
A类 255.0.0.0
B类 255.255.0.0
C类 255.255.255.0
端口:接收数据的专用通道
0~1023系统的
8080以后自己选取的
ARP协议:通过ip获取到计算机的Mac地址
TCP协议:面向链接的协议,流式协议,安全可靠,效率低的协议,传输文件,例如:浏览器
UDP协议:用户数据报协议,效率高,不安全不可靠的协议 例如:微信QQ
"""
"""
DNS服务器:域名解析
第一次:计算机单播的形式给交换机,再单播给路由器,访问DNS服务器,获取到ip地址和端口
判断是否在同一个局域网内,在,以单播或者广播的形式去访问,不在,以路由协议去找最优路线
NAT:IP置换技术mac地址也会置换 路由器置换的
路由协议:选取最优路线
端口映射技术
找到计算机软件的位置
"""
总结:
前提:目标mac明确
计算机A发送一个消息给计算机B
源Mac 目标Mac 源IP 目标ip
单播的形式发送到交换机,交换机会检测自己的对照表有没有目标mac;
如果有,单播传;
没有就交由上一层:路由器
路由器收到消息:对消息进行分析,要确定目标计算机与本计算是否在同一网段?
如果在,通过ip以及ARP协议获取到对方的Mac地址,然后再通信
不在同一个网段通过路由协议找到相关的局域网