网络通信

本文深入探讨了TCP/IP协议中的三次握手与四次挥手过程,详细解释了为何需要三次握手确保连接的可靠性。此外,还介绍了HTTPS协议的工作原理,包括SSL/TLS的握手过程,以及客户端和服务器之间的身份验证和密钥交换。通过对这些基础知识的了解,读者能够更好地理解网络通信的安全性和可靠性。
摘要由CSDN通过智能技术生成

介绍

两台及两台以上的计算机相互之间进行数据的收发。

TCP/IP

目前我们经常用到的通信协议就是TCP/IP了, 下面展示了收发两端的层级作用
在这里插入图片描述

TCP首部

在这里插入图片描述

IP首部

在这里插入图片描述

HTTP请求结构

在这里插入图片描述

TCP三次握手

在这里插入图片描述

  • 第一次握手 建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认;

  • 第二次握手 服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x + 1(Sequence Number + 1);同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence
    Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;

  • 第三次握手 客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y + 1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。

为什么要三次握手?
确保连接通常且连接请求的有效性。

四次挥手

在这里插入图片描述

  • 第一次分手 主机1(可以使客户端,也可以是服务器端),设置Sequence Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了;

  • 第二次分手 主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,Acknowledgment Number为 Sequence Number加1;主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求;

  • 第三次分手 主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态;

  • 第四次分手 主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待2MSL(MSL:Maximum
    Segment
    Lifetime,报文段最大生存时间,详情请见下文介绍)后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。

HTTPS

HTTPS 相比 HTTP最大的不同就是多了一层 SSL (Secure Sockets Layer 安全套接层)或 TLS (Transport Layer Security 安全传输层协议)
在这里插入图片描述

  1. "client hello"消息:客户端通过发送"client hello"消息向服务器发起握手请求,该消息包含了客户端所 持的 TLS版本和密码组合以供服务器进行选择,还有一个"client random"随机字符串。

  2. "server hello"消息:服务器发送"server hello"消息对客户端进行回应,该消息包含了数字证书,服务器选择的密码组合和"server random"随机字符串。
    验证:客户端对服务器发来的证书进行验证,确保对方的合法身份,验证过程可以细化为以下几个步骤:

    • 检查数字签名
    • 验证证书链 (这个概念下面会进行说明)
    • 检查证书的有效期
    • 检查证书的撤回状态 (撤回代表证书已失效)
  3. “premaster secret"字符串:客户端向服务器发送另一个随机字符串"premaster secret (预主密钥)”,这个字符串是经过服务器的公钥加密过的,只有对应的私钥才能解密。

  4. 使用私钥:服务器使用私钥解密"premaster secret"。

  5. 生成共享密钥:客户端和服务器均使用 client random,server random 和 premaster secret,并通过相同的算法生成相同的共享密钥 KEY。

  6. 客户端就绪:客户端发送经过共享密钥 KEY加密过的"finished"信号。

  7. 服务器就绪:服务器发送经过共享密钥 KEY加密过的"finished"信号。

  8. 达成安全通信:握手完成,双方使用对称加密进行安全通信。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值