TCP 建立连接为啥需要经过三次握手

简介: TCP 建立连接为啥需要经过三次握手

1、明白TCP的定义:

保证可靠性和流控制机制的数据, 包括 socket ,序列号 以及窗口大小

TCP 建立 需要三次握手 有效的避免了历史错误连接的建立,减少通信双方的不必要的资源消耗, 三次握手能够帮助通信双方获取初始化序列号,他们能够保证传输数据包的不重不丢,还能保证他们的传输顺序, 不会因为网络传输问题发生混乱,这里为啥不使用【两次握手】和【四次握手】的原因已经非常清楚了;

【两次握手】:无法 避免历史错误连接的初始化,浪费接受方的资源;

【四次握手】:TCP协议的设计可以让我们同时传递ACK 和 SYN 两个控制信息,减少通信次数,所以不需要使用更多的通信次数传输相同的信息;


合并成下面


TCP 和UDP的区别

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

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

3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的

UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

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

5、TCP首部开销20字节;UDP的首部开销小,只有8个字节

6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

目录
相关文章
|
存储 关系型数据库 MySQL
MVCC多版本并发控制
MVCC多版本并发控制 1、MVCC MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。
632 0
|
11月前
|
NoSQL 安全 测试技术
Redis游戏积分排行榜项目中通义灵码的应用实战
Redis游戏积分排行榜项目中通义灵码的应用实战
244 4
|
缓存 Java 数据安全/隐私保护
SpringSecurity实现动态管理权限(三)
SpringSecurity实现动态管理权限(三)
345 0
|
12月前
|
存储 开发者
HashMap和Hashtable的key和value可以为null吗,ConcurrentHashMap呢
HashMap的key可以为null,value也可以为null;Hashtable的key不允许为null,value也不能为null;ConcurrentHashMap的key不允许为null
|
8月前
|
安全 网络安全 数据安全/隐私保护
15000个Fortinet防火墙的配置文件被泄露,你的防火墙也在其中吗?
15000个Fortinet防火墙的配置文件被泄露,你的防火墙也在其中吗?
|
12月前
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
273 0
|
存储 缓存 负载均衡
CC攻击解析与防御策略
CC攻击是DDoS的一种,利用代理服务器向目标发送大量合法请求,消耗服务器资源。识别特征包括命令行大量"SYN_RECEIVED"连接、IP批量异常连接和日志中异常访问模式。防御策略包括提升服务器性能、数据缓存优化、页面静态化、请求速率限制、IP访问限制及使用CDN。专业高防产品提供智能识别和响应,帮助企业构建全面防御体系。
769 2
|
设计模式 缓存 Java
万字+20张图剖析Spring启动时核心的12个步骤
大家好,我是三友~~ 今天来扒一扒Spring在启动过程中核心的12个步骤 之所以来写这篇文章,主要是来填坑的 之前在[三万字盘点Spring 9大核心基础功能](https://mp.weixin.qq.com/s/QSchk0uHNbdvlAHxJbCMuA)这篇文章的末尾中给自己挖了一个坑,提了一嘴有机会要写这么一篇文章 但是由于Spring启动过程并不复杂,所以后面就没写了 不过,好巧不巧,刚刚好有兄弟来催更了,那么此时这个机会就来了,这篇文章也就有了
|
存储 SQL 关系型数据库
MySQL MVCC多版本并发控制(脏读和不可重复读解决原理)
MySQL MVCC多版本并发控制(脏读和不可重复读解决原理)
675 0
MySQL MVCC多版本并发控制(脏读和不可重复读解决原理)
|
网络协议 程序员
为什么TCP需要三次握手?一文讲透!
**TCP三次握手摘要** TCP三次握手是建立可靠TCP连接的过程,包括: 1. 客户端发送SYN包,进入SYN_SENT状态。 2. 服务端回应SYN和ACK包,进入SYN_RCVD状态。 3. 客户端再次发送ACK包,双方进入ESTABLISHED状态,连接建立。 三次握手确保双方都能发送和接收数据,防止失效请求导致的资源浪费,并同步序列号以确保可靠性。
155 0