Python 第二十八章 网络初识+五层协议+三次握手四次挥手

我与影子孤独终老i 提交于 2020-04-07 09:14:54
  • 网络初识

  • 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地址,然后再通信

​ 不在同一个网段通过路由协议找到相关的局域网

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!