IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP与UDP -> 正文阅读

[网络协议]TCP与UDP

TCP三次握手与四次挥手分别是建立连接断开连接需要执行的过程。

TCP:传输控制协议

TCP是TCP/IP体系中较为复杂的协议,是传输层中最重要的协议

一、TCP主要特点

  1. TCP是面向连接的传输层协议
  2. TCP提供可靠的交付服务
  3. TCP提供全双工通信
  4. TCP是面向字节流

二、TCP为什么可靠

因为推出了窗口这个概念(UDP命令的)

窗口分为固定窗口和滑动窗口

固定窗口

窗口的容量为1,如果窗口过小,当传输比较大的数据时需要不停的进行确认,这个时候就会造成很大的延迟

滑动窗口

就是一种流量控制技术。
它本质上是描述接收方的TCP数据报缓冲区大小的数据,发送方根据这个数据来计算自己最多能发送多长的数据。若发送方收到接收方为0的TCP数据报,那发送方将停止发送数据,等到接收方发送窗口大小不为0的数据报的到来。

拥塞处理和流量控制

三、TCP三次握手

TCP在数据传输时要先建立连接,建立连接时要先通过三次握手

  1. 客户端向服务器端建立连接先发送一次数据
  2. 服务器响应端数据第二次握手
  3. 客户端又会响应数据端服务进行第三次握手

形象来说:

1、A找B,握手,我要和你进行连接
2、B说:好,我准备好了,你来和我进行连接吧
3、A说:好,我现在就来跟你进行连接
完成之后就可以传输数据了

3.1 为什么TCP建立要进行三次握手,目的是什么?

为了保证客户端与服务器端双方的数据收发能力都没什么问题。

1、客户端发送数据,若服务器能收到,S端就保证客户端的发送能力没问题
2、第二次握手,服务器端响应给客户端一段数据,若客户端能够接到,意味着服务端的接受能力以及发送能力都没问题
3、为了确认客户端的接受能力有无问题,若第三次握手服务器端接收到那就说明客户端的接受能力没有问题。

3.2 三次握手分别会发送什么数据

可以利用抓包软件来看

1、C —> S:SYN包,同步的意思,会发送一个序列号 Seq=0

2、S —> C:SYN,ACK=1(将序列号Seq=0 加1给到ACK,ACK是确认字符),自己序列号Seq=0

3、C —> S:Seq=1(因为第一次已经用过0,所以加1),ACK=1(第二次)

四、TCP四次挥手

就是将第2次握手的阶段数据分成2次发送

1、客户端发送一个FIN,关闭客户到服务器的信息传送
2、服务器收到一个FIN,返回一个ACK(确认字符)
3、服务端关闭客户端的连接,发送一个FIN给客户端
4、客户端收到FIN,返回ACK

形象来说:
哪个先把数据传输完,哪个先断开连接。先传输完的总是A

1、A:我要和你断开连接
2、B:我把数据传输完了,我跟你断开连接
3、B:我把数据传输完了
4、A:好,那我们来断开连接吧

为什么挥手要经过四次

主要是为了让我们S端在C端主动断开之后,还是允许给C端发送一些数据的。

因为客户端在主动断开连接时,首先会一个finish包,代表C不会再给S发数据了;S收到后,马上告诉C端,我已经知道你想跟我断开连接了,但是S端可能还有数据给你发送,随后S发完数据后给C发一个finish包,表示我今后不会再给你发送消息了。

五、UDP—用户数据报协议

UDP—用户数据报协议

UDP是在IP数据报服务之上增加了一些功能,增加了复用和分用的功能以及差错检测的功能

UDP主要特点

  1. 无连接的
  2. 尽最大的努力交付
  3. UDP面向报文且没有拥塞控制
  4. UDP开销较小,传输效率较高

六、TCP和UDP的区别

1、连接方面区别

TCP面向连接(如打电话要先拨号建立连接)
UDP是无连接的,即发送数据之前不需要建立连接

2、安全方面区别

TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。
UDP尽最大努力交付,即不保证可靠交付

3、传输效率的区别

TCP传输效率相对较低
UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信

4、连接对象数量的区别

TCP连接只能是点到点、一对一
UDP支持一对一,一对多,,多对一和多对多的交互通信。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:49:19  更:2021-07-10 14:49:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 17:54:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码