`

(转)TCP/IP协议 三次握手与四次挥手

 
阅读更多

TCP(Transmission Control Protocol) 传输控制协议

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)

Sequence number(顺序号码) Acknowledge number(确认号码)

第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包

第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

完成三次握手,主机A与主机B开始传送数据。


在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.

实例:

IP 192.168.1.116.3337 > 192.168.1.123.7788: S 3626544836:3626544836
IP 192.168.1.123.7788 > 192.168.1.116.3337: S 1739326486:1739326486 ack 3626544837
IP 192.168.1.116.3337 > 192.168.1.123.7788: ack 1739326487,ack 1

第一次握手:192.168.1.116发送位码syn=1,随机产生seq number=3626544836的数据包到192.168.1.123,192.168.1.123由SYN=1知道192.168.1.116要求建立联机;

第二次握手:192.168.1.123收到请求后要确认联机信息,向192.168.1.116发送ack number=3626544837,syn=1,ack=1,随机产生seq=1739326486的包;

第三次握手:192.168.1.116收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,192.168.1.116会再发送ack number=1739326487,ack=1,192.168.1.123收到后确认seq=seq+1,ack=1则连接建立成功。

 

图解:
一个三次握手的过程(图1,图2)

 

(图1)

(图2)
 

 

第一次握手的标志位(图3)
我们可以看到标志位里面只有个同步位,也就是在做请求(SYN)
3 
 (图3)

第二次握手的标志位(图4)
我们可以看到标志位里面有个确认位和同步位,也就是在做应答(SYN + ACK)
4 
(图4)

第三次握手的标志位(图5)
我们可以看到标志位里面只有个确认位,也就是再做再次确认(ACK)
5 
 
(图5)

一个完整的三次握手也就是 请求---应答---再次确认


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/ip协议.pdf

    tcp/ip协议;三次握手四次挥手;tcp/udp;http/https;数据链路层,网络层,传输层以及应用层

    TCP/IP协议中三次握手四次挥手的原理及流程分析

    主要介绍了TCP/IP协议中三次握手四次挥手的原理及流程分析,具有一定参考价值,需要的朋友可以了解下。

    TCP三次握手与四次挥手

    在TCP/IP协议中,建立连接协议是三次握手,关闭连接是四次握手。

    计算机网络基本知识(TCP/IP四层模型、TCP三次握手和四次挥手等)

    计算机网络基本知识(TCP/IP四层模型、TCP三次握手和四次挥手、http协议)

    TCP/IP和HTTP协议详解

    学习TCP/IP协议基础知识,了解三次握手和四次挥手的含义的意义

    巧解HTTP三次握手四次挥手流程(超详细).docx

    TCP三次握手及四次挥手详细图解 相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. TCP三次握手 所谓三次握手...

    我终于搞懂了TCP的三次握手和四次挥手(图片案例详解)

    文章目录一.TCP简介二.TCP数据报结构三.TCP的三次握手四.TCP的四次挥手 一.TCP简介 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,...

    TCP协议簇及UDP的工作原理.docx

    该文档中讲述了IP、TCP、UDP等协议,描述了TCP的三次握手以及四次挥手过程。

    TCP协议详解及实战解析.pdf

    1.TCP是面向链接的协议,在数据传输之前需要通过三次握手建立TCP链接,当数据传递完成之后,需要通过四次挥手进行连接释放。 2.每一条TCP通信都是两太主机和主机之间的,是点对点传输的协议。 3.TCP提供可靠的、无...

    TCP协议传输机制

    TCP链路的建立和数据通信通过三次握手和四次挥手完成。为实现TCP数据包可靠传输,TCP协议利用滑动窗口进行流量,利用慢开始、拥塞避免、快重传和快恢复四种算法实现拥塞控制,并通过差错控制来确保数据包正确的到达...

    基于Socket通讯(C#)和WebSocket协议(net)编写的两种聊天功能源码.rar

    下面介绍最臭名昭著的三次握手四次挥手: 1 客户端发送syn报文到服务器端,并置发送序号为x。 2 服务器端接收到客户端发送的请求报文,然后向客户端发送syn报文,并且发送确认序号x+1,并置发送序号为y。 3 ...

    OSI七层模型、数据封装与解封装过程、TCP三次握手、四次挥手1

    2. 路由器根据路由表识别目标IP地址网段信息,确认是否可以进行转发,或是进行数据包的丢 1. 在TCP报头中端口号占16个比特位,那么它的范围就是2的16次方

    06-浏览器问题-网络问题-个人课堂总结

    从输入URL到页面加载的全过程、浏览器重绘与重排的区别、如何触发避免重排和重绘、304过程、浏览器的缓存机制 强制缓存 && 协商缓存、进程、线程和协程区别联系、网络问题、HTTP 和 HTTPS概念区别优缺点工作原理、...

    Linux网络管理相关的命令实践

    OSI七层模型和TCP/IP四层模型 IP地址分类 了解常见的网络相关协议 TCP三次握手和四次挥手 网络相关的调试命令 实战tcpdump和tshark抓包

    网络通信基本知识-网络基础

    HTTP请求和响应,HTTP协议 三次握手四次挥手 tcp_ip各层协议作用 tcp_ip协议(四层七层) TCP-IP协议族中各协议之间的关系 常见网络参数 交换机_路由器 网络通信过程 网络拓扑图

    网络概述(Python网络编程)

    Python网络编程 OSI模型、TCP/IP模型,端口,BS/CS架构,Socket编程。...IPv4、ipv6协议,面向连接的TCP:TCP协议是一种可靠的、一对一的、面向有连接的通信协议,通道的建立——三次握手、通道的关闭—— 四次挥手。

    大学生网络技术专业课件之运输层(精讲).pdf

    此外,课件还深入讨论了TCP的三次握手和四次挥手连接建立与终止过程,以及UDP的无连接特性。通过对比分析,学生可以更清晰地理解各协议适用的场景和特点。紧接着,课件详细讲解了窗口控制、流量控制、拥塞控制等高级...

    FELearningNotes:我的前端学习笔记

    LearningNotes第一部分基础知识cssh5 apih5 标签js apijs 堆与栈vue第二部分数据结构最小堆与最大堆Algorithm(算法)排序快速排序面试算法求两个区间的是否有交集二分查找从100万个数中取出最大的100个数第三部分前端...

    网络安全知识(1).doc

    TCP的安全 是基于三次握手四次挥手的链接释放协议(握手机制略)。 3. UDP协议:UDP 是User Datagram Protocol的简称,UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理 数据包,是一种无连接的协议。...

    网络安全知识入门.docx

    TCP的安全是基于三次握手四次挥手的链接释放协议(握手机制略)。 网络安全知识入门全文共18页,当前为第3页。UDP协议:UDP 是User Datagram Protocol的简称,UDP协议全称是用户数据报协议,在网络中它与TCP协议一样...

Global site tag (gtag.js) - Google Analytics