`
whzhaha
  • 浏览: 85615 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多
  作为一个网络程序员,我们经常会接触到ICP/IP协议,我们也知道其TCP/IP协议的重要性,不管是网路安全还是程序连接我们也经常会碰到些问题,于是自己梳理下,做个记录。
   抓包工具推荐IRIS可以抓TCP/IP/UDP/HTTP等数据包,个人觉得很强大。
   查看机器TCP/IP连接表  netstat -n  能看到当前TCP/IP连接情况,以及状态。
netstat -an 可以查看非激活和激活的TCP/IP状态
关于TCP/IP三次握手和状态可以观看本图片    

我们在使用netstat -n时就能看到当前端口的状态
状态转换图中状态的描述:
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉
在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状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据,也就是ESTABLISHED状态,我们每次netstat -a 时看到最多的状态。
在上述过程中,还有一些重要的概念: 未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。
其中SYN,ASK是服务器客服端唯一标识使通信不被串掉
当然我们三次握手时可能会timeout也就是会产生如此状态,这对我们查问题比较有用SYN_SENT发送信号----FIN ---ITMED_WAIT --重试---close
到这里我们来理解下DOS攻击用TCP/IP语言我们可以称做SYN浑水,黑客一直去给服务器发SYN_SENT去握手,最后一直不去建立连接导致服务器一直在FIN ---ITMED_WAIT等待握手,并尝试N次连接如果期间不断发送就会造成很多连接导致服务器瘫痪。所以配置防火墙时要注意这些状况。注意:windows防火墙我们开放端口是要选择TCP还是UDP开放,如果选择错了连接也是无法进行的。
  • 大小: 49 KB
分享到:
评论

相关推荐

    TCP/IP调试小助手

    关于标签“网络协议”,TCP/IP(Transmission Control Protocol/Internet Protocol)是互联网上最基础的通信协议。它定义了电子设备如何交换数据以及如何建立和维护网络连接。TCP负责确保数据的可靠传输,而IP则处理...

    c++ TCP/IP服务器程序

    3. **绑定与监听**:使用`bind()`函数将套接字与特定的IP地址和端口绑定,然后调用`listen()`函数使服务器进入监听状态,等待客户端连接。 4. **接受连接**:当有客户端请求连接时,`accept()`函数会创建一个新的套...

    tcp/ip详解,卷2:实现源码

    《TCP/IP详解,卷2:实现源码》是网络通信领域的经典著作,它深入剖析了TCP/IP协议族的实现细节,为读者提供了丰富的实践指导。这本书的源代码部分更是为学习者提供了动手实践的机会,帮助他们更好地理解网络协议的...

    基于TCP/IP的socket编程

    在IT领域,网络通信是不可或缺的一部分,而TCP/IP协议族是网络通信的基础。"基于TCP/IP的socket编程"是一个深入探讨如何使用socket接口进行网络通信的主题。Socket编程允许应用程序通过网络发送和接收数据,它是...

    TCP/IP教程TCP/IP基础

    第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段...

    STM32单片机TCP/IP协议

    STM32单片机在物联网和嵌入式系统中广泛应用,而TCP/IP协议栈是其在联网通信中不可或缺的一部分。TCP/IP(传输控制协议/互联网协议)是一组用于规范网络通信的标准协议,使得不同设备之间可以高效、可靠地交换数据。...

    TCP/IP协议详解全三卷 下载

    TCP/IP协议是互联网通信的基础,它定义了网络设备如何互相连接并交换数据。这个协议族由多个层次组成,包括应用层、传输层、网络层和数据链路层,每个层都负责不同的通信任务。 《TCP/IP协议详解》这套书籍分为三卷...

    追踪linux TCP/IP 代码运行_光盘文件1

    7. **性能监控**:使用`tcpstat`、`iftop`等工具可以实时监控TCP/IP的性能指标,如连接状态、带宽使用、丢包率等,这对于分析和优化TCP/IP性能非常有帮助。 8. **内核模块编译与调试**:如果需要修改TCP/IP协议栈的...

    用TCP/IP服务器客户端通讯源代码(基于VC++)

    在本文中,我们将深入探讨如何使用TCP/IP协议在服务器与客户端之间进行通信,特别是基于Microsoft Visual C++(VC++)的实现。TCP/IP是互联网上最广泛使用的通信协议,为应用程序提供可靠的数据传输服务。 首先,...

    TCP/IP测试助手

    用户可以通过设置源和目标IP地址、端口号,以及发送的数据,直观地观察到连接状态的变化和数据的收发情况。 其次,UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,适用于实时性要求高的应用。...

    tcp/IP调试工具

    `tcp_helper`作为一款TCP/IP双向调试工具,其具体使用方法可能包括设置过滤规则来关注特定的连接,查看TCP连接的状态(如SYN、ACK、FIN等),追踪数据包的序列号和确认号,以及分析重传和拥塞控制策略等。...

    三菱FX5UJ和艾莫迅远程模块实现TCP/IP通讯,程序包含多种功能吗的实现

    在本文中,我们将深入探讨如何使用三菱FX5UJ PLC(可编程逻辑控制器)与艾莫迅远程模块通过TCP/IP协议进行通信,并实现多种功能。首先,我们要理解TCP/IP通讯的基础,然后逐步解析源码软件的实现细节。 TCP/IP...

    TCp/ip 传送大型文件 TCp/ip 传送大型文件

    根据给定文件的信息,我们可以提炼出关于TCP/IP协议在传输大型文件时的关键知识点。下面将对这些知识点进行详细的解析。 ### TCP/IP协议简介 TCP/IP(Transmission Control Protocol/Internet Protocol)是互联网...

    Delphi TCP/IP通信

    TCP/IP通信是网络编程的基础,它允许不同计算机之间的数据交换。在Delphi中,通过使用内置的Internet组件,如ServerSocket和ClientSocket,开发者可以轻松实现TCP/IP通信。 ServerSocket组件代表服务器端,用于监听...

    MODBUS TCP/IP master测试软件

    MODBUS TCP/IP是一种广泛应用于工业自动化领域的通信协议,它允许设备之间进行数据交换,特别是PLC(可编程逻辑控制器)和其他智能设备。本测试软件专为MODBUS TCP/IP主站功能设计,帮助用户验证和调试基于该协议的...

    GPRS.net.zip_.net socket TCP/IP_GPRS网络调试工具_TCP 调试_tcp/ip调试_网络调试

    在当今的信息化社会,网络通信技术扮演着至关重要的角色,其中TCP/IP协议栈是互联网的核心。在.NET框架下,开发者可以通过Socket API来实现网络通信,进行TCP/IP协议的调试,这对于网络应用的开发与优化至关重要。...

    tcp/ip实验简单客户机服务器程序

    tcp/ip 实验简单客户机服务器程序 tcp/ip 实验是计算机网络领域的一个重要实验,旨在让学生掌握tcp/ip 协议的基本概念和编程实现。下面是对给定文件的详细分析和知识点总结: tcp/ip 协议概述 tcp/ip 协议是一种...

    labview利用TCP/IP协议与PLC交互.zip

    "labview程序.pdf"则可能是关于如何在LabVIEW中建立TCP/IP连接并设计交互界面的指南。LabVIEW中可以使用“TCP/IP Socket”函数库来创建客户端或服务器端的应用程序,与PLC建立连接。用户可能需要学习如何设置IP地址...

    基于TCP/IP协议的网络编程

    在IT行业中,网络编程是构建分布式系统和互联网应用程序的基础,而TCP/IP协议栈则是网络通信的核心。本主题将深入探讨“基于TCP/IP协议的网络编程”,特别是如何利用C++语言和Windows API函数来实现这一目标。 TCP...

    modbus tcp/ip通信client实例

    Modbus TCP/IP是一种广泛使用的工业通信协议,它允许设备通过TCP/IP网络进行数据交换。在本文中,我们将探讨如何使用Delphi 7开发一个Modbus TCP/IP客户端,并通过提供的文件列表来理解项目的组成部分。 首先,...

Global site tag (gtag.js) - Google Analytics