最近在思考一个问题,当我们在浏览器中输入URL按下回车键后,他的详细流程是怎样的;以前刚用springMVC的时候弄懂了一个请求的流程,好几个月以为那就是我想要的答案了,最近这段时间熟悉了好多东西,准备新写一个从 输入URL到页面展示的 细节系列,想必写完自己也收获颇丰~ 今天先写一篇三次握手与四次挥手来开个头;
之前写过 TCP 三次握手和四次挥手过程中,途中某一步的报文丢失会发生什么的文章。
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
七层模型,亦称OSI(Open System Interconnection)参考模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。
看到了一道面试题:“为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?”,想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章,希望对你们有所帮助。
可以看到,这些问题都是关于 TCP 是如何处理这些异常场景的,我们在学 TCP 连接建立和断开的时候,总是以为这些过程能如期完成。
无论是工作还是没有工作的小伙伴,肯定都见过或经历过表白事件。那如果想要进行一次表白或者求婚,我们需要怎么做?
客户端:Ubuntu 16.04 ,IP:192.168.78.128 ,简称为客户端A
该文章讲述了TCP连接中的TIME_WAIT状态,即TCP连接在关闭之后,等待2*MSL时间后才能重新被调用。同时,也介绍了TCP连接的Close_wait状态,即TCP连接在关闭之后,发送方等待2*MSL时间才能重新调用该连接。此外,文章还介绍了如何通过三次挥手来关闭TCP连接,并强调了TCP连接的半关闭状态,即只关闭了应用层未关闭传输层。
上一节我们图解了TCP的三次握手,了解了三次握手过程的原理、为啥需要三次握手而不是两次握手就能建立连接,那么建立连接时三次握手,那TCP断开连接是如何断开的呢?
看过太多tcp相关文章,但是看完总是不过瘾,似懂非懂,反复考虑过后,我觉得是那些文章太过理论,看起来没有体感,所以吸收不了。 希望这篇文章能做到言简意赅,帮助大家透过案例来理解原理。 tcp的特点 这个大家基本都能说几句,面试的时候候选人也肯定会告诉你这些: 三次握手 四次挥手 可靠连接 丢包重传 但是我只希望大家记住一个核心的:tcp是可以可靠传输协议,它的所有特点都为这个可靠传输服务。 那么tcp是怎么样来保障可靠传输呢? tcp在传输过程中都有一个ack,接收方通过ack告诉发送方收到那些包了。这样
看到这个标题你可能会说,TCP 连接的建立与断开,这个我熟,不就是三次握手与四次挥手嘛。且慢,脑海中可以先尝试回答这几个问题:
半双工:既能接收也能发送数据但是接受数据的时候只能接受数据,然后发送数据的时候也只能发送数据不能接受数据,接收数据同时进行单工:只能接受或者发送数据
三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。
32位序号:随机生成,唯一标识当前报文的序号是多少,seq表示 32位确认序号:对上一条发送的信息进行一个消息的确认,ack表示 ACK:确认标志位,一位,只能表示0/1。 SYN:1:发起一个新的连接 FIN:1:结束一个连接
N个请求就重复N次,如果希望用户能够更快的拿到数据,服务器的压力降到最低,让你去优化这个请求过程。
我们都知道 TCP 有建立连接时的三次握手和断开连接时的四次挥手,如上图所示。这个过程具体怎么样就不多说了。 今天主要想讨论一下,为什么 TCP 是三次握手,四次挥手。 下面说说个人对这个问题的理解和总结。
今天使用wireshark来分析一下tcp的一些原理。首先我们建立一个tcp服务器。
TCP协议,全称Transmission Control Protocol(传输控制协议),是一种位于OSI模型中传输层的计算机网络协议。它规定如何建立和维护两个程序可以交换数据的连接,以及如何通过Internet发送信息。
连接管理是分为两大块的: 1.建立连接:三次握手的过程 2.断开连接:四次挥手的过程
传输方式:TCP是面向连接的,UDP是面向无连接的,所谓连接是一个逻辑上的概念,TCP需要在两端都建立数据结构来保存对端的通信状态,以此达到维持连接的目的;
背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次。 从好上开始,到现在,一年多也算坚持下来了。 问题 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声音,过一会儿之后才会恢复。 中间双方可能就要不断的确认网络是否恢复,但是有时候会: 她:“你可以听到了吗?” 我:“可以了,你呢?”、 她:“喂喂,你可以听到了吗?” 我:“可以了,我可以听到了,你呢?” 她:“你可以听到了吗?” ..... 这种情况很蛋疼,那么怎样才能找一个简单的办法,让两个人都确认自己可
TCP 提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。
不管面试 Java 、C/C++、Python 等开发岗位, TCP 的知识点可以说是的必问的了。
我第一次写 TCP 文章是这篇:硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题
1、TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。 2、客户端在收发数据前要使用 connect() 函数和服务器建立连接。建立连接的目的是保证IP地址、端口、物理链路等正确无误,为数据的传输开辟通道。 3、TCP建立连接时要传输三个数据包,俗称三次握手(Three-way Handshaking)
在前一章说过TCP的“三次握手”是建立连接的过程,那么“四次挥手”就是断开连接的过程。
确认序号:发送方期待接收的下一序列号,接收成功后的数据字节序列号加 1。只有ACK=1时才有效。
要弄清 TCP 建立连接需要几次交互才行,我们需要弄清建立连接进行初始化的目标是什么。TCP 进行握手初始化一个连接的目标是:分配资源、初始化序列号(通知 peer 对端我的初始序列号是多少),知道初始化连接的目标,那么要达成这个目标的过程就简单了,握手过程可以简化为下面的四次交互【总共发送了三个包,3和4是同一个包】:
此过程中: 第一次握手,客户端先发一个SYN请求并附带一个J的值给服务端 第二次握手,服务端收到请求后解堵塞,发送一个SYN请求并附带一个K值,还发送了第一次握手后对客户端的响应包并附带在之前接收到的J值的基础上加上1,即J+1 第三次握手,客户端收到服务端发来的SYN请求和K值后,再发送一个K+1的响应包给服务端 至此,三次握手成功完成,客户端和服务端之间成功建立tcp链接
天下没有不散的宴席,对于 TCP 连接也是这样, TCP 断开连接是通过四次挥手方式。下面我们通过实操,来彻底理解四次挥手。
我们都知道TCP是面向连接的,三次握手就是用来建立连接的,四次握手就是用来断开连接的。
TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的。
三次握手建立链接,四次挥手断开链接。这个问题算非常经典的问题,也是面试官非常喜欢问的问题。
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN(syn=k)包,即SYN+ACK包,此时服务器进入SYN_RECV状态。 第三次握手:客户端接受服务器SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 注意:握手的过程中传送的包里不包含数据,三次握手完毕
假设现在 A 想去 B 家里玩游戏,于是 A 给 B 发消息,若消息没有出现错误且顺序正确 结果如下所示:
TCP三次握手 所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。整个流程如下图所示: 第一次握手:
HTTP 的工作方式其实很简单,首先由客户端向服务端发起一个请求,然后再由服务端回复一个响应。依据不同的场景,客户端发送的请求会用到不同方法,有 GET、POST、PUT 和 HEAD 等。
本文通过图来梳理TCP-IP协议相关知识。TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示意图。
假设现在 A 想去 B 家里玩游戏,于是 A 给 B 发消息,若消息没有出现错误且顺序正确
相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.
正式分享之前,先简单介绍一下 Wireshark。Wireshark 的前称是 Ethereal,该开源软件的功能正如其名,用来还原以太网的真相。
在网络数据传输中,传输层协议TCP是要建立连接的可靠传输,TCP建立连接的过程,我们称为三次握手。
网络传输层负责最底层的底层链路连接。两台主机之间进行互联,基于网线的物理硬件上的协议。在这个侧面,主机与主机之间只认得硬件mac编码。并不认识IP。
大家好,我们又见面了,做为一个业余的动画师,上次的用动画的形式讲解 TCP 三次握手过程再各大平台收到了广大读者的喜爱,说文章有趣、有货、有内容,也受到了很多读者的关注。很多读者留言说什么时候用动画讲一讲 TCP 四次挥手的过程,为了应大家的要求,今天我们就生动有趣的用动画给大家分享 TCP 四次挥手(分手)过程。
领取专属 10元无门槛券
手把手带您无忧上云