TCP / IP 协议族

概念
一系列协议所组成一个网络分层模型

为什么要分层?
因为网络的不稳定性

如果我们传一个50M的数据,如果失败,每次都将需要重新传50M,但我们把它分成多块,失败时候只需重新传输失败的那一块。

具体分层:

Application Layer 应⽤层:HTTP、FTP、DNS
Transport Layer 传输层:TCP、UDP
Internet Layer 网络层:IP    
Link Layer 数据链路层:以太网、Wi-Fi

发送方应用程序的数据总是从最上层开始,层层向下,最终经由物理层发送出去;相应的,在接收方的物理层接收到数据后,层层向上,最终经由应用层分发到具体的应用程序进程中。
在数据层向下的过程中,每一层都会对数据进行一些封装处理(如打包或者编码);而在数据层向上的过程中,每一层都会对数据进行一些逆处理(如解包或者解码)。这些对数据的处理和逆处理的过程就是为了实现该层的服务。

TCP 连接

什么叫做连接
通信双方建立确认「可以通信」,不会将对方的消息丢弃,即为「建立连接」

TCP 连接的建立——三次握手

三步:

1. 客户端:「我要向你发送消息」
2. 服务器:「好的。我要向你发送消息」
3. 客户端:「好的。

TCP 连接的关闭——四次挥手

四步:

1. 客户端:「我不再给你发送消息」
2. 服务端:「好的」
3. 服务端:「我不再给你发送消息」
4. 客户端:「好的」

为什么 TCP 连接在断开时是四次挥手而不是三次?

因为在客户端停止向服务器发送消息时,也许服务器还有消息需要向客户端发送,因此在它对客户端的「我不再给你发送消息」消息进行回应时,不需要立即附加上「我也不再向你发送消息」。在稍后服务器的消息发送完毕之后,才需要向客户端发送通知。

长连接

为什么要长连接?
因为移动网络并不在 Internet 中,而是在运营商的内网,并不具有真正的公网 IP,因此当某个 TCP连接在一段时间不通信之后,网关会出于网络性能考虑而关闭这条 TCP 连接和公网的连接通道,导致这个 TCP 端口不再能收到外部通信消息,即 TCP 连接被动关闭。
长连接的实现方式
心跳。即在一定间隔时间内,使用 TCP 连接发送超短无意义消息来让网关不能将自己定义为「空闲连接」,从而防止网关将自己的连接关闭。

HTTPS

定义
HTTP over SSL 的简称,即工作在 SSL (或 TLS)上的 HTTP。说白了就是加密通信的 HTTP。

工作原理
在客户端和服务器之间通过非对称加密协商出一套对称密钥,以后每次发送信息之前将内容加密,收到之后解密,达到内容的加密传输

为什么不直接用非对称加密?
非对称加密由于使用了复杂了数学原理,因此计算相当复杂,如果完全使用非对称加密来加密通信内容,会严重影响网络通信的性能

HTTPS 连接建立的过程
1. Client Hello

客服端对服务端说要建立连接,并附加:支持的TLS版本、支持的对称加密算法、支持的非对称加密算法、支持的hash算法、一个随机数

2. Server Hello

服务端对客服端说好的,并对客服端发来的信息里选出一组TLS版本、对称加密算法、非对称加密算法、hash算法、以及一个随机数,发还客户端

3. 服务器证书 信任建立

服务端对客服端发证书,证书里包含公钥

4. Pre-master Secret

客户端利用持有的客户端随机数和服务端随机数,通过唯一一次的非对称加密,生产出一个叫做 Pre-master Secret的随机数传给服务器,双方用这三个随机数计算出Master Secret,利用Master Secret计算出客户端加密秘钥,服务端加密秘钥,客户端MAC Secret,服务端端MAC Secret(MAC Secret是用来做hash以验证身份的)

5. 客户端通知:将使用加密通信

6. 客户端发送:Finished

将前面的所有内容打包,加密发给对方

7. 服务器通知:将使用加密通信

8. 服务器发送:Finished

将前面的所有内容打包,加密发给对方

