精华内容
下载资源
问答
  • tcp/ip协议三次握手
    千次阅读
    2021-12-09 17:24:05

    TCP/IP协议是传输层的一个面向连接的安全可靠的传输协议。

    刚开始客户端处于 closed 的状态,服务端处于 listen 状态;

    第一次握手是由客户端发起,客户端会向服务端发送一个SYN报文,报文里面SYN标志位是置1的,并指明客户端的初始化序列号。此时客户端处于SYN_Send状态;

    当服务端收到这个SYN 报文的时候就知道客户端要和我发起一个新的连接,于是服务端就向客户端发送一个自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s),同时会把客户端的 ISN + 1 作为 ack 的值,ACK位置1,表示自己已经收到了客户端的 SYN报文,此时服务器处于SYN_RCVD的状态;以上两次握手之后,对于客户端而言,其实是已经知道了所有信息,就是我既能给服务端发送消息,我还能收到服务端的消息;对于服务端而言,两次握手是不够的,因为到目前为止,服务端只知道一件事情,客户端给我发送的消息我收的到,但是我发给客户端的消息,客户端能不能收到我还不知道。

    所以还要进行第三次握手。第三次握手就是当客户端收到服务端发过来的确认消息的SYN报文之后,还要继续给服务端进行一个回应,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ack 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于established状态。

    通过以上三次连接,不管是服务端还是客户端都彼此知道了,我既能给对方发送消息也能收到对方的消息,那么这个连接就能被安全的建立了。

    三次握手的作用:
    1、确认双方的接受能力、发送能力是否正常。
    2、指定自己的初始化序列号,为后面的可靠传送做准备。
    3.为了保证能建立一个安全可靠的连接。

    更多相关内容
  • TCP/IP协议三次握手、四次挥手,通俗易懂

    千次阅读 多人点赞 2021-03-31 17:40:49
    在了解TCP/IP协议三次握手、四次挥手之前,先对TCP报文格式进行简单了解 TCP报文格式 中文版: 英文版: 关于三次握手、四次挥手需要了解的TCP报文格式部分 序号是随机生成的一串数字,代表当前的报文序号是多少,...

    在了解TCP/IP协议三次握手、四次挥手之前,先对TCP报文格式进行简单了解
    在这里插入图片描述

    TCP报文格式

    中文版:
    在这里插入图片描述
    英文版:
    在这里插入图片描述

    关于三次握手、四次挥手需要了解的TCP报文格式部分

    在这里插入图片描述

    序号是随机生成的一串数字,代表当前的报文序号是多少,叫做seq(sequence number)。
    确认序号是对上一条报文的信息,进行一个确认,叫做ack(acknowledgment number)。
    红色圈出来的部分,每一行代表4个字节,因为1个字节=8位,所以32位就是4个字节,我们可以简单的把这些字节想象成0101010…
    所以在第四行,不管是ACK或者SYN或者FIN,都是只占一个字节,为什么呢?首先我们知道每一行就是32位,第四行的4位首部长度+保留6(位)+16位窗口大小=4+6+16=26,那么剩下的就只有32-26=6位,所以每个标志位表示1位,ACK或者SYN或者FIN都称为标志位,而6个标志位组成的部分叫控制位。

    什么是ACK,SYN,FIN?

    1. ACK:确认序号标志,当值为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。
    2. SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。
    3. FIN:finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。

    什么是三次握手?以及为什么要三次握手?两次不行吗?

    在这里插入图片描述
    首先客户端向服务端发起建立连接的请求,第一步客户端在TCP报文格式中,将SYN值变为1,相当于告诉服务端,我要和你建立连接,随机生成seq值代表当前的报文序号,假设是1000。
    当服务端接收到这个请求后,向服务端发起响应,此时服务端发送的TCP报文格式中,SYN的值变成1,随机生成seq值代表当前的报文序号,假设是2000,ACK变成1,相当于告诉客户端,我已经收到了你的请求,ack会变成在之前客户端发送的seq值+1,也就是1000+1=1001。
    重点来了,当客户端收到服务端发送的报文,客户端此时可以确定一件事情,就是客户端发送消息和接受消息都是正常的,但是,对于服务端来说,它只知道自己可以成功接受消息,但是自己能不能成功发送消息,并不知道,所以,只有两次握手肯定是不行的,由于TCP/IP协议是一种可靠的传输层通信协议,所以不能让这种情况发生。
    由此就有了第三步,客户端发送报文,ack值为2001,ACK值为1,相当于告诉服务端,你发送的消息,我已经收到了,那么当服务端接收到这个报文,就可以确认自己是可以正常的接受消息和发送消息了,这就是三次握手的过程。

    什么是四次挥手?

    在这里插入图片描述
    首先客户端发送报文,FIN=1,相当于告诉服务端,我和你断开连接了,seq=2345,这里的seq不是随机生成的,而是由之前一系列操作演变而来的。
    当服务端接收到报文,发送报文给客户端,ACK=1,相当于告诉客户端,我收到了你的消息,ack是上一个seq值+1。
    然后服务端又会发送报文,FIN=1,相当于告诉客户端,我要和你断开连接了,seq=5555,这里的seq不是随机生成的,而是由之前一系列操作演变而来的。
    当客户端收到从服务端发送过来的消息后,发送报文给服务端,ACK=1,相当于告诉服务端,我收到了你的消息,ackack是上一个seq值+1,至此客户端和服务端断开连接,这就是四次挥手过程。
    那么可能有个问题,第二步和第三步可以合并成一步吗?
    答案是不行的,因为TCP/IP协议是一种可靠的传输层通信协议,当第一步的时候,服务端收到了来自客户端的报文,此时只能说明客户端已经做好了与服务端断开的准备,但是服务端有没有做好准备,客户端并不知道,所以服务端选择先发送ACK=1,先告诉客户端,我收到了你的消息,等我把事情处理好之后,再跟你断开,此时客户端收到消息就会等,直到服务端发送FIN=1,客户端就确认服务端已经做好了断开的准备了。

    都看到这里了,不考虑点个赞再走嘛?
    在这里插入图片描述

    展开全文
  • 简述TCP/IP协议三次握手和四次挥手

    万次阅读 多人点赞 2019-01-30 13:01:06
    TCP/IP协议 互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),...

    TCP/IP协议

            互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。

    TCP的6种标志符

    • SYN(synchronous),建立联机
    • ACK(acknowledgement),确认
    • PSH(push),传输
    • FIN(finish),结束
    • RST(reset),重置
    • URG(urgent),紧急

    三次握手:

            概念:指在发送数据的准备阶段,服务器和客户端之间需要三次交互

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

            第二次握手:当服务器收到客户端的请求后,此时要给客户端给一个确认信息ACK,同时发送SYN包,此时服务器进入 SYN_RECV状态

            第三次握手:客户端收到服务器发的ACK+SYN包后,向服务器发送ACK,发送完毕之后,客户端和服务器进入 ESTABLISHED(TCP连接成功)状态,完成三次握手

    四次挥手:

            概念:所谓四次挥手就是说关闭TCP连接的过程,当断开一个TCP连接时,需要客户端和服务器共发送四个包确认

            第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器的数据传输,客户端进入FIN_WAIT_1状态

            第二次挥手:服务器收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序 号),服务器进入CLOSE_WAIT状态

            第三次挥手:服务器发送一个FIN,用来关闭服务器到客户端的数据传输,服务器进入LAST_ACK状态

            第四次挥手:客户端收到FIN后,客户端进入TIME_WAIT状态,接着发送一个AKC给服务器,确认序号为收到序号+1,服务器进入CLOSED状态,完成四次挥手

    常见的问题:

            1、为什么连接需要三次,关闭的时候需要四次?

            当服务器收到客户端的连接请求后,可以直接发送SYN+ACK报文,其中ACK是确认应答,SYN报文是用来同步的。但  是在关闭连接的时候,当服务器收到FIN的时候,很可能并不会立刻关闭SOCKET,所以只能先回个ACK来应答,只有等服务器把所有报文都发完了才能发送FIN,因此不能一起发送,所有需要四步。

            2、为什么断开链接的时候客户端设置的定时器时间等待要2MSL(两个通信报文的最大时间)?

            当客户端最终告诉服务器断开确认的时候,他不知道自己的发出的指令是否准确的一次性被服务器接收。 

            3、为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

            虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。 

    以上就是本文的全部内容,希望对大家的学习有所帮助,欢迎评论交流。能get到知识点不要忘了关注点个赞~ 拒绝白嫖从我们做起hh~

            

    展开全文
  • TCP/IP协议三次握手

    2009-05-19 11:12:07
    三次握手,TCP/IP协议三次握手,TCP/IP协议三次握手
  • TCP/IP协议三次握手流程解析

    千次阅读 2019-07-29 16:58:51
    三次握手TCP/IP网络中用于在client和server之间创建连接的方法。这是一个三步法,要求客户端和服务器在实际数据通信开始之前交换SYN和ACK数据包。 如果理解着比较抽象我来举个例子: 比如说你要...

    TCP/IP 的三次握手有什么用?

    三次握手是TCP/IP网络中用于在client和server之间创建连接的方法。这是一个三步法,要求客户端和服务器在实际数据通信开始之前交换SYN和ACK数据包。
    如果理解着比较抽象我来举个例子:
    比如说你要给某人打电话,你不可能电话接通了就直接说事情。正常逻辑是:

    我:请问,是✖️✖️吗?(SYN)
    对方:是我,请问你是谁?(SYN+ACK)
    我:您好,我是 ✖️✖️。(ACK)
    。。。。。。

    这就是我们人在沟通之前建立连接的三次握手。如果没有经过确认就直接说事情,假如电话号码拨错了或者接电活的不是本人,岂不是要闹大笑话。
    还是言归正传,讲讲什么是TCP/IP 的三次握手。

    简单版TCP/IP 的三次握手

    如果看完这篇文章你啥也没记住,我希望您能记住下面这张图:
    在这里插入图片描述

    1. client 通过IP网络将SYN数据包发送到 server
    2. 当 server 从 client 接收到 SYN 数据包时,它会响应并返回 SYN / ACK数据包
    3. client 从服务器接收 SYN / ACK 并用ACK数据包进行响应。

    详细版TCP/IP 的三次握手

    为了帮助理解流程先上图:
    在这里插入图片描述

    1. client 发送具有 SYN = 1,ACK = 0,ISN(Initial Sequence Number)= 1000的TCP段。
      ISN(Initial Sequence Number):是一个随机的序列号,用来标记 client 将传输的数据的序列号的开始。
    2. server 接收 client 的TCP段并返回一个TCP段,其中SYN = 1,ACK = 1,ISN = 2000(server 的ISN),ACK NUM(Acknowledgment Number ) = 1001(1000 + 1)。
    3. client 向 server 发送TCP段,确认收到 server 的ISN,标志设置为SYN = 0,ACK = 1,SEQ NUM (Sequence Number)= 1001,ACK NUM= 2001(2000 + 1)

    看似很复杂,其实很简单,关键是对流程的理解。涉及的数学运算只是加法。

    四次挥手

    理解了三次握手,再来看四次挥手就一目了然了,照惯例先上图:

    在这里插入图片描述

    1. 要关闭连接的client发送TCP段,其FIN(Finished)标志设置为1。
    2. sever 接收TCP段,并用 ACK 确认 client 的FIN。
    3. sever 将FIN标志设置为1的自己的TCP段发送到客户端,以终止连接。
    4. client 通过 ACK 确认 server 的FIN,并关闭连接。

    三次握手和四次挥手整体认识

    理解了上面讲的三次握手和四次挥手的底层逻辑,那么我们再从高处俯视TCP/IP数据传输的整体逻辑就显得很清晰了。
    注:下面图片来自博客:https://www.cnblogs.com/thrillerz/p/6464203.html

    在这里插入图片描述

    展开全文
  • TCP/IP协议三次握手/四次挥手

    千次阅读 2022-03-30 17:39:03
    首先:采用三次握手是为了防止失效的连接请求报文段突然又回传给主机B,因而产生错误。 失效的连接请求报文段:client端发送的第一个连接请求报文段并没有丢失,而是在某个网络节点滞留了,以至于延误到连接释放以后...
  • 要了解什么是握四挥,必须要了解一个重要的知识点:什么是TCP报文格式,也就是握四挥中传送的内容是什么,遇到什么格式才能触发服务端和客户端的交流。 TCP报文格式 TCP报文是TCP层传输的数据单元,也叫报文段...
  • 搞懂TCP/IP协议三次握手四次挥手

    千次阅读 2020-06-16 21:02:16
    TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时...
  • tcp/ip协议三次握手、四次挥手

    千次阅读 多人点赞 2021-08-24 22:03:23
    tcp/ip协议三次握手、四次挥手TCP报文格式两次握手三次握手四次挥手 TCP报文格式 32位序号:随机生成,唯一标识当前报文的序号是多少,seq表示 32位确认序号:对上一条发送的信息进行一个消息的确认,ack表示 ACK:...
  • TCP/IP协议模型 TCP报文中较为重要的字段: 序号(Sequencenumber):用来标识从源端到目的端发送的字节流,发起方发送数据时对此进行标记,比如:一个报文段的序号为100,此报文段数据部分共有200字节,则下一个...
  • 1基于TCP/IP协议三次握手 为了建立客户端和服务器端的连接,确保道路通畅 2.前段主动发送请求 ​ 把你想和后端说的事情说出来(一次只能说一个) ​ 前段以请求报文的形式发送所用内容 2-1请求报文行 ​ 包含 1....
  • 简述TCP/IP三次握手过程

    万次阅读 多人点赞 2018-07-05 10:15:40
    TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize ...
  • 三次握手,四次挥手是面试中经常问到的问题,被提及的概率达到了80%,这个也是很多小伙伴的弱点,很多人在面试的时候无法正确的描述,只知道意思,所以你会听到不同版本的tcp/ip协议,有用男女朋友打电话来解释
  • TCP/IP三次握手面试常问问题

    千次阅读 2022-03-18 08:45:53
    1.三次握手过程 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。 第二次握手:服务器收到syn包,必须...
  • IP协议:对应于网络层,是网络层的协议。...Socket:本身不是协议,而是对TCP/IP协议的封装和应用的调用接口API,通过它我们才能使用TCP/IP协议。   TCP/IP协议 TCP/IP指传输控制协议/网际协议(Transmission 
  •  要想了解什么是TCP/IP协议,就要知道什么是网络协议。书本上的定义:网络协议是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。  中国人之间交流使用汉语,要遵循汉语的语法结构和发音;那如果我们...
  • TCP/IP协议三次握手与四次握手流程解析

    千次阅读 多人点赞 2017-04-02 20:03:49
    原文链接地址:http://www.2cto.com/net/201310/251896.htmlTCP/IP协议三次握手与四次握手流程解析一、TCP报文格式 TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图: 图1 TCP报文格式 ...
  • TCP/IP协议讲解

    千次阅读 2022-05-07 08:26:58
    TCP/IP与OSI参考模型 应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、虚拟终端等。 应用层协议:两个主机的两个应用程序之间进行相互交流的数据格式。 运行在TCP协议上的协议: 1、HTTP...
  • 主要介绍了图解TCP/IP协议,帮助大家轻松学会TCP/IP协议,需要的朋友可以参考下
  • TCP/IP协议教程.zip

    2020-12-16 21:50:03
    TCPIP教程.zip 本教程内容包括: 以太网 TCP/IP协议: 三次握手,四次握手,keepalive选项 DNS协议 UDP协议 RPC原理 NFC协议 链路层介绍
  • TCP/IP协议详解

    千次阅读 2022-01-18 21:04:51
    TCPIP协议。 计算机网络体系结构 OSI参考模型 OSI(Open System Interconnect),即开放式系统互联。一般都叫 OSI 参考模型,是 ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO 为了更好的使...
  • TCP/IP协议学习总结

    万次阅读 多人点赞 2021-10-28 11:37:44
    TCP/IP协议学习总结网络基础知识连接人与人的计算机网络协议随处可见的协议协议的必要性计算机中的协议分组交换协议协议分层与OSI参考模型协议的分层OSI参考模型OSI协议与OSI参考模型OSI参考模型中各个分层的作用7层...
  • 计算机网络 | 一文搞懂什么是TCP/IP协议

    万次阅读 多人点赞 2019-10-28 12:48:16
    什么是TCP/IP协议? 计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件,操作系统之间的...
  • tcp/ip协议.pdf

    2021-07-15 14:22:31
    tcp/ip协议三次握手四次挥手;tcp/udp;http/https;数据链路层,网络层,传输层以及应用层
  • TCP/IP协议详解(干货!)

    万次阅读 多人点赞 2021-09-27 18:30:35
    计算机体系结构 上图展示了计算机结构的OSI七层模型以及TCP/IP概念模型。 应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、虚拟终端等。 应用层协议:两个主机的两个应用程序...TCP/IP协议实际
  • TCP/IP协议三次握手及实现原理

    千次阅读 2017-02-09 21:00:39
     1、简述Socket,IP,TCP三次握手,HTTP协议(有助于理解、记忆和学习)  http://www.tuicool.com/articles/qyUzyir 一、TCP报文格式  TCP报文格式图:      上图中有几个字段需要重点介绍下:  ...
  • TCP/IP协议三次握手和四次挥手大白话解说

    万次阅读 多人点赞 2016-09-20 20:20:54
    昨天晚上被一位师傅问到了TCP/IP的工作机制,心里很清楚三次握手,然而对于四次挥手却忘了,这是大学习里学过的,奋而翻阅书籍和网络对之前所学的做一个温顾,算是夯实自我吧。TCP(Transmission Control Protocol)...
  • 【网络协议TCP/IP 协议

    千次阅读 2022-03-04 00:32:01
    TCP/IP 协议模型,包含了一系列构成互联网基础的网络协议,是 Internet 的核心协议。 基于 TCP/IP 协议栈可分为四层或五层,转换为 OSI 参考模型,可以分为七层,分别如下图所示: 通常我们所说的都是基于 TCP/TP ...
  • TCP/IP协议簇中的主要协议及其主要用途

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 116,501
精华内容 46,600
关键字:

tcp/ip协议三次握手