随笔分类 - TCP/IP
摘要:TCP是一个十分复杂的协议,通过前面几篇文章只涉及了TCP协议中一些基本的概念。虽然说都是一些TCP最基本的概念,但是试验过程中一直在踩坑,例如:TCP flag设置错误,seq、ack号没有计算正确,TCP状态变迁错误等等。通过Pcap.Net真正实验一下才发现了很多TCP协议中要注意的细节,例如...
阅读全文
摘要:上一篇中介绍了TCP数据传输中涉及的一些基本知识点。本文让我们看看TCP中的4种定时器。TCP定时器对于每个TCP连接,TCP管理4个不同的定时器,下面看看对4种定时器的简单介绍。重传定时器使用于当希望收到另一端的确认。该定时器是用来决定超时和重传的。由于网络环境的易变性,该定时器时间长度肯定不是固...
阅读全文
摘要:前面的文章介绍了TCP状态变迁,以及TCP状态变迁图中的一些特殊状态。本文主要看看TCP数据传输过程中需要了解的一些重要点:MSS(Maximum Segment Size)Seq号和Ack号的计算TCP半连接TCP数据传输实验在开始介绍上面列出的内容之前,先看看实验程序的运行。本文的例子代码是基于...
阅读全文
摘要:前面两篇文章介绍了TCP状态变迁,以及通过实验演示了客户端和服务端的正常状态变迁。下面就来看看TCP状态变迁过程中的几个特殊状态。SYN_RCVD在TCP连接建立的过程中,当服务端接收到[SYN]包后,就会发送[SYN, ACK]包,然后进入SYN_RCVD状态。根据前面文章的介绍,服务器的上述行为...
阅读全文
摘要:上一篇文章介绍了TCP状态机,并且通过实验了解了TCP客户端正常的状态变迁过程。那么,本篇文章就一起看看TCP服务端的正常状态变迁过程服务端状态变迁根据上一篇文章中的TCP状态变迁图,可以得到服务器的正常状态变迁流程如下:CLOSED -> LISTEN -> SYN_RECV -> ESTABLI...
阅读全文
摘要:上一篇文章中介绍了TCP连接的建立和终止。通过实际操作了解到,在TCP协议工作过程中,客户端和服务端都会接收或者发送特定标志的TCP数据包,然后进入不同的状态。也就是说,TCP协议就是一个包含多种状态转换的状态机,下面介绍一下TCP状态机。TCP状态机网络上的传输是没有连接的,包括TCP也是一样的。...
阅读全文
摘要:TCP是一个面向连接的协议,任何一方在发送数据之前,都必须先在双方之间建立一条连接。所以,本文就主要看看TCP连接的建立和终止。在开始介绍TCP连接之前,先来看看TCP数据包的首部,首部里面有很多重要的字段,在我们实现程序的时候需要进行设置。TCP的首部在OSI七层模型中,上层的数据包都会作为下层数...
阅读全文
摘要:前一段时间通过Wireshark抓包,定位了一个客户端和服务器之间数据传输的问题。最近就抽空看了看《TCP/IP详解 卷1》中关于TCP的部分,书中用了很多例子展示了TCP/IP协议中的一些基本概念。所以,也准备自己动手,通过一些简单的实验来进一步了解一下TCP中的一些基本概念。环境搭建和配置在开始...
阅读全文