精华内容
下载资源
问答
  • linux 使用bash命令关闭TCP连接

    千次阅读 2021-01-11 09:50:02
    在进程中关闭tcp连接比较简单,直接调用socket的API即可关闭,或不发送心跳机制。 有时候为了测试异常环境,在不断网的情况下,如何使用bash命令关闭TCP的连接呢? 下面谈两种使用bash命令关闭tcp连接的方法: ...

    在进程中关闭tcp连接比较简单,直接调用socket的API即可关闭,或不发送心跳机制。

    有时候为了测试异常环境,在不断网的情况下,如何使用bash命令关闭TCP的连接呢?

    下面谈两种使用bash命令关闭tcp连接的方法:

    tcpkill命令

    1. 先安装dsniff包:sudo apt install dsniff

    2. 下载地址:http://pkgs.repoforge.org/dsniff/

    3. 验证是否安装成功:
      在这里插入图片描述

    4. 限制tcp连接:
      在这里插入图片描述

    5. 详细说明:
      在这里插入图片描述

    6. 简单示例:

    sudo tcpkill -i ens -9 host 127.0.0.1
    sudo tcpkill -i ens -9 port 8021
    
    1. 原理

    tcpkill的工作原理,实际上就是通过双向fake tcp rst包重置目标连接双方的网络连接,之所以tcpkill不会马上中断目标tcp连接,是因为伪造tcp rst包时,需要填入正确的sequence number,这需要通过拦截双方的tcp通信才能实时得到。所以运行tcpkill后,只有目标连接有新tcp包发送/接受才会导致tcp连接中断。

    iptables命令

    iptables是一个非常强大的命令,这里仅仅讲一下如何禁用和启动tcp连接

    禁用/启用

    iptables -A OUTPUT -d 39.156.69.79 -p tcp --dport 443 -j REJECT #禁用

    iptables -R OUTPUT 1 -d 39.156.69.79 -p tcp --dport 443 -j ACCEPT #启用
    iptables -I OUTPUT 1 -d 39.156.69.79 -p tcp --dport 443 -j ACCEPT

    查看规则

    iptables -S OUTPUT

    清除规则

    iptables -F (flush 清除所有的已定规则)
    iptables -X (delete 删除所有用户“自定义”的链(tables))
    iptables -Z (zero 将所有的chain的计数与流量统计都归零)

    展开全文
  • 关闭TCP连接的学问

    千次阅读 2011-07-11 23:41:34
    从TCP协议角度来看,一个已建立的TCP连接有两种关闭方式,一种是正常关闭,即四次挥手关闭连接;还有一种则是异常关闭,我们通常称之为连接重置(RESET)。  首先说一下正常关闭时四次挥手的状态变迁,关闭连接的...

            从TCP协议角度来看,一个已建立的TCP连接有两种关闭方式,一种是正常关闭,即四次挥手关闭连接;还有一种则是异常关闭,我们通常称之为连接重置(RESET)。

            首先说一下正常关闭时四次挥手的状态变迁,关闭连接的主动方状态变迁是FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT,而关闭连接的被动方的状态变迁是CLOSE_WAIT->LAST_ACK->TIME_WAIT。在四次挥手过程中ACK包都是协议栈自动完成的,而FIN包则必须由应用层通过closesocket或shutdown主动发送,通常连接正常关闭后,recv会得到返回值0,send会得到错误码10058。

            除此之外,在我们的日常应用中,连接异常关闭的情况也很多。比如应用程序被强行关闭、本地网络突然中断(禁用网卡、网线拔出)、程序处理不当等都会导致连接重置,连接重置时将会产生RST包,同时网络络缓冲区中未接收(发送)的数据都将丢失。连接重置后,本方send或recv会得到错误码10053(closesocket时是10038),对方recv会得到错误码10054,send则得到错误码10053(closesocket时是10054)。

            操作系统为我们提供了两个函数来关闭一个TCP连接,分别是closesocket和shutdown。通常情况下,closesocket会向对方发送一个FIN包,但是也有例外。比如有一个工作线程正在调用recv接收数据,此时外部调用closesocket,会导致连接重置,同时向对方发送一个RST包,这个RST包是由本方主动产生的。

            shutdown可以用来关闭指定方向的连接,该函数接收两个参数,一个是套接字,另一个是关闭的方向,可用值为SD_SEND,SD_RECEIVE和SD_BOTH。方向取值为SD_SEND时,无论socket处于什么状态(recv阻塞,或空闲状态),都会向对方发送一个FIN包,注意这点与closesocket的区别。此时本方进入FIN_WAIT_2状态,对方进入CLOSE_WAIT状态,本方依然可以调用recv接收数据;方向取值为SD_RECEIVE时,双发连接状态没有改变,依然处于ESTABLISHED状态,本方依然可以send数据,但是,如果对方再调用send方法,连接会被立即重置,同时向对方发送一个RST包,这个RST包是被动产生的,这点注意与closesocket的区别。

    展开全文
  • 一种关闭TCP连接的方法

    千次阅读 2012-08-03 09:46:45
    利用IpHlpApi.h中SetTcpEntry函数可以修改单条TCP连接的信息,我们可以将TCP连接状态设为已删除就可以达到关闭TCP连接的效果。 /* @param szIpAddr 远程连接ip地址 @param nPort 远程连接的端口号 */ void ...

    利用IpHlpApi.h中SetTcpEntry函数可以修改单条TCP连接的信息,我们可以将TCP连接状态设为已删除就可以达到关闭TCP连接的效果。

    /*

    @param szIpAddr 远程连接ip地址

    @param nPort 远程连接的端口号

    */

    void CloseTcpConnection(LPCSTR szIpAddr,int nPort)
    {
        PMIB_TCPTABLE pTcpTable = NULL;
        DWORD dwSize = 0;
        if (GetTcpTable(pTcpTable,&dwSize,TRUE) == ERROR_INSUFFICIENT_BUFFER)
        {
            //pTcpTable = (PMIB_TCPTABLE)new BYTE[dwSize];
            pTcpTable = (PMIB_TCPTABLE)malloc(dwSize);
        }

        DWORD dwRet = GetTcpTable(pTcpTable,&dwSize,TRUE);
        if (dwRet == NO_ERROR)
        {
            for (int i=0; i<pTcpTable->dwNumEntries; i++)
            {
                in_addr in;
                in.s_addr = pTcpTable->table[i].dwLocalAddr;
                cout<<inet_ntoa(in)<<":"<<htons(pTcpTable->table[i].dwLocalPort);
                in.s_addr = pTcpTable->table[i].dwRemoteAddr;
                cout<<" --- "<<inet_ntoa(in)<<":"<<htons(pTcpTable->table[i].dwRemotePort)<<endl;
                if (stricmp(inet_ntoa(in),szIpAddr) && (htons(pTcpTable->table[i].dwRemotePort) == nPort))
                {
                    MIB_TCPROW mTcpRow = pTcpTable->table[i];
                    mTcpRow.dwState = MIB_TCP_STATE_DELETE_TCB;
                    SetTcpEntry(&mTcpRow);
                }
            }
        }
        if (pTcpTable != NULL)
            free(pTcpTable);
    }

    展开全文
  • 一个网站有在线人数统计功能,对网站抓取数据时发现,他判断用户是否在线,是每45s通过tcp连接发送数据,并没有http请求。httpClient该怎么模拟用户在线,在api中没找到outputsystem的相关内容诶
  • linux关闭tcp连接工具--killcx

    千次阅读 2016-07-12 16:13:08
    Killcx is a Perl script to close a TCP connection under Linux, whatever its state is (half-open, established, waiting or closing state). ...killcx是一个在linux下可以关闭TCP连接的脚本

    http://killcx.sourceforge.net/

    Killcx is a Perl script to close a TCP connection under Linux, whatever its state is (half-open, established, waiting or closing state).

    killcx是一个在linux下可以关闭TCP连接的脚本,无论该TCP连接处于什么状态。


    亲测对于netstat -pan命令显示进程号为"-"的连接没有用。

    展开全文
  • TCP连接关闭

    千次阅读 2018-05-11 14:37:24
    TCP状态变迁图可知,假设发起主动关闭的一方(client)最后发送的ACK在网络中丢失,由于TCP协议的重传机制,执行被动关闭的一方(server)将会重发其FIN,在该FIN到达client之前,client必须维护这条连接状态,也...
  • tcp 连接关闭详解

    千次阅读 2014-03-28 19:41:53
    注:tcp关闭连接不区分客户端和服务端,哪一端口可以主动发起关闭连接请求。...上图是tcp连接主动关闭端的状态转换图: (1)应用层调用close函数发起关闭连接请求 (2)发送FIN到对端,关闭写通道,自己进入FIN_WA
  • TCP协议:Transmission Control Protocol 传输控制协议TCP是一种面向连接连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。 Socket:网络上的两个...
  • TCP连接关闭

    千次阅读 2017-11-02 11:47:30
    多线程多进程关闭连接的区别首先来看看close和shutdown两个系统调用对应的内核函数:#define __NR_close 3 __SYSCALL(__NR_close, sys_close) #define __NR_shutdown 48 __SYSCALL(__NR
  • TCP连接的状态与关闭方式,及其对Server与Client的影响 1. TCP连接的状态  首先介绍一下TCP连接建立与关闭过程中的状态。TCP连接过程是状态的转换,促使状态发生转换的因素包括用户调用、特定数据包以及超时...
  • 下面我们介绍典型的TCP连接的建立与关闭过程(不包括任何数据传输) 一、TCP连接的建立(三次握手) TCP连接的建立分为3步: 1.主动开启者(通常称为客户端)发送一个SYN报文段(即一个在TCP头部的SYN位字段置位...
  • TCP建立连接关闭连接的过程

    千次阅读 2018-03-07 18:11:56
    先来一张图看看整个连接关闭的过程: 各个状态的意义如下: LISTEN:侦听来自远方TCP端口的连接请求; SYN-SENT:在发送连接请求后等待匹配的连接请求; SYN-RECEIVED:在收到和发送一个连接请求后等待对...
  • TCP连接是全双工通信,主动方和被动方都需要自主关闭通信链路,TCP正常情况下连接断开会进行四次挥手(流程如上图所示): 1.由主动断开方发起FIN 2.被动方回复ACK 3.待被动方数据传输完成,被动方发送FIN 4.主动方...
  • TCP协议--TCP连接的建立和关闭

    千次阅读 2017-11-29 18:37:32
    《Linux高性能服务器编程》阅读笔记:  TCP连接的建立和关闭,也就是常说的三次握手和四次挥手,其模型可以示意为:   我们可以利用tcpdump命令观察这个两个过程。机器1(telnet服务器):Ubuntu14.04 IP地址为...
  • socket关闭函数:1、close()close只有在引用计数为0时,才会真正调用close(),否则只是引用计数减1 。...shuwdown可以只关闭套接字某个方向的连接,例如关闭发送,关闭接收,或两者都关闭。3、让套接...
  • tcp连接关闭详解和注意事项

    千次阅读 2014-10-14 17:28:38
    注:tcp关闭连接不区分客户端和服务端,哪一端口可以主动发起关闭连接请求。...上图是tcp连接主动关闭端的状态转换图: (1)应用层调用close函数发起关闭连接请求 (2)发送FIN到对端,关闭写通道,自己进入FIN_WA
  • 今天收到一位网友来信:在 simple 中的 daytime 示例中,服务端主动关闭时调用的是如下函数序列,这不是只是关闭连接上的写操作吗,怎么是关闭了整个连接?陈硕答复如下: Muduo TcpConnection 没有提供 close,...
  • TCP连接关闭的过程

    千次阅读 2017-09-15 22:17:57
    转载的链接处:TCP连接关闭 建立连接:三次握手 在 TCP/IP 协议中,TCP 协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。 图1 TCP三次握手建立连接的过程 客户端 A 发送 SYN 包(SYN=j)到...
  • TCP连接关闭过程笔记

    千次阅读 2008-03-30 14:25:00
    作者:fbysssmsn:jameslastchina@hotmail.com blog:blog.csdn.net/fbysss声明:本文由fbysss原创,转载请注明出处关键字:TCP协议 关闭连接前言:TCP协议的连接是全双工连接,一个TCP连接存在双向的读写通道。...
  • TCP连接的建立和关闭详解

    千次阅读 2017-04-07 10:29:18
    本文梳理了TCP连接的建立和关闭的一些细节,以及TCP连接的各种特殊状态的说明
  •  首先介绍一下TCP连接建立与关闭过程中的状态。TCP连接过程是状态的转换,促使状态发生转换的因素包括用户调用、特定数据包以及超时等,具体状态如下所示: CLOSED:初始状态,表示没有任何连接。LISTEN:Server...
  • TCP连接

    万次阅读 2018-05-24 15:48:55
    TCP连接的端点又叫套接字(socket),根据TCP协议的规定,端口号拼接到IP地址即构成了套接字,即套接字 socket = (IP地址:端口号)这样一来,TCP连接可以以下式子表示TCP连接 ::= {socket1, socket2} = {(IP1:...
  • TCP连接关闭—close和shutdown

    万次阅读 2016-07-31 15:23:47
    TCP连接关闭有两个方法close和shutdown,这篇文章将尽量精简的说明它们分别做了些什么。 为方便阅读,我们可以带着以下5个问题来阅读本文: 1、当socket被多进程或者多线程共享时,关闭连接时有何区别? ...
  • 进程外部断开TCP连接方式

    千次阅读 2019-06-06 14:20:03
    总结五种断开TCP连接方式 1.防火墙规则 可以设置iptables规则禁掉某个或者某些端口,但是对已建立的TCP连接无效,只是会让TCP收不到包。上层业务要是对长时间收不到数据有超时出来也可以实现断开连接功能 关闭端口...
  • TCP连接关闭过程

    千次阅读 2009-12-27 14:13:00
    TCP 三次握手建立连接 & 四次挥手断开连接
  • TCP连接关闭总结

    万次阅读 2010-01-24 11:23:00
    由于涉及面太广,只作简单整理,有兴趣的可参考《UNIX Networking Programming》volum 1, Section 5.7, 5.12, 5.14, 5.15, 6.6 以及7.5 SO_LINGER选项。...那么,关于套接字的关闭有以下几种情形:
  • TCP连接的同时打开和同时关闭

    千次阅读 2017-08-06 21:49:29
     在前面的内容中我们介绍了TCP连接管理中最常见的三次握手方式和四次挥手的方式。但是有可能A和B两端同时执行主动打开并连接对方或者同时执行主动关闭连接(尽管发生这种情况的可能性比较低低),这个时候的流程就略...
  • TCP连接的状态详解以及故障排查

    万次阅读 多人点赞 2014-08-20 07:06:38
    我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助。(总结网络上的内容) 1、TCP状态 了解TCP之前,先了解几个命令: ...3)、 sar -n SOCK 查看tcp创建的连接数 4)、tcpdump -iany...
  • TCP连接关闭 举个例子TCP建立连接、传输数据、关闭连接的流程 TCP协议工作在OSI的传输层,是一种可靠的面向连接的数据流协议。 每个数据包都包含序列号和确认号,发送数据包的同时确认已接收到的数据包 确认号 = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 386,517
精华内容 154,606
关键字:

关闭tcp连接的方式