5.2、tcp三次握手详析,telnet,wireshark示范
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.2、tcp三次握手详析,telnet,wireshark示范相关的知识,希望对你有一定的参考价值。
参考技术A 发送数据包后服务端会给个收到确认包,再另外发数据返回包。1、TCP连接的三次握手(服务器也可以主动关闭连接)
1.1、最大传输单元MTU(maximum transfer unit)
每个数据包包含的数据最可以有多少个字节,大约是1.5K
比如要发送100k的数据,操作系统会把这100k分成若干个包【分片】。
各自传送的路径可能不同,每个包可能被路由器或者交换机再次分片。
对端再次重组。
1.2、TCP包头结构
源端口,目标端口
关注SYN位,和ACK位
一个tcp包是可能没有包体,通过设置标志位达到传输控制信息的作用。
1.3、数据包首发之前的准备工作
建立tcp连接,
1.4、TCP三次握手建立连接的过程
1、客户端给服务器发送了一个SYN标志位置为1的无包体的数据包。
可能带一个序列号x,或者最大接收窗口。
2、服务器收到了SYN标志位被置位的数据包,
服务器回SYN和ACK位同时置位的数据包,序列号y,确认号x+1。
3、客户端再次发送ACK位被置位的无包体数据包,序列号x+1,确认号y+1。
1.5、为什么TCP握手是三次而不是两次。
确保数据稳定可靠的收发。减少伪造数据包对服务器的攻击。
第一次可能是伪造的请求连接,
需要拨回去应答ack包,此时伪造端收不到。
使源端下一次发送序列号+1。
拒绝服务估计就是利用tcp三次握手漏洞。
大量的syn包,服务器需要返回大量的ack,消耗服务器资源。
2、telnet工具使用介绍
是一款命令行方式运行的tcp客户端通讯工具。可以发送和接收数据。
命令格式:telnet ip port
3、wireshark监控进出本地服务器数据包
软件,分析网络数据包,windows平台上的,先要安装抓包工具
抓包:视图->重置布局
3.1、TCP断开的四次挥手
TCP 连接建立分析
tcp 三次握手与四次挥手
tcp 报文结构
tcp 是全双工的,即 client 向 server 发送信息的同时,server 也可以向 client 发送信息。
在同主机的两个 session 中分别执行以下命令
tcpdump -i lo -w - | tee ./hello.cap | tcpdump -r -
telnet localhost
三次握手
字段含义:时间戳;从本地临时端口38644向telnet;发起连接标志S;client初始包序号3961004360;窗口大小43690字节;选项[最大报文段长度65495;允许TCP单独确认非连续的片段,用于告知真正丢失的包,只重传丢失的片段;时间戳选项;无操作字段;窗口扩大选项];数据段长度
第一行(第一次握手):client端主动发起第一次握手,同步位syn=1,同时初始化序列号seq num=J;
第二行(第二次握手):server端SYN=1,ACK=1,确认号ack num=J + 1,同时自己初始化序列号seq=K;
第三行(第三次握手):client收到确认报文,SYN不再置1,ACK=1,确认号ack num = K + 1;
server端收到第三次握手的数据报文时,进入established状态,TCP连接建立。
四次挥手
第一行(第一次挥手):client发送结束报文字段,FIN = 1,seq num = M
第二行(第二次和第三次挥手):第二次--ACK = 1,seq num = M + 1;第三次--FIN = 1,seq num = N
第三行(第四次挥手):ACK=1,seq num = N + 1
为什么四次挥手只有三个包呢?因为TCP总是尽可能的捎带需要回复给对方的数据,所以第二个ACK就被第三个FIN捎带过来了。但是当主动方发起断开连接,被动方还有数据需要发送的时候,就会变成先ACK再发送完数据,再FIN。
以上是关于5.2、tcp三次握手详析,telnet,wireshark示范的主要内容,如果未能解决你的问题,请参考以下文章