4.6--计算机网络之TCP篇之TCP的基本认识--(复习+深入)---好好沉淀,加油呀

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1.TCP 头格式有哪些

在这里插入图片描述

序列号
在建立连接时由计算机生成的随机数作为其初始值通过 SYN 包传给接收端主机每发送一次数据就「累加」一次该「数据字节数」的大小。

用来解决网络包乱序问题。

确认应答号
指下一次「期望」收到的数据的序列号发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。

用来解决丢包的问题。

2.为什么需要 TCP 协议 TCP 工作在哪一层
IP 层是「不可靠」的它不保证网络包的交付需要保障网络数据包的可靠性那么就需要由上层传输层的 TCP 协议来负责。

TCP 是一个工作在传输层的可靠数据传输的服务它能确保接收端接收的网络包是无损坏、无间隔、非冗余和按序的。

3.什么是 TCP

TCP 是面向连接的、可靠的、基于字节流的传输层通信协议

面向连接一定是「一对一」才能连接
可靠的无论的网络链路中出现了怎样的链路变化TCP 都可以保证一个报文一定能够到达接收端

4.什么是 TCP 连接
用于保证可靠性和流量控制维护的某些状态信息这些信息的组合包括 Socket、序列号和窗口大小称为连接

建立一个 TCP 连接是需要客户端与服务端达成三个信息的共识

Socket由 IP 地址和端口号组成
序列号用来解决乱序问题等
窗口大小用来做流量控制

5.如何唯一确定一个 TCP 连接呢

TCP 四元组可以唯一的确定一个连接四元组包括如下

源地址
源端口
目的地址
目的端口

源地址和目的地址的字段32 位是在 IP 头部中作用是通过 IP 协议发送报文给对方主机

源端口和目的端口的字段16 位是在 TCP 头部中作用是告诉 TCP 协议应该把报文发给哪个进程

6.UDP 和 TCP 有什么区别呢分别的应用场景是

UDP利用 IP 提供面向「无连接」的通信服务头部只有 8 个字节64 位

在这里插入图片描述

1.目标和源端口主要是告诉 UDP 协议应该把报文发给哪个进程。
2.包长度该字段保存了 UDP 首部的长度跟数据的长度之和。
3.校验和校验和是为了提供可靠的 UDP 首部和数据而设计防止收到在网络传输中受损的 UDP 包

TCP 和 UDP 区别

  1. 连接

TCP 是面向连接的传输层协议传输数据前先要建立连接。
UDP 是不需要连接即刻传输数据

  1. 服务对象

TCP 是一对一的两点服务即一条连接只有两个端点。
UDP 支持一对一、一对多、多对多的交互通信

  1. 可靠性
  1. TCP 是可靠交付数据的数据可以无差错、不丢失、不重复、按序到达 2.UDP 不保证可靠交付数据。
    但是我们可以基于 UDP 传输协议实现一个可靠的传输协议比如 QUIC 协议
  1. 拥塞控制、流量控制

TCP 有拥塞控制和流量控制机制保证数据传输的安全性。
UDP 则没有即使网络非常拥堵了也不会影响 UDP 的发送速率

  1. 首部开销

1.TCP 首部长度较长最小为 20 个字节最长80字节。
2.UDP 首部只有 8 个字节并且是固定不变的开销较小

  1. 传输方式

TCP 是流式传输没有边界但保证顺序和可靠。
UDP 是一个包一个包的发送是有边界的但可能会丢包和乱序

  1. 分片不同

1.TCP 的数据大小如果大于 MSS 大小则会在传输层进行分片目标主机收到后也同样在传输层组装 TCP 数据包如果中途丢失了一个分片只需要传输丢失的这个分片。
2.UDP 的数据大小如果大于 MTU 大小则会在 IP 层进行分片目标主机收到后在 IP 层组装完数据接着再传给传输层

TCP 和 UDP 应用场景

TCP 是面向连接能保证数据的可靠性交付因此经常用于

FTP 文件传输
HTTP / HTTPS

UDP 面向无连接它可以随时发送数据 处理既简单又高效因此经常用于

包总量较少的通信如 DNS 、SNMP 等
视频、音频等多媒体通信
广播通信

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6