[计算机网络实验] TCP协议
Written by Landasika
跟踪TCP流
三次握手四次挥手的过程
TCP的三次握手标志传输的开始
服务器向主机发送OK的包并且FIN的值是1,也就是四次挥手的开始,标志着传输的结束。
跟踪TCP流找到发送的包
 选定一个TCP流进行跟踪
 可以发现这个是一个GET请求的一个HTTP报文。
继续分析。 第一个GET请求是请求这个图片,然后通过tcp传输。 
最后GET请求回复OK,表名传输完成。
找到OK传输完成的HTTP包,选中JPEG的包。 Ctrl+Shift+O  这里可以查看到传输的图片。
分析TCP快重传的过程
主机报文重传是TCP最基本的错误恢复功能,它的目的是防止报文丢失。


一般快速重传算法在收到三次冗余的Ack,即三次[TCP dup ack XXX#X]后,发送端进行快速重传。 为什么是三次呢?因为两次 duplicated ACK 肯定是乱序造成的,丢包肯定会造成三次 duplicated ACK。


分析TCP重传过程
 这个地方网络异常导致重传,观察第一个包发现校验和是并没有校验的。 那么就是包丢失,进行超时重传。 超时重传,如果一个包的丢了,又没有后续包可以在接收方触发[Dup Ack],或者**[Dup Ack]也丢失**的情况下,TCP会触发超时重传机制。 
分析TCP累计确认过程
访问一个网站,随便跟踪一个TCP流 TCP的三次握手标志传输的开始

本机向服务器发送序号为1,长度为410字节的TCP段。同时期望收到序号为1的数据。

服务器确认收到序号为1的字段,并发送长度为0字节的TCP字段,告诉服务器,表示我已经收到确认了。
 服务器向本机传输数据,希望得到序号为411的确认包
 主机向服务器发送序号为411,希望得到序号为13601的确认包。告诉服务器,你之前发送的数据我都接受到了。
服务器继续向主机发送数据,期望得到序号为411的确认包。
服务器向主机发送OK的包并且FIN的值是1,也就是四次挥手的开始,标志着传输的结束。
|