zoukankan      html  css  js  c++  java
  • 网络协议篇

    网络协议篇

    1.C/S B/S架构

    ​ C: client端

    ​ B: browse 浏览器

    ​ S: server端

    C/S架构:

    ​ 基于客户端与服务端之间的通信

    ​ QQ, 游戏, 皮皮虾, 快手, 抖音

    优点:

    ​ 个性化设置, 响应速度快

    缺点:

    ​ 开发成本, 维护成本高, 占用空间, 用户固定

    B/S架构:

    ​ 基于浏览器与服务端之间的通信

    ​ 谷歌浏览器, 360浏览器, 火狐浏览器等等

    ​ 常用谷歌, 或 火狐,广告少, 源码易解读

    优点:

    ​ 开发维护成本低, 占用空间相对低, 用户不固定

    缺点:

    ​ 功能单一, 没有个性化设置, 相应速度相对慢一些

    2.网络通信原理

    80年代, 固定电话联系(还没有推广普通话)

    ​ 1. 两台电话之间一堆物理连接介质连接

    ​ 2. 拨号, 锁定对方电话的位置.

    ​ 由于当时没有统一普通话, 所以你如果和河南, 山西, 广 西, 福建等朋友进行友好的沟通交流, 你必须学当地的方言.

    推广普通话, 统一交流方式:

    ​ 1. 两台电话之间一堆物理连接介质连接.

    ​ 2. 拨号, 锁定对方电话的位置

    ​ 3. 统一交流方式

    全球范围内交流:

    ​ 1. 两台电话之间一堆物理连接介质连接.

    ​ 2. 拨号, 锁定对方电话的位置.

    ​ 3. 统一交流方式.(英语)

    互联网如何通信:

    ​ 现在想和一个美国人联系, 如何利用计算机联系:

    ​ 1. 两台计算机要有一堆物理连接介质连接.

    ​ 2. 找到对方计算机软件位置

    ​ 3. 遵循一揽子互联网通信协议

    3. osi 七层协议

    简单串联五层协议以及作用

    物理层

    ​ 物理层指的就是网线, 光纤, 双绞线等等物理连接介质.物理层发送的是比特流(01010101010),所以有一个问题,数据应该有规律的分组, 分组是数据链路层做的事情

    数据链路层

    ​ 数据链路层对比特流进行分组. 最开始从事互联网企业的就是美国的几家公司, 各家有各家自定的分组标准. 后来统一了标准: 对数据分组的标准.

    以太网协议

    ​ 对比特流进行合理的分组. 一组数据01010101 叫做一帧, 数据报. 例如:

    ​ head | data(晚上约么)

    ​ head 是固定的长度: 18个字节

    ​ 源地址: 6个字节

    ​ 目标地址: 6个字节

    ​ 数据类型: 6个字节

    ​ data: 最少是46个字节, 最大1500字节.

    ​ 一帧数据: 最少64个字节, 最大1518个字节

    ​ 一帧数据 | 一帧数据 | 一帧数据........

    mac地址

    ​ 每个电脑上都有一个网卡, 网卡上都记录着一个独一无二的地址. mac地址就是你的计算机上网卡标注的地址.

    ​ 12位16进制数组成: 前六位是厂商编号, 后六位是流水线号.

    ​ 源mac地址 目标mac地址 数据类型 | data

    ​ "FF - FF - FF - FF - FF - FF"

    ​ '1C - 1B - 0D - A4 - E6 - 44'

    计算机的通信方式:

    ​ 同一个局域网内, 通过广播的形式通信.

    ​ 消息一经广播发出, 局域网所有的计算机都能接收到消息, 分析消息, 是否是找我的, 不是就丢弃

    ​ 计算机智能在局域网内进行广播: 范围大了 广播风暴, 效率极低

    不同局域网如何通信

    软件与软件的通信, 而不是计算机之间的通信

    网络层

    IP协议:

    ​ 确定局域网(子网)的位置

    找到具体软件的位置, 上一层的事情

    传输层

    端口协议

    ​ 确定软件在计算机的位置

    应用层

    ​ 自己定义的协议

    广播(局域网内) + mac地址(计算机位置) + ip(局域网的位置) + 端口(软件在计算机的位置).

    有了以上四个参数: 你就可以确定世界上任何一个计算机的软件的位置

    4.对五层协议详细的补充说明

    数据链路层补充:

    ​ 同一个局域网通过广播的形式发送数据

    交换机的mac地址学习功能:

    ​ 一个交换机的5个接口: 5个计算机

    ​ 1: FF-FF-FF-FF-FF-FF
    ​ 2: FF-FF-FF-FF-FF-FF
    ​ 3: FF-FF-FF-FF-FF-FF
    ​ 4: FF-FF-FF-FF-FF-FF
    ​ 5: FF-FF-FF-FF-FF-FF

    接口1: 源mac 1C - 1B - 0D - A4 - E6 - 44 目标1C - 1C - 0D - A4 - E5 - 44 |数据 以广播的形式发出2,3,4,5口都会接收到消息, 5口是最终的目标地址, 交换机就会将5口与mac地址对应上

    1: 1C-1B-0D-A4-E6-44
    2: FF-FF-FF-FF-FF-FF
    3: FF-FF-FF-FF-FF-FF
    4: FF-FF-FF-FF-FF-FF
    5: 1C-1C-0D-A4-E5-44

    ​ 我们的前提是什么? 你必须知道对方的mac地址你才可以以广播的形式发消息.实际上,网络通信中,你只要知道对方的IP与自己的IP即可.

    网络层:

    IP协议:

    ​ ip地址:

    四段分十进制 192.168.0.12
    取值范围 0255.0255.0255.0255
    子网掩码: C类子网掩码: 255.255.255.0

    ip地址 + 子网掩码 按位与运算 计算出是否在统一局域网(子网,网段).
    计算172.16.10.1 与 172.16.10.128
    172.16.10.1:
    10101100.00010000.00001010.00000001
    255.255.255.0:
    11111111.11111111.11111111.00000000
    从属于的局域网: 172.16.10.0

    172.16.10.128:
    10101100.00010000.00001010.10000000
    255.255.255.0:
    11111111.11111111.11111111.00000000
    从属于的局域网: 172.16.10.0
    172.16.10.1 ~172.16.10.255
    C类子网掩码 一个网段最多可以承载多个IP地址?
    172.16.10.0 被占用.
    172.16.10.255 广播地址 被占用.
    172.16.10.1 被占用.
    253台计算机.
    如果你要想给另一个计算机发数据, 你一定要知道对方的ip地址.

    ARP协议:

    通过对方的ip地址获取到对方的mac地址.
    源码mac 目标mac 源IP 目标IP 数据
    1C-1B-0D-A4-E6-44 FF:FF:FF:FF:FF:FF 172.16.10.13 172.16.10.156 数据

    第一次发消息: 发送到交换机 ---> 路由器 广播形式发出去目标计算机收到消息:就要回消息:

    源码mac 目标mac 源IP 目标IP 数据
    1B-1B-0D-A4-E6-54 1C-1B-0D-A4-E6-44 172.16.10.156 172.16.10.13 数据

    5.UDP TCP

    ​ TCP(Transmission Control Protocol)可靠的、面向连接的协议(eg:打电话)、流式协议, 传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。使用TCP的应用:Web浏览器;文件传输程序。

    ​ UDP(User Datagram Protocol)不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文(数据包),尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统(DNS);视频流;IP语音(VoIP)。

    TCP协议的三次握手和四次挥手

    ​ syn洪水攻击:制造大量的假的无效的IP请求服务器.致使正常的IP访问不了服务器

  • 相关阅读:
    转发和重定向的区别
    描述Session跟Cookie的区别(重要)
    JSP的4大域对象
    描述JSP的9大内置对象(不重要)
    描述JSP和Servlet的区别
    Pytest系列(16)- 分布式测试插件之pytest-xdist的详细使用
    Pytest系列(15)- 多重校验插件之pytest-assume的详细使用
    Pytest系列(14)- 配置文件pytest.ini的详细使用
    Pytest系列(13)- 重复执行用例插件之pytest-repeat的详细使用
    Pytest系列(12)- 测试结果生成HTML报告插件之pytest-html的详细使用
  • 原文地址:https://www.cnblogs.com/beichen123/p/11366204.html
Copyright © 2011-2022 走看看