什么是tcp/ip协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?

TCP 连接管理机制(一)——TCP三次握手详解 + 为什么要有三次握手 TCP三次握手的状态变化以及 为什么要有三次握手 阅读详情

这里是修真院后端小课堂,每篇分享文从

【什么是tcp/ip协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次? 】

大家好,我是IT修真院深圳分院第13期的学员,一枚正直纯洁善良的java程序员
今天给大家分享一下,修真院官网Java任务2,深度思考中的知识点————什么是tcp/ip协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?

1.背景介绍
什么是tcp/ip协议?
TCP/IP是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。
TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。

2.知识剖析
IP 是无连接的通信协议,用于计算机之间的通信
(1)IP 协议的作用是把各种数据包传送给对方。
而要保证确实传送到对方那里,则需要满足各类条件。
其中两个重要的条件是 IP 地址和 MAC地址。
(2)IP 地址指明了节点被分配到的地址。
(3)MAC 地址是指网卡所属的固定地址。
IP 地址可以和 MAC 地址进行配对。

TCP 用于应用程序之间的通信,使用固定的连接
(1)TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。
(2)TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。
(3)TCP 位于传输层,提供可靠的字节流服务。

3.常见问题
什么是tcp/ip协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?

解决方案
TCP的三次握手指的是什么?
所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。
(1) 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
(3) 第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,
如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,
Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

附上一张图辅助理解

为什么一定要三次握手,而不是四次或者是两次?
“三次握手”的目的是为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误
举例:
client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。
假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。
采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。”。主要目的防止server端一直等待,浪费资源。

4.编码实战
5.扩展思考
6.参考文献
优快云、百度百科、师兄们提供的资料

7.更多讨论
(1) 什么是MAC ?
现代网络规定,每台计算机都必须有一块网卡(或虚拟网卡),通过它才能连接网络。每块网卡都必须有一个出厂设置世界唯一的MAC地址,也就是这块网卡的“身份证号”。
(2)TCP 是怎么提供可靠的字节流服务的?
所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP 协议为了更容易传送大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方。
(3)SYN,ACK,ack这些代表什么?

序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
确认序号:ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:
URG:紧急指针(urgent pointer)有效。
ACK:确认序号有效。
PSH:接收方应该尽快将这个报文交给应用层。
RST:重置连接。
SYN:发起一个新连接。
FIN:释放一个连接。

8.鸣谢:
感谢修真院的师兄和优快云博客上相关的作者,此教程是在他们之前技术分享的基础上完善而成。

9.结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

温馨提示:本人初学java者,如有不对敬请指出,谢谢!

​TCP/IP协议三次握手和四次挥手 TCP/IP简介:TCP/IP 是不同的通信协议的大集合。是指能够在多个不同网络间实现信息传输的协议族。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议族, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。TCP/IP协议参考ISO,OSI模型共有七层,但在TCP/IP协议中,它们被简化为了四个层次。如图:三次握手建立连接三次握手(Three-way Handshake)其实就是指建立一个TCP连接 阅读详情

相关推荐

TCP/UDP通信协议基础全集(区别,三次握手四次挥手)

在本篇博客你将了解到: 什么是TCP/IP和UDP协议 TCP协议中的三次握手和四次挥手过程 为什么连接的时候是三次握手,关闭的时候却是四次握手 为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态 TCP与UDP的区别 什么时候使用TCP 一、什么是TCP/IP和UDP协议1、什么是TCP/IP协议了解本概念之前我觉得可以了解一下什么是通信,两台计算机要通过

Tomasyb的博客 4530

TCP协议的三次握手和四次挥手(超详细讲解+详细命令行)

通过本章的探险,你将学会如何TCP协议的三次握手和四次挥手

幾微的学习博客 1万+

了解TCP协议,IP协议、ICMP协议和ARP协议(TCP报文,TCP的分成管理,TCP与UDP,TCP的三次握手四次挥手原理)

文章目录了解TCP/IP协议TCP报文格式TCP/IP 的分层管理TCP与UDPTCP的三次握手与四次挥手为什么要三次握手?为什么要四次挥手? 了解TCP/IP协议 TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。

weixin_47151717的博客 2061

TCP三次握手详解

