三次握手
一次握手:SYN包
二次握手:SYN/ACK包
三次握手:ACK包
TCP连接关闭:四次握手,释放连接
功能:
1.FIN报文段占用一个序号;单纯的ACK报文段不占用序号.
2.TCP提供了半关闭功能:连接的一端在结束它的发送后还能接收来自另一端数据.
3.有些编程接口提供close来关闭TCP连接,提供shutdown加特殊参数来实现半关闭.
4.异常时强行关闭连接:连接复位–RST,发起端发RST报文段,双方立即停止传输,并退出连接.
四次握手
一次断开
二次断开
三次断开
四次断开
释放连接:另一种形式
TCP重置
当TCP连接中途突然断掉,使用RST标志位指出连接被异常终止或拒绝连接请求.

紧急数据和强迫数据发送
带外数据:源站不能按字节流的顺序而需要立即发给接收方并及时处理的数据(普通数据流中的紧急数据).
接收方收到URG报文段,立即把紧急数据交应用程序处理,然后再处理普通数据流.
通常,紧急数据从数据区最前段开始.但有些系统只传送1字节紧急数据,可位于数据区任意地方.
强迫数据发送:
应用背景:
通常,TCP为提高网络利用率,在缓冲区中积累够一个最大报文段容量的数据后才发送.
在交互环境或实时性要求高的场合,每条命令(甚至每个字符)希望及时传送.TCP提供推(PUSH)操作,以强迫发送当前数据流中的数据而不必等待缓冲区满.
应用方式:发送方将PSH置"1",以通知接收方尽快把该报文段数据交应用程序.
TCP的定时器
重传定时器:设定丢失重传的时间间隔.
坚持定时器:在接收方发出"0"窗口通告后,发送方为了防止死锁发生,用一个坚持定时器周期性地向接收方发送端口探察报文,防止"0"窗口通告后窗口恢复通告丢失后造成死锁.
保活定时器(间隔:2小时):在服务器端检测半开放的链接.如果一个给定的链接在两个小时内没有任何动作,则服务器会向客户端发送一个探察报文段,根据响应情况进行处理.
TCO端口扫描技术
**TCP实现的基本规则:**若SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包.
①全连接扫描:扫描主机用三次握手与目的主机指定端口建立正规连接.
实现方式:connect()函数调用,若端口打开则连接成功,否则失败.
优点:实现简单. 缺点:很容易被发现,目前通常禁止.
②半开放扫描(SYN扫描)=>全连接尚未建立:
发SYN报文到目的主机的目标端口
若目标返回SYN+ACK,则端口开放,否则回RST.
若端口开放,则发送RST给目标,从而终止连接.
优点:不容易被发现. 缺点:不能用socket编程实现.

③FIN扫描:
发送FIN报文到目标主机的目标端口.
若返回RST,则端口关闭,否则端口打开.
优点:不容易被发现. 缺点:不能用socket编程实现.
SYN Flood(DoS,DDoS)
发送大量伪造的TCP请求,填满呼入请求队列,则服务器无法响应正常的链接请求,并且CPU和内存资源最终被耗尽.
通用底层协议(TCP02)
版权声明:本文为weixin_43291459原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。