第五篇 计算机网络基础 - 传输层协议【 TCP 协议 + UDP 协议 】

发布时间 2023-03-28 15:58:29作者: caix-1987

传输层协议概述

1、传输层协议的作用

  1、提供了一种端到端 【 end to end 】 的连接,一般为前端和后台服务器的连接
  
  2、由于网络层只管传递数据,并不关心成功与否,TCP协议 在数据丢失、损坏的情况下保证数据的可靠性
  
2、传输层协议的分类

  1、传输控制协议 TCP 【 Transimision Control Protocal 】
  
    1、可靠的、面向连接的协议
    
    2、传输效率低
    
  2、用户数据报协议 UDP 【 User Datagram Protocal 】
  
    1、不可靠的、无连接的服务
    
    2、传输效率高

传输控制协议 TCP

TCP 的功能
为了保证TCP是可靠的、面向连接的协议,具备以下功能

  1、将数据进行 分段打包 传输,如果不将数据分段打包传输,那么会导致每次传输的数据特别大,而带宽是一定的,所以很容易造成拥塞
  
  2、对每个数据包 编号 控制顺序,因为数据进行了分段打包传输,而网络中的路线不止一条,而且某些路线会有延迟的情况,如果没有编号,那么无法保证到达的数据是原来的模样
  
  3、运输中丢失、重发和丢弃处理,由于网络中的路线会有延迟,并且存在丢包现象,所以会有重发等机制来保证数据的完整性
  
  4、流量控制避免拥塞,避免发送速率过快,让接收方来不及接收,导致发生丢包。
tcp 的 三次握手 和 四次挥手
1、三次握手 【 请求发送连接 】

  1、第一次握手 主机A 通过一个标识为 SYN 标识 位的数据段发送给 主机B 请求连接,通过该数据段告诉 主机B 希望建立连接,需要 主机B 应答,并告诉 主机B 传输的起始序列号

  2、第二次握手是 主机B 用一个确认应答 ACK 和 同步序列号 SYNC 标志位 的数据段来响应 主机A,一是发送 ACK告诉 主机A 收到了数据段,二是通知 主机A 从哪个 序列号 做标记
  
  3、第三次握手是 主机A 确认收到了 主机B 的数据段并可以开始传输实际数据

第一次握手主要是 服务端 确认 客户端 是否能够发送信号

第二次握手主要是 客户端 确认 服务端 能够接收和发送信号

第三次握手主要是 服务端 确认 客户端 能够接收信号
2、四次挥手 【 请求关闭连接 】

  1、主机A 发送 FIN 控制位 发出断开连接的请求
  
  2、主机B 进行响应,确认收到断开连接请求
  
  3、主机B 提出反方向的关闭要求
  
  4、主机A 确认收到的 主机B 的关闭连接请求


第一次挥手是 服务端 确认 客户端 需要断开连接

第二次挥手是 客户端 确认 服务器 接收断开请

第三次挥手是 客户端 确认 服务器 数据发完,断开连接

第四次挥手是 服务端 确认 客户端 断开连接

所以如果服务端的数据全部发送完,是没有第三次挥手,直接进入第四次挥手

UDP 协议

由于 UDP 是不可靠的、无连接的服务并且传输效率高,所以 UDP应用 的特点就是需要实时数据,可以允许丢包

所以 QQ、视频软件、TFTP 简单文件传输协议 【 短信 】等都是 UDP应用

由于在 IP地址 中存在一些广播地址,UDP 主要是通过它们来实现的