三次握手协议

三次握手协议一 什么是三次握手协议 nbsp tcp ip 建立连接的过程 三次握手协议指的是在发送数据的准备阶段 服务器与客户端之间需要进行三次交互 具体过程如下 第一次握手 建立连接时 客户端向服务器发送一个 SYN 包 握手信号 并计入 SYN SENT 状态 等待服务器确认 第二层握手 服务器收到 SYN 包 必须确认客户端的 SYN 同时自己也发送一个 SYN 包 即 SYN ACK 包 接收到消息并响应 此 nbsp nbsp nbsp nbsp

一:什么是三次握手协议  (tcp/ip建立连接的过程)

三次握手协议指的是在发送数据的准备阶段,服务器与客户端之间需要进行三次交互。

具体过程如下:

第一次握手:建立连接时,客户端向服务器发送一个SYN包(握手信号),并计入SYN_SENT状态,等待服务器确认。

第二层握手:服务器收到SYN包,必须确认客户端的SYN,同时自己也发送一个SYN包,即SYN+ACK包(接收到消息并响应),此                    时服务器进入SYN_SENT状态。

第三次握手:客户端收到服务器的SYN+ACK包,并向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入                                      Established(已建立的,确认的)状态。即TCP连接成功,完成三次握手。

二:三次握手的核心思想

1:TCP作为一种可靠传输控制协议,其核心思想是:既要保证数据可靠传输,又要提高传输效率,而用三次恰恰可以满足以上两个方面的要求。

2:三次是保证双方互相明确对方能收,能发的最低值。理论上讲不论握手多少次都不能确认一条消息是“可靠”的,但通过三次握手后,至少可以确认tcp/ip协议是“可用”的。在此基础上,继续提高握手次数,不过是提高“它是可用的”这个结论的可信程度。

3:可以将三次握手过程形象的归纳如下:

                                    1:A发,B收,B知道A能发;

                                    2:B发,A收,A知道B能发能收;

                                    3:A发,B收,B知道A能收。

4:“三次握手”的本质是:信道是不可靠的,但是通信双方需要就某个协议达成一致,而要解决这个问题,无论你在消息中包含什么信息,三次通信是理论上的最小值。因为三次握手不是TCP本身的要求,而是为了满足“在不可靠的信道上可靠的传输信息”这一需要导致的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232965.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 单调队列详解

    单调队列详解刚学单调队列时,在网上各大博客找文章学,说实话,写得很杂,表示自己懵逼了些许,最后硬是啃出来了,所以我决定要写一篇能让大部分人都看懂的博客来。说单调队列,那我们就先说说这个单调队列是个什么物种。单调队列从字面上看,无非就是有某种单调性的队列,没错,这就是所谓的单调队列。单调队列它分两种,一种是单调递增的,另外一种是单调递减的。在这搬出百度百科的解释:不断地向缓存数组里读入元素,也不时地去掉最老的…

    2022年6月25日
    26
  • navicat premium 15 激活码 mac(JetBrains全家桶)「建议收藏」

    (navicat premium 15 激活码 mac)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    151
  • 用Python计算笛卡尔积

    用Python计算笛卡尔积计算多个集合的笛卡尔积,有规律可循,算法和代码也不难,但是很多语言都没有提供直接计算笛卡尔积的方法,需要自己写大段大段的代码计算笛卡尔积,python提供了一种最简单的计算笛卡称积的方法(只需要一行代码),详见下面的代码:#!/usr/bin/python3#-*-coding:utf-8-*-#@file:Cartesian.py#@author:shlian#…

    2022年7月11日
    29
  • 「原码 反码 补码 移码」一探究竟(中)

    「原码 反码 补码 移码」一探究竟(中)

    2021年6月28日
    107
  • 判断一个字符串是否是回文字符串「建议收藏」

    判断一个字符串是否是回文字符串「建议收藏」#include<string.h>#include<stdio.h>main(){ chara[40];//定义一个存放待判断的字符数组 inti=0,len; printf("pleaseinputyourstring:(length<40):"); gets(a);//逐个读取a数组中的字符 len=strlen(a);//计…

    2022年5月10日
    41
  • 启动spark localhost: ssh: Could not resolve hostname localhost: Name or service not known[通俗易懂]

    启动spark localhost: ssh: Could not resolve hostname localhost: Name or service not known[通俗易懂]启动spark localhost: ssh: Could not resolve hostname localhost: Name or service not known

    2022年4月23日
    181

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号