精华内容
下载资源
问答
  • 互联网密钥交换协议 IKE(Internet Key Exchange),对建立 IPSec的双方进行认证(需要预先协商认证方式);通过密钥交换,产生用于加密和 HMAC 的随机密钥;协商协议参数(加密协议、散列函数、封装协议、封装模式和...

    互联网密钥交换协议 IKE(Internet Key Exchange),对建立 IPSec的双方进行认证(需要预先协商认证方式);通过密钥交换,产生用于加密和 HMAC 的随机密钥;协商协议参数(加密协议、散列函数、封装协议、封装模式和密钥有效期)。协商完成后的结果就叫做安全关联(SA)。SA 一共有两种类型,IKE SA,ipsec SA。

    一. IKE组成

    SKEME(安全密钥交换机制):主要使用DH来实现密钥交换。
    Oakley:决定了IPSec的框架设计,让IPSec能够支持更多的协议。
    ISAKMP: IKE的本质协议,它决定了IKE协商包的封装格式,交换过程和模式的切换。
    在这里插入图片描述

    二. 两个阶段

    在这里插入图片描述

    1. 第一阶段协商
      对建立IPSec的双方进行认证,以确保对等体的合法性。
      主要任务:相互认证
      第一阶段完成,不仅表示收发双方认证通过,并且还会建立一个双向的 ISAKMP/IKE SA, 这个 SA 维护了处理 ISAKMP/IKE 流量的相关策略,而对等体双方还会继续使用这个 SA,来安全保护后续第二阶段的 IKE 快速模式1-3包交换。
      在这里插入图片描述
      (1)主模式 IKE 1-2包交换
      加密策略
      散列函数
      DH 组
      认证方式
      密钥有效期
      在这里插入图片描述
      在这里插入图片描述
      (2)主模式 IKE 3-4包交换
      密钥交互
      使用DH产生

    密码学(二战),g和p较大时,已知a求A CPU计算速度很快,已知A求a几乎不可能,g和p的由1-2包交换的DH组大小决定
    在这里插入图片描述
    在这里插入图片描述
    DH详解:
    发起方首先随机产生g、p、a,用离散对数函数计算得出A。把 g、p、A 发送给接收方。
    接收方收到后,随机产生b,使用接收到的g和p,用离散对数函数计算得到 B。然后把 B 回送给发起方。
    接收方通过 A^b mod p 得到的结果, 等于发起方通过 B^a mod p 计算得到的结果,也等于 g^ab mod p。
    通过 DH 算法得到了一个共享秘密 g^ab mod p。

    (3)主模式数据包 5-6交换
    在安全的环境下进行认证:预共享密钥认证,证书认证,RSA加密随机数认证。
    第5-6包开始往后,都使用IKE 1-2包交换所协商的加密与HMAC算法进行安全保护
    在这里插入图片描述
    具体流程:
    在这里插入图片描述
    在这里插入图片描述

    二. 第二阶段协商

    1. 快速模式 1-3包交换
      (1)在安全的环境下,基于感兴趣流协商处理其IPSec的策略
      感兴趣流
      加密策略
      散列函数
      封装协议
      封装模式
      密钥有效期
      (2)策略协商完毕以后就会产生相应的 IPSec SA
      在这里插入图片描述
    2. 主要任务
      基于具体的感兴趣流来协商相应的 IPSec SA,IKE 快速模 式交换的三个数据包都得到了安全保护(加密、完整性校验和源认证)
      在这里插入图片描述
    展开全文
  • MPLS 的工作原理IETF于1997年成立了 MPLS 工作组,开发出一种新的协议——多协议标记交换 MPLS (MultiProtocol Label Switching)。“多协议”表示在 MPLS 的上层可以采用多种协议,例如:IP,IPX;可以使用多种数据...

    MPLS 的工作原理IETF于1997年成立了 MPLS 工作组,开发出一种新的协议——多协议标记交换 MPLS (MultiProtocol Label Switching)。

    “多协议”表示在 MPLS 的上层可以采用多种协议,例如:IP,IPX;可以使用多种数据链路层协议,例如:PPP,以太网,ATM 等。

    “标记”是指每个分组被打上一个标记,根据该标记对分组进行转发。

    为了实现交换,可以利用面向连接的概念,使每个分组携带一个叫做标记 (label) 的小整数。当分组到达交换机(即标记交换路由器)时,交换机读取分组的标记,并用标记值来检索分组转发表。 这样就比查找路由表来转发分组要快得多。

    3a77fa7dd070278dd470fa461f7ee725.png

    MPLS 特点MPLS 并没有取代 IP,而是作为一种 IP 增强技术,被广泛地应用在互联网中。

    MPLS 具有以下三个方面的特点:支持面向连接的服务质量;

    支持流量工程,平衡网络负载;

    有效地支持虚拟专用网 ***。

    MPLS 的工作原理

    基本工作过程IP 分组的转发

    (1) 在传统的 IP 网络中,分组每到达一个路由器后,都必须提取出其目的地址,按目的地址查找路由表,并按照“最长前缀匹配”的原则找到下一跳的 IP 地址(请注意,前缀的长度是不确定的)。

    (2) 当网络很大时,查找含有大量项目的路由表要花费很多的时间。

    (3) 在出现突发性的通信量时,往往还会使缓存溢出,这就会引起分组丢失、传输时延增大和服务质量下降。

    IP 分组的转发

    13e496c214a547ca83b8a9bec614a385.png

    MPLS 协议的基本原理在 MPLS 域的入口处,给每一个 IP 数据报打上固定长度“标记”,然后对打上标记的 IP 数据报用硬件进行转发。

    采用硬件技术对打上标记的 IP 数据报进行转发就称为标记交换。

    “交换”也表示在转发时不再上升到第三层查找转发表,而是根据标记在第二层(链路层)用硬件进行转发。

    MPLS 域 (MPLS domain) 是指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持 MPLS 技术的标记交换路由器 LSR (Label Switching Router)。

    LSR 同时具有标记交换和路由选择这两种功能,标记交换功能是为了快速转发,但在这之前LSR 需要使用路由选择功能构造转发表。

    a5142f1621e5da8c62db5d54bd5689e4.png

    MPLS 的基本工作过程

    (1) MPLS 域中的各 LSR 使用专门的标记分配协议 LDP 交换报文,并找出标记交换路径 LSP。各 LSR 根据这些路径构造出分组转发表。

    (2) 分组进入到 MPLS 域时, MPLS 入口结点把分组打上标记,并按照转发表将分组转发给下一个 LSR。给 IP 数据报打标记的过程叫做分类 (classification)。

    (3) 一个标记仅仅在两个标记交换路由器 LSR 之间才有意义。分组每经过一个 LSR,LSR 就要做两件事:一是转发,二是更换新的标记,即把入标记更换成为出标记。这就叫做标记对换 (label swapping)。

    项目含义:从入接口 0 收到一个入标记为 3 的IP 数据报,转发时,应当把该IP数据报从出接口 1 转发出去,同时把标记对换为 1。

    fa86ba90da9902012db8ca80284743a6.png

    (4) 当分组离开 MPLS 域时,MPLS 出口结点把分组的标记去除。再以后就按照一般分组的转发方法进行转发。

    上述的这种“由入口 LSR 确定进入 MPLS 域以后的转发路径”称为显式路由选择 (explicit routing),它和互联网中通常使用的“每一个路由器逐跳进行路由选择”有着很大的区别。

    转发等价类 FECMPLS 有个很重要的概念就是转发等价类 FEC (Forwarding Equivalence Class)。

    “转发等价类”就是路由器按照同样方式对待的分组的集合。

    “按照同样方式对待”表示:从同样接口转发到同样的下一跳地址,并且具有同样服务类别和同样丢弃优先级等。

    划分 FEC 的方法不受什么限制,这都由网络管理员来控制,因此非常灵活。

    入口结点并不是给每一个分组指派一个不同的标记,而是将属于同样 FEC 的分组都指派同样的标记。

    FEC 和标记是一一对应的关系。

    FEC 用于负载平衡

    b10023bf97c2df52cec66879f15f0068.png

    流量工程

    (1) 网络管理员采用自定义的 FEC 就可以更好地管理网络的资源。

    (2) 这种均衡网络负载的做法也称为流量工程 TE (Traffic Engineering) 或通信量工程。

    MPLS 首部的位置与格式MPLS 并不要求下层的网络都使用面向连接的技术。

    下层的网络并不提供打标记的手段,而 IPv4 数据报首部也没有多余的位置存放 MPLS 标记。

    这就需要使用一种封装技术:在把 IP 数据报封装成以太网帧之前,先要插入一个 MPLS 首部。

    从层次的角度看,MPLS 首部就处在第二层和第三层之间。

    933ec6c68ce3e979cd3099bf38e37399.png

    MPLS 首部的格式

    “给 IP 数据报打上标记”其实就是在以太网的帧首部和 IP 数据报的首部之间插入一个 4 字节的 MPLS 首部。

    de90879783e5791b2293831f74c6e2f1.png

    MPLS 首部共包括以下四个字段:

    (1) 标记值(占 20 位)。可以同时容纳高达 220 个流(即 1048576 个流)。实际上几乎没有哪个 MPLS 实例会使用很大数目的流,因为通常需要管理员人工管理和设置每条交换路径。

    (2) 试验(占 3 位)。目前保留用作试验。

    (3) 栈S(占 1 位)。在有“标记栈”时使用。

    (4) 生存时间TTL(占 8 位)。用来防止 MPLS 分组在 MPLS 域中兜圈子。

    展开全文
  • 数据交换协议--JSON、XML、YAML、TOML、TLV1 数据交换协议2 常用协议2.1 JSON介绍示例2.2 XML介绍示例2.3 CSON介绍示例2.4 TOML介绍示例2.5 YAML介绍示例2.6 TLV参考 1 数据交换协议 数据交换协议的目的是让两个系统...

    1 数据交换协议

    数据交换协议的目的是让两个系统进行正确的数据交互。所以几乎各种开发语言都提供了方便使用的数据交换功能。
    像JSON、XML、YAML、TOML直接按照规则使用,可用在软件的配置文件,系统间通信协议。如工业设备的操作命令,使用JSON协议。
    TLV是自己定义的协议,详见参考[1]。如用在上下位机的串口通信中。

    2 常用协议

    2.1 JSON

    介绍

    JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

    示例

    {
        "name": "中国",
        "province": [{
            "name": "黑龙江",
            "cities": {
                "city": ["哈尔滨", "大庆"]
            }
        }, {
            "name": "广东",
            "cities": {
                "city": ["广州", "深圳", "珠海"]
            }
        }, {
            "name": "台湾",
            "cities": {
                "city": ["台北", "高雄"]
            }
        }, {
            "name": "新疆",
            "cities": {
                "city": ["乌鲁木齐"]
            }
        }]
    }
    

    2.2 XML

    介绍

    可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。

    示例

    <?xml version="1.0" encoding="utf-8"?>
    <country>
        <name>中国</name>
        <province>
            <name>黑龙江</name>
            <cities>
                <city>哈尔滨</city>
                <city>大庆</city>
            </cities>
        </province>
        <province>
            <name>广东</name>
            <cities>
                <city>广州</city>
                <city>深圳</city>
                <city>珠海</city>
            </cities>
        </province>
        <province>
            <name>台湾</name>
            <cities>
                <city>台北</city>
                <city>高雄</city>
            </cities>
        </province>
        <province>
            <name>新疆</name>
            <cities>
                <city>乌鲁木齐</city>
            </cities>
        </province>
    </country>
    

    2.3 CSON

    介绍

    首先,有两个 CSON 规范。 一个代表 CoffeeScript Object Notation,另一个代表 Cursive Script Object Notation。后者不经常使用,所以我们不会关注它。我们只关注Coffee Script。
    CSON 需要一点介绍。首先,我们来谈谈 CoffeeScript。CoffeeScript 是一种通过运行编译器生成 JavaScript 的语言。它允许你以更加简洁的语法编写 JavaScript 并转译成实际的 JavaScript,然后你可以在你的 web 应用程序中使用它。CoffeeScript 通过删除 JavaScript 中必需的许多额外语法,使编写 JavaScript 变得更容易。CoffeeScript 摆脱的一个大问题是花括号 —— 不需要它们。同样,CSON 是没有大括号的 JSON。它依赖于缩进来确定数据的层次结构。CSON 非常易于读写,并且通常比 JSON 需要更少的代码行,因为没有括号。
    要用 CoffeeScript 解析/标记化/lex/转译或其它方式来使用 CSON。

    示例

    books: [
      id: 'bk102'
      author: 'Crockford, Douglas'
      title: 'JavaScript: The Good Parts'
      genre: 'Computer'
      price: 29.99
      publish_date: '2008-05-01'
      description: 'Unearthing the Excellence in JavaScript'
    ]
    

    2.4 TOML

    介绍

    TOML(Tom 的显而易见的最小化语言Tom’s Obvious, Minimal Language)允许以相当快捷、简洁的方式定义深层嵌套的数据结构。名字中的 Tom 是指发明者 Tom Preston Werner,他是一位活跃于我们行业的创造者和软件开发人员。与 JSON 相比,语法有点尴尬,更类似 ini 文件。这不是一个糟糕的语法,但是需要一些时间适应。
    目前使用的较少,支持的语言不丰富。

    示例

    [[books]]
    id = 'bk101'
    author = 'Crockford, Douglas'
    title = 'JavaScript: The Good Parts'
    genre = 'Computer'
    price = 29.99
    publish_date = 2008-05-01T00:00:00+00:00
    description = 'Unearthing the Excellence in JavaScript'
    

    2.5 YAML

    介绍

    YAML 来自一个 Python 的贡献者。YAML 具有与 CSON 相同的功能集和类似的语法,有一系列新功能,以及几乎所有 web 编程语言都可用的解析器。它还有一些额外的功能,如循环引用、软包装、多行键、类型转换标签、二进制数据、对象合并和集合映射。它具有非常好的可读性和可写性,并且是 JSON 的超集,因此你可以在 YAML 中使用完全合格的 JSON 语法并且一切正常工作。你几乎不需要引号,它可以解释大多数基本数据类型(字符串、整数、浮点数、布尔值等)。

    示例

    books:
      - id: bk102
      author: Crockford, Douglas
      title: 'JavaScript: The Good Parts'
      genre: Computer
      price: 29.99
      publish_date: !!str 2008-05-01
      description: Unearthing the Excellence in JavaScript
    

    2.6 TLV

    详见 网络通信–协议设计

    参考

    1、网络通信–协议设计
    2、百科–JSON
    3、JSON、XML、TOML、CSON、YAML 大比拼
    4、YAML文件简介
    5、深入对比TOML,JSON和YAML
    6、比较一下XML, JSON和YAML
    7、系统间通信(一)——数据交换序列化格式
    8、百科–XML

    展开全文
  • 常见网络协议汇总

    千次阅读 多人点赞 2021-08-06 15:03:27
    常用网络协议前言TCP/IP五层网络模型回顾应用层协议DNS协议:HTTP协议HTTPS协议传输层协议UDP协议TCP网络层IP协议ICMP协议数据链路层ARP协议物理层整体的网络传输流程 前言 本篇博客将对基于 TCP/IP的五层网络模型 ...

    前言

    本篇博客将对基于 计算机网络五层模型 中的常见协议做以总结 ,目的通过这些具体的协议更深刻的认识整体网络的传输流程及相关网络原理

    计算机网络五层模型回顾

    在这里插入图片描述

    • 应用层:为用户为用户的应用进程提供网络通信服务
      协议——DNS协议、HTTP协议、HTTPS协议
    • 传输层:负责两台主机之间的数据传输,将数据从发送端传输到接收端
      协议——TCP协议、UDP协议
    • 网络层:负责传输的地址管理和路由选择,在众多复杂的网络环境中确定一条合适的路径
      协议——IP协议
    • 数据链路层:负责设备之间数据帧的传送和识别,将网络层传递的数据报封装成帧,在处于同一个数据数据链路节点的两个设备之间传输
      协议——ARP协议、MTU协议
    • 物理层:负责光电信号的传递方式,实现相邻计算机节点之间比特流的透明传输

    对于五层网络模型基本都是耳熟能详,但是有没有思考过,网络为什么要这样分层呢?

    最直接的回答就是为了简化网络设计的复杂性,通信协议采用分层结构,各层之间既相互独立又相互协调工作,如此以来便达到的高效的目的。如同设计模式中对于设计一个复杂的程序时,尽量使程序各功能之间是解耦合的一样,对于复杂的网络设计,分层设计也是很明智的一种做法。

    网络分层的最本质就是每一层独立的完成一个任务而不必考虑自己任务之外的实现,而因为不同的任务因此就有了每一层所对应的不同设备。(实例到应用就是,物理层只需要关系0和1的光电信号如何传输,而对它所表达的内容毫不关心;再往上数据链路层只需要关心封装好的数据帧如何准确的送到对应的MAC地址的目的主机中,而不必关心数据报的具体内容和具体会通过何种方式光纤还是局域网…同理往上对于所有层)

    应用层协议

    应用层协议主要负责各个程序间的通信,发生网络传输一个数据时,先由应用层对数据按照对应的协议封装,然后交给下一层传输层,当经过一系列网络传输,数据达到接收端时,一层层的分用,最后一层再由应用层分用,最终得到数据。

    DNS协议:

    DNS协议是一个应用层协议,建立在TCP和UDP的基础之上,使用默认端口为53,其默认通过UDP协议通信,但如果报文过大是则会切换成TCP协议。

    域名系统 (DNS) 的作用是将人类可读的域名 (如,www.baidu.com) 转换为机器可读的 IP 地址 (如,192.0.2.44),本质是通过DNS域名和IP地址的对应关系转换,而这种对应关系则保存在DNS服务器中

    域名的解析过程:

    域名的解析工作大体上可以分为两个步骤:第一步客户端向本地DNS服务器发起一个DNS请求报文,报文里携带需要查询的域名,第二步本地DNS服务器向本机回应一个DNS响应报文,报文里携带查询域名所对应的IP地址

    具体流程如下:

    1. 在本地缓存中查询,如果有则返回对应IP,如果没有将请求发给DNS服务器
    2. 当本地DNS服务器接收到查询后,先在服务器管理区域记录中查询,若没有再在服务器本地缓存中查询,如果没有将请求发送到根域名服务器
    3. 根域名服务器负责解析请求的根域部分,然后将包含下一级域名信息的DNS服务地址返回给本地DNS服务器
    4. 本地DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到再下一级域的DNS服务器地址
    5. 按照上述递归方法逐级接近查询目标,最后在有目标域名的DNS服务器上找到相应的IP地址信息
    6. 本地DNS服务器将最终查询到的IP返回给客户端,让客户端访问对应主机

    HTTP协议

    HTTP协议是一个简单的请求——响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
    同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。HTTP是一种协议规范,这种规范记录在文档上,为真正通过HTTP进行通信的HTTP的实现程序。

    HTTP是基于TCP协议,且面向连接的。典型的HTTP事务处理有如下的过程:

    1. 客户端与服务器建立连接;
    2. 客户端向服务器提出请求;
    3. 服务器接受请求,并根据请求返回相应的数据作为应答响应;
    4. 客户端与服务器关闭连接。

    HTTP协议报文格式
    HTTP报文由从客户机到服务器的请求(Request)和从服务器到客户机的响应(Respone)构成

    请求由请求行,请求头,请求体组成
    请求行中包含请求方法、路径、版本号,请求头为多个key-value数据,请求正文包含一些请求的数据
    响应由响应行,响应头,响应体组成
    响应行中包含状态码,状态码描述,版本号,响应头为多个key-value数据,响应正文包含一些响应的数据
    在这里插入图片描述
    常见HTTP响应状态码汇总

    200 OK :客户端请求成功

    3XX系列

    301 Moved Permanently :请求的资源以被永久的移动到新URL中,返回的Response中包含一个Location,浏览器会自动重定向到新URL,以后请求都会被新的URL替代
    302 Found :与301类似,但请求的资源只是临时的被移动到新的URL中,下次请求客户端继续使用原URL
    307 Temporary Redirect : 临时重定向,类似于302,使用GET请求重定向

    4XX系列

    400 Bad Request : 客户端请求语法错误,服务器无法理解(在 ajax 请求后台数据时比较常见)
    401 Unauthorized :请求要求用户的身份认证
    403 Forbidden : 服务器理解客户端请求,但是拒绝执行(一般用于用户级别为达到要求等等不支持访问)
    404 Not Found : 服务器无法根据客户端请求找到对应资源
    405 Method Not Allowed : 服务器不支持该方法

    5XX系列

    500 Internal Server Error : 服务器内部错误,无法完成请求
    503 Service Unavailable :由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中

    HTTP协议的特点

    1. 支持服务器/客户端模式
    2. 传输较快速,客户端向服务器发送请求,只需要传输请求方法和路径
    3. 灵活,HTTP允许传输任意类型的数据对象
    4. 无连接,每次连接只能处理一个请求,服务器处理完客户端请求,客户端收到响应后就断开连接
    5. 无状态,协议本身对事务处理没有记忆能力,如果后序连接需要之前发送的信息时就需要重传

    HTTP1.0和HTTP1.1和HTTP2.0的区别:

    HTTP1.0和HTTP1.1的区别:

    1. 长连接:HTTP1.0只支持浏览器与服务器的短连接,即每次请求都要重新建立连接,服务器无法记录每个历史请求,HTTP1.1支持长连接即在一次连接下,浏览器可以向服务器发送多次请求
    2. 增加Host字段:HTTP1.0中认为每个服务器都绑定这唯一一个IP,所有发送的请求头URL中没有host信息,而HTTP1.1在请求和响应中都支持了host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)
    3. 缓存:HTTP1.1在1.0的基础上加入了一些cache的新特性,当缓存对象的Age超过Expire时变为stale对象,cache不需要直接抛弃stale对象,而是与源服务器进行重新激活(revalidation)。
    4. 错误提示:HTTP1.0中定义了16个状态码,对错误或警告的提示不够具体。HTTP1.1引入了一个Warning头域,增加对错误或警告信息的描述,并且还新增了24个状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除

    HTTP1.X和HTTP2.0的区别

    1. 增加二进制格式解析:HTTP1.X解析基于文本,而文本格式本身就具有多样性,很多场景下不方便,而引入二进制后,只有0和1组合,使解析更加方便也增强了健壮性
    2. 多路复用:即每个request都是是用作连接共享机制的,每个request都对应一个id,使一个连接可以有多个请求,再根据id将request归属到不同的服务端请求里
    3. header压缩:HTTP1.X中,每次传输都要写点header头,占用了大量数据,因此HTTP2.0在客户端和服务端各保存了一份header fields表,每次传输时只需传输header的更新信息,将header fields表更新即可实现header传输
    4. 服务端推送:HTTP2.0也添加了server push功能

    HTTPS协议

    HTTPS同样作为应用层协议,可以说它是HTTP的升级版,增加了传输数据的安全性,HTTPS协议是在HTTP的基础上增加了一个SSL外壳,HTTPS运行在SSL上,SSL运行在TCP上,对数据的加密工作就是在SSL上完成的
    在这里插入图片描述

    其保证安全性的做法是通过证书验证和对信息混合加密的方式
    混合加密技术:

    混合加密技术:结合对称加密与非对称加密
    服务端生成私钥,再通过私钥生成公钥,然后将公钥放在证书中颁发给客户端
    使用公钥和私钥以非对称方式加密生成密钥
    客户端接下来的传输数据中,都会用密钥以对称方式对信息加密,再传输给服务端

    在这里插入图片描述

    对于,上述提到的公钥和私钥,我们规定用公钥加密的内容必须用私钥才能解开,同样,私钥加密的内容只有公钥能解开

    所以HTTPS传输数据是用被密钥加密的密文和用公钥加密的私钥来保证数据安全的

    HTTPS加密,只用对称加密可以吗?
    不行!无法保证安全性,因为只用对称加密即只用密钥对数据加密传输的话,如果传输途中,信息被第三方劫持,获取到密钥,那接下来的传输,第三方都可以通过密钥对数据解密从而得到原始数据。

    HTTPS加密,只用非对称加密可以吗?两次呢?
    同样不行,如果只用非对称加密。客户端每次传输数据用公钥加密,服务端再用私钥解密这一方向看似安全,但当服务端发送数据用私钥加密,客户端收到用公钥解密时,第三方劫持到信息,但可能在此之前就获得公钥,因为首次服务端向客户端发送公钥是明文传输的。
    而换个角度如果使用两次非对称加密,即两组公钥,两组私钥,客户端服务端各持一组,理论上可以达到安全,但实际HTTPS并未采用,因为非对称加密耗时十分大

    证书:

    单有混合加密技术,看似已经保证了传输的安全性,实则还是有漏洞,问题就在于服务器根本无法识别发送过来的公钥是否是自己的,如此以来在第三方劫持到数据后,自行再定义一个公钥B,并将公钥B传回给客服端,此时客户端就会利用该公钥B重新加密数据然后发送,此时第三方就可以通过自己的公钥B解密得到原始数据了。

    证书就解决了这一问题,指定颁发的为CA机构,当网站使用HTTPS时,会向CA机构申请一个数字证书,证书中可以存放公钥、数据等信息,由此以来,服务端就可以通过证书来向客户端证明正确的公钥是哪一个,以此保证安全。
    而对于证书,还有一些自己的放篡改机制,防止第三方获取到使用
    在这里插入图片描述

    传输层协议

    传输层的主要功能是为了实现“端口到端口”的通信,以确保一条数据发送到主机上后,能够正确的传递到对应的端口上

    UDP协议

    UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法,但是UDP也有自己的缺陷,一旦进行通信,就不知道对方是否接收到数据了,很有可能会造成传输数据的丢包问题

    在这里插入图片描述
    特点:

    • 无连接:只需要知道目的ip和端口号就可以发送数据,无需建立连接
    • 不可靠:没有一系列机制来应对传输数据时的丢包问题
    • 面向数据报发送:应用层交给UDP什么样的报文,UDP就会发送什么样的,不会进行拆分,合并
    • UDP一次传输的数据大小有限,最大64k

    UDP的传输流程
    在这里插入图片描述
    UDP的适用范围:

    由于UDP不属于连接型协议,所以具有资源消耗小。处理速度优的特点,因此经常使用与视频、音频通话传输中,因为发送的数据较多,偶尔丢包一两个不会产生太大影响

    TCP

    因为上述讲到UDP的传输是不可靠的,经常会导致连接错误、数据丢包问题,针对这些问题规定了另一个传输层协议——TCP协议,TCP是一种面向连接、可靠的、基于字节流的传输层协议

    在这里插入图片描述

    TCP的特点:

    • 面向连接:在传输数据是,要先建立起客户端与服务端的连接,才能进行数据传输
    • 可靠的通信:TCP输出数据中,会基于内部的各种机制保证数据传输到目的端口
    • 基于字节流:TCP传输数据是基于字节传输的,易于对数据的拆分与合并发送
    • TCP的头部比UDP的开销要打,因为要存放更多的信息

    关于TCP内部各种机制,在这里不做过多的介绍,需要博友可以参考之前的一篇博客网络原理基础

    TCP与UDP的区别:

    • UDP是无连接的,TCP是有连接的
    • UDP是不可靠的,TCP是可靠的
    • UDP面向数据报,TCP面向字节流
    • UDP比TCP的传输消耗小,速度更快

    这里分享一张神图,以便于更加形象的理解TCP和UDP的区别
    在这里插入图片描述

    网络层

    网络层是基于数据链路层和传输层之间的第三层协议,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务

    网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。

    IP协议

    IP协议是TCP/IP网络模型中的核心部分,他提供了一种分层的、无关硬件的寻址方式,可以在复杂的路由式网络中传递数据所需的服务

    IP协议可以将多个交换网络连接起来,在源地址和目的地址之间传输数据包,同时它还能提供数据的组装功能,以适应不同网络对数据包大小的要求

    预研知识:

    IP地址:
    IP地址是互联网协议特有的一种地址,它是IP协议提供的一种统一的地址格式,IP地址为互联网的每个网络和每台主机分配了一个逻辑地址,以此来屏蔽物理地址的差异

    IP地址的格式:
    IP地址为32位地址,被分为4个部分,如XXX.XXX.XXX.XXX,IP地址又被划分为两个部分
    网络号:前三部分用于标识网段,保证相互连接的两个网段有不同标识
    主机号:由最后一部分组成,用于标识主机,保证处于同一网段的两台主机有不同的主机号
    通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同4

    MAC地址:
    被称为物理地址,是用来标识网络中每个设备的,MAC地址是设备出厂之后就写死的

    引入IP地址的目的:
    在单个局域网网段中,计算机与计算机之间可以使用数据链路层提供的MAC地址进行通信
    如果在路由式网络中,计算机之间就不能用MAC地址实现通信,主要是因为在路由式网络中,数据只是经过一次简单的利用两个计算机之间的MAC地址建立通信,而是需要进行多次的通信,每次跳转都会体目的主机更近一步,经历都次跳转,最终找到目的主机实现通信,而这个过程中,要知道每次向哪跳转才能更接近目的主机,必须使用一种逻辑化、层次化的寻址方案对网络进行组织,这就是 IP 地址

    IP协议数据报格式这里是引用

    IP协议的工作方式:

    由于网络分为同网段和不同网段,所以会分成两种方式

    • 同网段:如果源地址主机和目的地址主机处于同一网段,则目的IP地址被 ARP协议 解析为MAC地址后,源主机会根据目的MAC地址直接将数据包发送给目的主机
    • 不同网段:
      如果源地址主机和目的地址主机不处于同一网段,则数据包会经历多个过程最终发送给目的主机
      1、网关(一般为路由器)的 IP地址 被 ARP协议 解析为 MAC地址,根据该 MAC地址 源主机会将数据包发送到网关
      2、网关根据数据包中的网段ID找到目标网络,如果找到,将数据包发送给目标网路,如果没有则重复第一步发送到更高一级网关
      3、数据包经过网关发送到正确的网段后,目标IP被 ARP协议 解析为MAC地址,在根据该 MAC地址 将数据包发送给目标地址的主机

    ICMP协议

    ICMP协议又叫控制报文协议,ICMP协议用于在IP 和 路由器之间传递控制消息,描述网络是否通畅、主机是否可达、路由器是否可用等网络状态,ICMP本身并不传输数据,但对于用户间数据的传递起着重要的作用

    作用:
    在数据包从源主机传输到目的主机的过程中,会经历一个或多个路由器,而数据包在经过这些路由器传输过程中,可能会遇到很多问题,最终导致数据包没有成功传递给目的主机。为了了解数据包在传输过程中在哪个环节出了问题,就需要用到ICMP协议,它可以跟踪数据包,并把消息返回给源主机。

    在这里插入图片描述

    数据链路层

    数据链路层是TCP/IP网络模型的第二层,基于物理层和网络层之间,数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层

    ARP协议

    ARP协议是数据进行网络传输过程中,通过IP地址向MAC地址的转换,解决网络层和物理层衔接问题

    引入ARP协议的目的:
    由于 IP 地址和 MAC 地址定位方式不同,ARP 协议成为数据传输的必备协议。主机发送信息前,必须通过 ARP 协议获取目标 IP 地址对应的 MAC 地址,才能正确地发送数据包。
    在这里插入图片描述
    ARP的工作流程:
    在这里插入图片描述
    在这里插入图片描述
    如图展示的是同一网段下的两台主机,ARP的工作流程

    • 主机A以广播的形式向该网段内的所有主机发送ARP请求,请求中包含了目的主机的IP地址
    • 主机B接收到请求,通过请求中的目的IP地址发现自己是主机A要找的,返回响应,响应包括主机B的 MAC地址

    ARP缓存:
    在请求目标主机的 MAC 地址时,每次获取目标主机 MAC 地址都需要发送一次 ARP 请求,然后根据响应获取到 MAC 地址。

    为了避免重复发送 ARP 请求,每台主机都有一个 ARP 高速缓存。当主机得到 ARP 响应后,将目标主机的 IP 地址和物理地址存入本机 ARP 缓存中,并保留一定时间。

    只要在这个时间范围内,下次请求 MAC 地址时,直接查询 ARP 缓存,而无须再发送 ARP 请求,从而节约了网络资源。

    物理层

    物理层,顾名思义就是用物理手段将两个要通信的电脑连接起来,主要用来传输0、1光电信号,因为这一层过于偏硬件,所以本文不做过多的赘述

    整体的网络传输流程

    经过以上对网络传输层中每一层理解下面我们来看看,当访问一个网页时,到底发生了什么?

    主机A:发送http://www.baidu.com网络数据报

    1. DNS解析:将域名转换成对应IP地址(本机DNS缓存栈开始找—>逐级向上查找,如果根域服务器找不到,表示公网上没有该域名主机)
    2. 找到IP后:通过目的IP找到对应的目的MAC地址
    3. 根据目的IP计算目的主机是否和主机A处于同一网段
    4. 如在同网段:接通过ARP协议解析出对应的目的MAC,跳转到底9步
    5. 如不在同一网段:发送数据报到网关,现在ARP缓存表查找,通过网关IP查找MAC地址,找不到发送查询MAC广播数据报,最终返回网关自己的MAC
    6. 交换机转发:在MAC地址转换表中找到对应MAC交换机接口
    7. 路由器接收:分用数据报
      在这里插入图片描述
    8. 途中的设备:与第7步同样操作如目的IP对应的MAC地址不是当前设备则继续重复该操作继续往更接近目的IP的路由发送
      在这里插入图片描述
    9. 找到目的主机B,主机B的服务器开始接受分用请求,解析,最终组织响应
      在这里插入图片描述
    10. 同上述操作一样,由主机B向主机A发送数据
    11. 最终主机A接受到数据报,经过分用,解析,最终得到响应
    展开全文
  • 如何使数据通过网络核心(路由器)从源主机到目的主机:数据交换 电路交换 电路交换的阶段: 建立连接(呼叫/电路建立)=>通信=>释放连接(拆除电路) 特点: 独占资源 优点: 通信时延小 有序传输 没有冲突 ...
  • RIP路由信息协议(Routinginformation protocol)是根据距离-向量原理设计的内部网络协议。RIP通过距离向量算法来完成路由表的更新。每个路由表项目都有三个关键数据:目的网络N , 距离d,下一跳路由器X>。其要点...
  • 网络协议名词解释

    2021-07-05 02:08:00
    网络协议名词解释协议(Protocol)是关于信息格式及信息交换规则的正式描述,包括底层协议(如机器接口、字节在介质中的传输方式等)和高层协议(文件传送方式等)。在信息技术中,协议就是一些特殊的规则集合,它被通信的...
  • 协议标签交换MPLS详解。
  • 一文学懂路由交换
  • 计算机网络-链路层-停止等待协议(stop-and-wait) 计算机网络-链路层-后退N帧协议(GBN) 计算机网络-链路层-选择重传协议(SR) 介质访问控制MAC协议 计算机网络-介质访问控制MAC协议 FDM、TDM、WDM、CDM ALOH
  • 网络协议作用

    2020-12-24 20:04:13
    为了进行网络中的数据交换而建立的规则、标准或约定称为网络协议。主要由语法、语义和同步(指事件实现中顺序的详细说明)。通信协议有层次特性,大多数 的网络组织都按层或级的方式来组织,在下一层的基础上建立上一...
  • 网络协议详细介绍

    2021-06-11 07:12:51
    通俗地说,网络协议就是网络之间沟通、交流的桥梁,只有相同网络协议的计算机才能进行信息的沟通与交流。这就好比人与人之间交流所使用的各种语言一样,只有使用相同语言才能正常、顺利地进行交流。从专业角度定义,...
  • 计算机网络词汇解释(一)——网络协议体系

    千次阅读 多人点赞 2021-03-08 16:49:31
    计算机网络词汇解释(一)——网络协议体系 本篇文章试图以:是什么?为什么?怎么样?三个层次来解释词汇,并尽量实现通信的哲学“你传达的复杂信息,到底有没有人愿意听、能够懂、记得住、还给点赞。”由于本人也...
  • 网络层的功能概述 数据报(父) 分组(子) 数据交换方式 1.电路交换 2.报文交换 3.分组交换 对比: 路由算法 路由表(转发表) 路由算法分类: OSPF链路状态路由算法 RIP距离向量路由算法 分层次的路由选择...
  • 网络协议是什么网络协议的定义:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。一个网络协议至少包括三要素:语法:用来规定信息格式;数据及控制信息的格式、编码及信号电平等。语义:用来说明通信双方...
  • 网络协议作用是什么

    2021-07-22 05:50:28
    网络协议网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它定义了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,...
  • 为了进行网络中的数据交换而建立的规则、标准或约定称为网络协议。主要由语法、语义和同步(指事件实现中顺序的详细说明)。通信协议有层次特性,大多数的网络组织都按层或级的方式来组织,在下一层的基础上建立上一层...
  • 对称密钥交换协议 Diffie-Hellman算法是一个公开的密钥算法,它的安全性基于在有限域上求解离散对数的困难性(可以深入了解了解,总之就是很难就是了,王小云教授说一个密码算法都是建立在某个数
  • 网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行...
  • 网络协议极简总结

    万次阅读 多人点赞 2021-02-03 09:15:49
    一、网络分层 1.1OSI七层模型 由国际标准化组织提出的一种概念模型。该模型将通信系统中的数据流划分为七个层,每个中间层为其上一层提供功能,其自身功能则由其下一层提供。OSI将计算机网络体系结构划分为以下七...
  • 网络协议三要素有什么关系

    千次阅读 2021-06-19 07:31:59
    为进行计算机网络中的数据交换而建立的规则、标准或约定的集合,协议总是指某一层的协议。准确地说,它是对同等层实体之间的通信制定的有关通信规则或约定的结合。佰佰安全网看看吧。一个网络协议至少包括三要素:...
  • 网络协议分层的缺点

    2021-06-17 01:48:28
    由于网络节点之间联系的复杂性,在制定协议时,通常把复杂成分分解成一些简单成分,然后再将它们复合起来。最常用的复合技术就是层次方式,网络协议分层的缺点是什么呢?佰佰安全网看看吧。网络协议的分层原则?1.必须...
  • 参考链接 ... 路由选择协议 自治系统AS ...一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通 内部网关协议 RIP协议 概念 RIP是一种分布式的基于距离
  • 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。 网络传输层单位是数据报。 功能一:路由选择与分组转发 (最佳路径) 功能二:异构网络互联 [外链图片转存失败,源站可能有防盗链...
  • 计算机网络协议的三要素是:语法、语义和同步,网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络是一个信息交换的场所,所有接入网络的计算机都可以通过彼此之间的物理连设备进行信息交换,...
  • 区块链P2P网络协议演进过程

    千次阅读 2021-09-15 17:03:18
    共识机制是网络大部分节点在约定时间段内对交易状态达成相同的确认,其中共识性通过工作量证明(POW)、权益证明(POS)、实用拜占庭容错(PBFT)等多种共识算法实现。而一致性则要求大部分节点在约定时间段内保持...
  • 网络协议及IP编址(一)

    千次阅读 2021-10-28 09:42:38
    网络层经常被称为IP层,但网络协议并不只是IP协议,还包括ICMP协议、IPX协议等 IP协议 IP是Internet Protocol的缩写。Internet Protocol本身是一个协议文件的名称,该协议文件的内容非常少,主要是定义并阐述IP...
  • 网络协议(Protocol)是为进行计算机网络中的数据交换而建立的规则、标准或约定的集合。准确地说,它是对同等实体之间通信而制定的有关规则和约定的集合,网络协议的组成要素是什么?计算机网络安全有哪些基本注意事项?...
  • 拓展资料:计算机网络体系结构可以从网络体系结构、网络组织、网络配置三个方面来描述,网络组织是从网络的物理结构和网络的实现两方面来描述计算机网络网络配置是从网络应用方面来描述计算机网络的布局,硬件、...
  • 电子邮件对网络安全的需求: 1.机密性; 2.完整性; 3.身份认证性; 4.抗抵赖性; 安全电子邮件标准: PGP标准(Pretty Good Privacy)。 PGP提供的服务: 1.邮件加密:报文完整性,数字签名; 2.加密算法:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 274,242
精华内容 109,696
关键字:

网络交换协议