TCP / IP 协议族和HTTS相关推荐

  1. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

  2. TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

    接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...

  3. 深入理解TCP/IP协议族

    TCP/IP协议族是一个四层协议系统,自底而上分别是数据链路层.网络层.传输层和应用层.每一层完成不同的功能, 且通过若干协议来实现,上层协议使用下层协议提供的服务. MAC地址,处于数据链路层. I ...

  4. Network 之五 TCP/IP 协议族、工作流程、常用协议格式

      最近工作需要搞网络相关的内容,由于之前对网络了解比较少,因此开始重点学习一下网络相关的各种知识.博文中的有些内容来自于在学习过程中对于一些互联网上我认为的重点知识的记录,如果侵权请联系删除!    ...

  5. 第一章 TCP/IP协议族

    一.协议族体系结构 TCP/IP协议族分为四层协议系统,自底向下分别为数据链路层.网络层.传输层.应用层. 数据链路层常用ARP(地址解析协议)和RARP(逆地址解析协议).在网络层使用IP寻址,而在 ...

  6. 网络传输之TCP/IP协议族

    我们现实网络无处不在,我们被庞大的虚拟网络包围,但我们却对它是怎样把我们的信息传递并实现通信的,我们并没有了解过,那么当我们在浏览器中出入一段地址,按下回车这背后都会发生什么? 比如说一般场景下,客户 ...

  7. TCP/IP协议族之运输层(TCP流量控制和拥塞控制 [1])

    TCP的流量控制 1. 利用滑动窗口实现流量控制 如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失.所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收. 利用滑动 ...

  8. TCP/IP协议族 详解(TCP/IP四层模型、OSI七层模型)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols) ...

  9. tcp ip协议_网络通信-TCP/IP协议族简述

    导读:计算机与网络设备要相互通信需要遵守同样的规则.例如,如何找到通信目标.该使用哪种语言通信.怎么结束通信等规则.不同的硬件.操作系统之间的通信都需要遵循同一种规则,这种规则也称为是协议.下面本文主 ...

最新文章

  1. GitHub聊天通信开源UI框架stfalcon-studio/ChatKit使用教程
  2. android碎片按钮,Android 碎片(Fragment)
  3. MySQL5.7.12新密码登录方式及密码策略
  4. 计算机专业推荐表自我介绍,就业推荐表-自我介绍
  5. Pytorch详解NLLLoss和CrossEntropyLoss、以及softmax和log_softmax
  6. vue 导入element-ui css报错解决方法
  7. freeredius3.0 mysql_EDIUS非线性编辑系统价格,4k视频编辑系统
  8. 呐,你要的新年攻略和文章汇总
  9. 蚂蚁集团2021反诈骗治理报告:“注销校园贷”类诈骗资损降85%
  10. 单播广播多播任播的分别
  11. java代码 创建文件夹的方法
  12. css禁止背景图拉伸_html-css控制背景图全屏拉伸不重复显示
  13. ruhr启动mysql数据库_mysql报错:ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists...
  14. python 路由追踪_tracert跟踪路由
  15. Scala中名词的解释
  16. 关于SQLite创建视图
  17. 09 matlab解方程
  18. PHP图片尺寸调整(全填充,没有黑底)
  19. python- re模块(正则表达式)
  20. IMAP协议定时监听接收邮件(QQ邮箱、网易邮箱都可)

热门文章

  1. python django 在线练习题系统
  2. protostuff java_Protostuff序列化和反序列化的使用说明
  3. Python+Vue计算机毕业设计美食网站美食美刻h75e2(源码+程序+LW+部署)
  4. 乘势出海 | 东南亚各国电商生态分析及选品参考
  5. 爱奇艺一面、二面面试问题
  6. 用postman快速学习ElasticSearch的搜索功能
  7. C语言读写文本文件的几种模式,读取文件的例子
  8. 重拾C语言第一课,C语言的运行环境及helloworld程序
  9. 阿迪达斯健身跟踪器:具备音乐播放列表和跑步路线推荐功能
  10. 无序列表、有序列表、自定义列表