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



    OSI七层模型,TCP/IP五层模型以及四层模型

    如图所示:




    HTTP:

    超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

    HTTP协议中客户端与服务器交互的方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。


    HTTP+SSL=HTTPS协议:


    HTTP协议存在的三个安全性问题:

    • 通信内容可以被窃听
    • 通信内容可以被篡改
    • 通信对象可以被冒充
    所以在HTTP协议所在的应用层和TCP协议所在的传输层使用了SSL(安全套接层协议)。

    SSL协议由以下四个子协议组成:


    1、记录协议(Record Protocol)

    记录协议工作在SSL的底层,主要职责是接收上层协议或下层协议的消息并进行一系列的处理,然后再将处理后的消息继续向下或向上传递。对于从上层协议接收的消息,记录层的处理步骤是:将消息分段、压缩、添加消息认证码以及加密;对于从下层协议接收的消息,记录层的处理步骤是:解密、验证消息完整性、解压以及重新组装消息。其实,记录层的角色就像一个邮递员,只负责按照记录协议的规则进行搬砖工作。另外,记录层的上层协议除了应用层协议之外,还有SSL的其他子协议。

    2、握手协议(Handshake Protocol)

    SSL的握手协议又是干嘛的呢?跟TCP的握手协议有什么区别?

    SSL协议的主要功能是为应用层提供数据加密等安全服务,那在开始对应用层的数据进行传输之前,通信双方必须得知道该使用什么算法加密数据以及对应的加密密钥是什么吧?因此,在开始对应用层的数据进行传输之前,通信双方必须得有一个协商的过程,SSL的握手协议就是对这个过程该协商什么以及怎么协商的一个规定。

    SSL的握手协议是建立在TCP握手协议之上的。TCP握手协议的作用是建立一个可靠的网络连接,在TCP连接建立之后,SSL层就可以利用建立的TCP连接传输数据,此时进入SSL的握手协商阶段。SSL的握手协议主要目的是为通信双方确立安全连接所需要的安全参数,通常也会在此阶段对通信双方身份的真实性进行验证。

    3、警告协议(Alert Protocol)

    无论是在握手阶段还是在对应用层数据的传输阶段,都有可能出现差错。警告协议规定了在SSL协议工作过程中可能出现的差错、错误的严重等级以及相应的处理方式。

    4、密码规范改变协议(Change Cipher Protocol)

    在SSL握手刚开始的时候,由于加密参数还没确定,消息都是明文传送的;当双方在协商好加密参数之后,通信双方在发送握手结束消息之前,需要发送一个密码规范改变消息(Change Cipher Message)来通知对方随后的消息都使用刚刚协商好的加密算法和加密密钥进行加密。

    对于握手协议和警告协议,它们包含许多种消息类型,而对于密码规范改变协议,它只有包含一种消息,该消息只是一个简单的通知。也许你会觉得奇怪,为什么不将这个如此简单的通知消息作为握手消息的一个子类型,而需要单独为它设置一个消息类型呢?后面会对此作出解释。

    总结:

    1、SSL协议在传输控制层的基础上建立了安全的连接,它作为一种通用可靠的安全解决方案,可与多种应用层协议结合使用,实现应用数据的安全传输。我们常见的https即为http协议与SSL协议(或者TLS协议)的结合;

    2、SSL协议是一个分层协议,由记录协议(Record Protocol)、警告协议(Alert Protocol)、密码规范改变协议(Change Cipher Protocol)和握手协议(Handshake Protocol)组成,其中记录协议工作在最底层;

    3、SSL协议在进行应用数据传输之前,需要通过握手协议来协商安全通信所需的安全参数。















  • 相关阅读:
    win7连接l2tp报错789“L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误”
    Django内置Admin
    python-django(day19)
    常用模块-day06
    生成器、内置函数、模块与包的使用、正则表达式-day05
    Python 函数对象、 名称空间与作用域、闭包、装饰器、迭代器
    python字符编码、文件处理、函数
    2018-06-19——考试周肝完的我又回来了
    2018-06-11——pthyon类型整理
    2018-06-10——python基础整理
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467313.html
Copyright © 2011-2022 走看看