计算机网络

网络层数

在这里插入图片描述

TCP 和 UDP

  • 连接:TCP面向连接,通过三次握手建立连接,四次挥手断开连接;UDP是无连接的。
  • 可靠性:
    • TCP是可靠的通信方式,通过序号字段、累计确认、超时重传(还有冗余ACK重传机制)等方式来确保数据无差错,不丢失,不重复,且按序到达;
    • 而UDP由于无需连接的原因,将会以最大速度进行传输,但不保证可靠交付。
  • 报文与字节:TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。
  • 每一条TCP连接只能是点到点的;而UDP不建立连接,所以可以支持一对一,一对多,多对一和多对多的交互通信。

TCP三次握手

请添加图片描述

  • 第一次:客户机向服务器发送一个连接请求报文段。

    • 首部
      • 同步位 SYN : 1
      • 序号 seq:客户机随机选择起始序号 x
    • 连接请求报文段不携带数据,但消耗一个序号。
  • 第二次:服务器收到连接请求报文段后,同意建立连接,向客户机发确认报文段。

    • 首部
      • 同步位 SYN :1
      • 确认位 ACK :1
      • 确认号 ack : x + 1
      • 序号 seq:服务器随机产生起始序号 y
    • 确认报文不携带数据,但也要消耗一个序号。
  • 第三次:客户机收到确认报文段后,向服务器给出确认。

    • 首部:
      • 确认位 ACK :1
      • 确认号 ack : y + 1
      • 序号 seq:x + 1
    • 该报文段可以携带数据,若不携带数据则不消耗序号。

TCP四次挥手

请添加图片描述

  • 第一次:客户机向服务器发送连接释放报文段。

    • 首部:
      • 结束位 FIN :1
      • 序号 seq:u. 前面已传送数据的最后一个字节序号加一。
  • 第二次:服务器确认。

    • 首部:
      • 确认位 ACK :1
      • 确认号 ack : u + 1
      • 序号 seq:v. 前面已传送数据的最后一个字节序号加一。
  • 第三次:服务器没有数据发送,向客户机发送连接释放报文段。

    • 首部:
      • 结束位 FIN :1
      • 确认位 ACK :1
      • 确认号 ack : u + 1
      • 序号 seq:w
  • 第四次:客户机收到连接释放报文段,向服务器确认。

    • 首部:
      • 确认位 ACK :1
      • 确认号 ack : w + 1
      • 序号 seq:u + 1
    • 此时,等待2MSL时间后,TCP连接关闭。

TIME-WAIT:2MSL(2倍报文最大生存时间)

为什么需要 TIME_WAIT 状态?

  • TIME-WAIT 作用是等待足够的时间以确保最后的 ACK 能让被动关闭方接收,从而帮助其正常关闭。
    • 如果客户端(主动关闭方)最后一次 ACK 报文(第四次挥手)在网络中丢失了,那么按照 TCP 可靠性原则,服务端(被动关闭方)会重发 FIN 报文。

为什么 TIME_WAIT 等待的时间是 2MSL?

  • 网络中可能存在来自发送方的数据包,当这些发送方的数据包被接收方处理后又会向对方发送响应,所以一来一回需要等待 2 倍的时间。

HTTP 与 HTTPS 有哪些区别?

  • 安全性:HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。

  • 连接建立:HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。

  • 端口:两者的默认端口不一样,HTTP 默认端口号是 80,HTTPS 默认端口号是 443。

  • 证书:HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。

HTTP连接建立过程

HTTP连接的建立是通过TCP三次握手完成:

  • 客户端发起连接请求
  • 服务器响应请求
  • 客户端确认响应

在三次握手完成之后,HTTP连接就建立起来了。

HTTPS连接建立过程

  • TCP 三次握手, SSL/TLS 的握手,才可进入加密报文传输,建立HTTPS连接。

  • SSL/TLS 协议基本流程:

    • 客户端向服务器索要并验证服务器的公钥。
    • 双方协商生产「会话秘钥」。
    • 双方采用「会话秘钥」进行加密通信。

应用层协议

协议底层端口号
HTTPTCPHTTP 的端⼝号是 80,HTTPS 的端⼝号是 443。
FTPTCP控制连接(端口号21),一个是数据连接(端口号20)
DNSUDP53
TelnetTCP23
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值