相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.
而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。
因此在这里详细解释一下这两个过程。
TCP三次握手
所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。
三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。
第一次握手:
客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里。
第二次握手:
服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。
第三次握手.
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1
SYN攻击
在三次握手过程中,服务器发送SYN-ACK之后,收到客户端的ACK之前的TCP连接称为半连接(half-open connect).此时服务器处于Syn_RECV状态.当收到ACK后,服务器转入ESTABLISHED状态.
Syn攻击就是 攻击客户端 在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直 至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
Syn攻击是一个典型的DDOS攻击。检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击.在Linux下可以如下命令检测是否被Syn攻击
netstat -n -p TCP | grep SYN_RECV
一般较新的TCP/IP协议栈都对这一过程进行修正来防范Syn攻击,修改tcp协议实现。主要方法有SynAttackProtect保护机制、SYN cookies技术、增加最大半连接和缩短超时时间等.
但是不能完全防范syn攻击。
TCP 四次挥手
TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。
参见wireshark抓包,实测的抓包结果并没有严格按挥手时序。我估计是时间间隔太短造成。
转载自: https://www.centos.bz/2012/08/tcp-establish-close/
相关推荐
TCP 三次握手及四次挥手详细图解 TCP 三次握手是指建立一个 TCP 连接时,需要客户端和服务器总共发送 3 个包。三次握手的目的是连接服务器指定端口,建立 TCP 连接,并同步连接双方的序列号和确认号并交换 TCP 窗口...
### Wireshark抓包分析TCP三次握手四次挥手详解及网络命令 #### 一、OSI与TCP/IP体系结构模型 在深入理解Wireshark抓包分析TCP三次握手及四次挥手之前,我们首先需要了解OSI七层模型与TCP/IP四层/五层模型的基础...
以下是关于TCP三次握手和四次挥手的详细介绍。 首先,TCP(Transmission Control Protocol,传输控制协议)是面向连接的、可靠的、基于字节流的传输层通信协议。它提供全双工通信服务,并通过序列号、确认应答、...
wireshark抓包图解TCP三次握手四次挥手详解
本文将深入解析TCP协议中的三次握手和四次挥手过程,以帮助理解其工作原理。 **三次握手** 三次握手是TCP建立连接时必须遵循的过程,确保双方都能正确地发送和接收数据。具体步骤如下: 1. **SYN (Synchronize ...
TCP三次握手和四次挥手不管是在开发还是面试中都是一个非常重要的知识点,它是我们优化web程序性能的基础。欢迎学习,一起进步 文章目录一.TCP简介二.TCP数据报结构三.TCP的三次握手四.TCP的四次挥手 一.TCP简介 TCP...
### TCP三次握手详解 #### 一、三次握手过程解析 **TCP**(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。为了确保连接的可靠性,在TCP建立连接时,采用...
"TCP/IP 协议族详解 wireshark 抓包图解 TCP 三次握手四次挥手详解" TCP/IP 协议族是指由 TCP 和 IP 两个主要协议组成的协议簇,负责管理计算机之间的通信。该协议族分为四个层次:链路层、网络层、运输层和应用层...
图解三次握手、四次挥手的基础理论 在计算机网络学科中,三次握手和四次挥手是非常重要的概念,无论是在面试还是考研,我们都需要细细参透其中的奥妙。在学习之前,我们首先需要了解一些基本的概念。 首先,传输...
主要为大家介绍了网络协议之tcp协议,TCP三次握手与四次断开是怎么的一种情况呢,下面我们来看看观察TCP三次握手与四次断开,需要的朋友可以参考下
TCP/IP协议中三次握手四次挥手的原理及流程分析 TCP/IP协议中三次握手四次挥手的原理及流程分析是计算机网络中非常重要的概念。它主要介绍了TCP/IP协议中三次握手四次挥手的原理及流程分析,具有一定参考价值。 ...
TCP协议在进行通信之前,需要通过三次握手过程来建立一个连接,在通信结束后需要通过四次挥手过程来断开连接。 三次握手过程包括: 1. 第一次握手:客户端发送一个带有同步序列编号(SYN)的包到服务器,表明客户端...
建立TCP连接通道的过程涉及三次握手(three-way handshake)。第一次握手是客户端发送一个SYN(synchronize sequence numbers)包到服务器,以表达建立连接的请求,然后客户端进入SYN_SEND状态。第二次握手是服务器...
- TCP三次握手和四次挥手的过程,以及它们在建立和关闭连接中的作用。 - ICMP的工作方式,如ping命令的原理。 - ARP(地址解析协议)如何将IP地址转换为MAC地址。 - TCP和UDP的区别及其适用场景。 - DNS(域名系统)...
TCP状态机是TCP连接的变化过程 :Tcp在三次握手和四次挥手的过程,就是一个tcp的状态说明,由于tcp是一个面向连接的,可靠的传输,每一次的传输都会经历连接,传输,关闭的过程,无论是哪个方向的传输,必须建立连接...
在《图解TCP/IP 第5版》中,作者详细讲解了每一层的功能和相关协议,包括TCP连接的建立与释放(三次握手和四次挥手)、IP地址与子网掩码的计算、DNS域名解析过程、以及TCP拥塞控制算法等关键概念。此外,书中还介绍...
通过三次握手建立连接,然后在连接上进行数据传输,最后通过四次挥手释放连接。TCP使用滑动窗口机制来控制流量,防止拥塞,并且有重传机制以确保数据可靠性。 另一方面,IP协议主要负责寻址和路由,每个设备都有一...
书中详细解释了TCP的工作机制,包括三次握手和四次挥手建立和关闭连接的过程,以及TCP的流量控制、拥塞控制策略,如滑动窗口协议。同时,IP分片与重组、端口号的作用、DNS(域名系统)的工作原理等也会有详尽的阐述...
卷3《TCP/IP详解:TCP事务协议》聚焦于TCP的事务处理,如TCP的三次握手和四次挥手过程,这是建立和断开TCP连接的关键步骤。同时,这本书也探讨了TCP的性能优化和异常情况处理,以及TCP与其他应用层协议的交互。 ...