TCP(Transmission Control Protocol)是一种可靠的、面向连接的协议,它使用三次握手(Three-Way Handshake)来建立通信连接。三次握手是确保双方都能够正常收发数据的重要过程。下面是TCP三次握手的详细解释:通过三次握手,客户端和服务器彼此确认了对方的能力和准备就绪状态,建立了双向的通信连接。每一次握手都需要对方的确认,确保连接的可靠性。

学亮编程手记 3699

【SAP报错】BK128&K5112

在ECC中使用CO1F进行Progressive confirmation时,依次遇到了如下的报错。

weixin_45228526的博客 781

Quartus的Signal Tap II的使用技巧

Signal Tap II全称Signal Tap II Logic Analyzer,是第二代系统级调试工具,它集成在Quartus II软件中,可以捕获和显示实时信号,是一款功能强大、极具实用性的FPGA片上调试工具软件。传统的FPGA板级调试是由外接的逻辑分析仪连接到FPGA的控制引脚,将内部引号引出至引脚I/O上,接着进行板级调试。

qq_37624854的博客 5897

网络协议(二)--TCP传输控制协议(二)什么是三次握手、什么是四次握手

在前面我们练习了几个基于TCP协议的网络程序 也对UDP协议有了简单认识:认识UDP协议 TCP协议是可靠的传输协议,当然也就要付出一定代价来实现可靠性,协议段格式也就更复杂,对数据的处理也就更复杂。 一、TCP协议段格式 相比于UDP协议,TCP协议首部长度是变长的(20个字节的基本信息+选项部分) 报文首部中各个部分的含义: 源端口号和目的端口号 表示数据来自哪个进程...

Misszhoudandan的博客 5674

信创改造实战:SpringBoot项目迁移到宝兰德BES 9.5.5的完整避坑指南(附依赖配置)

本文详细介绍了将SpringBoot项目迁移到宝兰德BES 9.5.5中间件的完整流程,包括环境准备、依赖调整、Web.xml版本适配、部署配置优化及常见问题解决方案。特别针对信创改造需求,提供了排除Tomcat依赖、处理BES专用starter等实用技巧,帮助开发者顺利完成国产中间件迁移。

weixin_30825581的博客 1095

TCP三次握手

TCP三次握手

Liu_Cheng_H的博客 442

CADENCE 25.1打开元件库ERRORCannot perform the operation because of an exception.

摘要:解决CADENCE25.1打开元件库报错"ERRORCannotperformtheoperationbecauseofanexception"的方法:该错误通常由软件中文设置导致。解决方案为:进入Options→Preferences→MorePreferences,取消勾选两个本地语言选项后重启软件即可恢复正常。此方法简单有效,能快速解决因语言设置导致的元件库访问异常问题。(98字)

0 1007

华为OD面试八股真题 - 操作系统相关 - 2

华为OD技术面,操作系统相关八股真题提供详细解答,这篇博客主要涉及于进程和线程相关知识点

qq_45776114的博客 965

什么是TCP/IP协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?...

这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【什么是TCP/IP协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次? 】 标题: 【修真院java 小课堂】什么是TCP/IP...

weixin_34185320的博客 204

脉冲变压器电感选型参数,结构原理,工艺与注意问题总结

脉冲变压器电感简称脉冲变压器,是一种特殊类型的变压器,主要用于处理脉冲信号。它的主要特性是能够在短时间内承受高电压和大电流。脉冲变压器主要用于开关电源、脉冲功率放大、雷达脉冲调制等领域。本文对脉冲变压器的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 1341

【修真院java小课堂】什么是TCP/IP协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?

大家好,我是IT修真院西安分院第三期学员,一枚正直纯洁善良的JAVA程序员。 今天给大家分享一下,修真院官网JAVA任务二,深度思考中的知识点——什么是TCP/IP协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次? 一、背景介绍 要想了解什么是TCP/IP协议,就要知道什么是网络协议。书本上的定义:网络协议是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。...

QiaoXM的博客 1122

【WRF数据准备】基于Python更新geo_em.d0.nc文件中Albedo/LAI等静态地理数据

基于Python更新geo_em.d0.nc文件中Albedo/LAI等静态地理数据

WW、forever的博客 589

题解:洛谷 P14357 [CSP-J 2025] 拼数

