四次挥手 以上过程流程图如下: 为什么断开连接需要四次握手?因为TCP链接是全双工的,即数据在两个方向上能同时传递,因此每个方向必须单独的进行关闭。这原则就是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向连接。 分析 TCP报文头中flags中的FIN被置为1,sequence num ...
分类:
其他好文 时间:
2017-11-01 01:15:46
阅读次数:
221
TCP报文段首部 序号: TCP是面向字节流的。在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。整个要传送的字节流的起始序号必须在连接建立时设置。首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。 例如,一报文段的序号字段值是301,而携带的数据共有100字节。这就表明:本 ...
分类:
其他好文 时间:
2017-10-15 21:27:06
阅读次数:
282
Redis是建立在TCP协议基础上的CS架构,客户端client对redis server采取请求响应的方式交互。 一般来说客户端从提交请求到得到服务器相应,需要传送两个tcp报文。 设想这样的一个场景,你要批量的执行一系列redis命令,例如执行100次get key,这时你要向redis请求10 ...
分类:
编程语言 时间:
2017-10-10 19:10:00
阅读次数:
299
MSL是啥?和TTL是什么关系? MSL是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为tcp报文(segment)是ip数据报(datagram)的数据部分,具体称谓请参见《数据在网络 ...
分类:
其他好文 时间:
2017-09-26 15:57:16
阅读次数:
309
(1) 几个概念介绍 1 seq:数据段的序号,计算方法或者增长方式:seq2=seq1+len1(len仅仅是数据段的长度,不包括TCP头)(同一个发送方的tcp报文序号的计算方法) 2 ACK:确认号的计算方法,接收方的ACK号与发送方的SEQ和LEN之间的关系: 甲:发送“seq:x,len: ...
分类:
其他好文 时间:
2017-09-06 21:22:32
阅读次数:
177
一、IP包格式IP数据包是一种可变长分组,它由首部和数据负载两部分组成。首部长度一般为20-60字节(Byte),其中后40字节是可选的,长度不固定,前20字节格式为固定。数据负载部分的长度一般可变,整个IP数据包的最大长度为65535B。1、版本号(Version)长度为4位(bit),IPv4..
分类:
其他好文 时间:
2017-09-03 23:46:28
阅读次数:
219
TCP/IP协议三次握手与四次握手流程解析 一、TCP报文格式 TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时 ...
分类:
其他好文 时间:
2017-09-03 13:19:15
阅读次数:
227
TCP包头:其中ACK,SYN,FIN在这两个过程中会用到,简单介绍如下:
ACK:表示是否前面的确认号字段是否有效,ACK=1,表示有效,只有当ACK=1时,前面的确认号字段才有效,TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段。
SYN:在建立连接时使用,..
分类:
其他好文 时间:
2017-09-03 00:29:47
阅读次数:
255
TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程: 1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发 ...
分类:
其他好文 时间:
2017-09-02 01:03:34
阅读次数:
198
TCP协议的3次握手与4次挥手过程详解 所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。所谓四次挥手(Four-Way Wavehand)即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服 ...
分类:
其他好文 时间:
2017-08-28 23:46:08
阅读次数:
178