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是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。
689 0
|
负载均衡 网络虚拟化 虚拟化
【HCIE】12.VXLAN(一)
【HCIE】12.VXLAN
267 0
|
设计模式 Kubernetes 应用服务中间件
Kubernetes list 和 watch 详解
Kubernetes list 和 watch 详解
794 1
|
11月前
|
NoSQL 安全 测试技术
Redis游戏积分排行榜项目中通义灵码的应用实战
Redis游戏积分排行榜项目中通义灵码的应用实战
252 4
|
存储 开发者
HashMap和Hashtable的key和value可以为null吗,ConcurrentHashMap呢
HashMap的key可以为null,value也可以为null;Hashtable的key不允许为null,value也不能为null;ConcurrentHashMap的key不允许为null
|
网络协议 程序员
为什么TCP需要三次握手?一文讲透!
**TCP三次握手摘要** TCP三次握手是建立可靠TCP连接的过程,包括: 1. 客户端发送SYN包,进入SYN_SENT状态。 2. 服务端回应SYN和ACK包,进入SYN_RCVD状态。 3. 客户端再次发送ACK包,双方进入ESTABLISHED状态,连接建立。 三次握手确保双方都能发送和接收数据,防止失效请求导致的资源浪费,并同步序列号以确保可靠性。
164 0
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
321 0
|
Java Spring 容器
深入理解Spring Boot启动流程及其实战应用
【5月更文挑战第9天】本文详细解析了Spring Boot启动流程的概念和关键步骤,并结合实战示例,展示了如何在实际开发中运用这些知识。
434 2
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
327 1
|
缓存 算法 安全
被追着问UUID和自增ID做主键哪个好,为什么?
讨论了UUID和自增ID作为数据库主键的优缺点。UUID全局唯一,适合分布式系统,但存储空间大,不适合范围查询。自增ID存储空间节省,查询效率高,但分库分表困难,可预测性高。UUID版本包括基于时间戳(V1)、随机数(V4)以及基于名称空间的MD5(V3)和SHA1(V5)散列。
1018 1
被追着问UUID和自增ID做主键哪个好,为什么?