等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。小 R 想知道,在他所有能拼成的正整数中,最大的是多少。你需要帮助小 R 求出他能拼成的正整数的最大值。小 X 给了小 R 一个字符串。输出一行一个正整数,表示小 R 能拼成的正整数的最大值。中的任意多个数字,按任意顺序拼成一个正整数。,表示小 X 给小 R 的字符串。#普及-# #其他排序#洛谷:[P14357。

团爸讲算法 1394

简述TCP/IP协议三次握手和四次挥手

TCP/IP协议 互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。 TCP的6种标志符 SYN(synchronous),建立联机 ACK(acknowl...

Keen to coding 的博客 2万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

什么是TCP/IP协议?三次握手指的是什么?为什么不是两次或四次?

1.背景介绍     要想了解什么是TCP/IP协议,就要知道什么是网络协议。书本上的定义:网络协议是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。     中国人之间交流使用汉语,要遵循汉语的语法结构和发音;那如果我们跟英国人交流的话,就要使用英语的语法结构和发音;我们人与人之间交流所用的语言就是一种协议。对于计算机来说,两台机器之间的通信就要制定各种各样的协议,例如:文件传输使...

weixin_40636513的博客 2万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

tcp/ip协议三次握手、四次挥手

tcp/ip协议三次握手、四次挥手TCP报文格式两次握手三次握手四次挥手 TCP报文格式 32位序号:随机生成,唯一标识当前报文的序号是多少,seq表示 32位确认序号:对上一条发送的信息进行一个消息的确认,ack表示 ACK:确认标志位,一位,只能表示0/1。 SYN:1:发起一个新的连接 FIN:1:结束一个连接 两次握手 说明:客户端向服务端发送报文,服务端收到了,说明服务端接受客户端的消息没问题。但服务端发给客户端的消息,客户端一定能收到么?服务端还是不知道。 为了安全可靠: 1:客户端知道我

weixin_43303455的博客 6295

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

为什么TCP握手是三次而不是两次?

A知道B能发送和接收。但B只知道A能发送(第一次握手)。B无法确认A是否能够接收B的回复。如果A只是一个“信号发射塔”,B回复了半天A也收不到,这个连接就是不完整的。第三次握手就是Client给Server的最终承诺:“我能听到你,咱们开始吧!,从而保证了连接的可靠性。防止“历史遗留请求” (The Old Segment Problem)假设A发出一个连接请求后,因为网络拥堵,这个请求在网络中滞留了很久。A等待超时后,关闭连接。过了一会儿,A又发出了第二个请求,并成功建立了连接并结束了。

郑龙飞 1729

TCP/IP协议、三次握手、四次挥手详解

TCP/IP协议模型 TCP报文中较为重要的字段: 序号(Sequencenumber):用来标识从源端到目的端发送的字节流,发起方发送数据时对此进行标记,比如:一个报文段的序号为100,此报文段数据部分共有200字节,则下一个报文段序号为300 确认号(Acknowledgement number):指明下一个期待收到的字节序号,只有ACK标志位为1时确认序号字段才有效,Ack = Seq+1 标志位: ① URG:紧急指针标志,为1时表示紧急指针有效 ② ACK:确认序号标志,ACK=1 时表.

小白典的博客 4541

TCP/IP协议三次握手、四次挥手详解

由于首部可能含有可选项内容,因此TCP报头的长度是不确定的,报头不包含任何任选字段则长度为20字节,4位首部长度字段所能表示的最大值为1111,转化为10进制为15,15*32/8 = 60,故报头最大长度为60字节。每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN标志为1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度。)状态,等待服务器发送连接释放报文,服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,服务器就进入了。主动打开连接的为客户端,被动打开连接的是服务器。

DZQ1223的博客 2334

网络协议:TCP三次握手与四次挥手

本篇内容包括:TCP/IP 传输协议(TCP/IP 传输协议简介,IP 协议,UDP 协议,TCP 协议介绍),TCP 的三次握手、TCP 的四次挥手 以及 TCP 协议是怎么保证有效传输等内容。

栗筝i的博客 5475

手写TCP/IP——第8节TCP协议的实现1——TCP基础、三次握手、四次挥手

手写TCP/IP——第8节TCP协议的实现1——TCP基础、三次握手、四次挥手

做一个善良的人,做好自己的事,如果愿意,再发一份光。 1507
上一篇: 如何书写假数据?
下一篇: Spring RMI
learning__java
博客等级 码龄8年 87粉丝 174原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值