我是wireshark和一般网络的新手,但我正在监控我的应用程序的流量,我可以对其进行过滤,这样我就可以看到它何时主动传输它应该与服务器传输的数据,但wireshark显示这个:protocol=TCPlength=54info=56705>ms-wbt-server[ACK]Seq=1Ack=61Win=252Len=0每秒从我的应用程序触发到我的应用程序服务器。为什么我的应用程序每秒都在发送这些数据包?如果有任何帮助的话,这是一个c#.net应用程序。 最佳答案 这是一个TCPkeepalive数据包,不包含任何数据,但设置了A
我通过SSH(root访问)访问了我客户办公室网络内的一台机器。我正在我的计算机上编写一个需要集成到LDAP的PHP应用程序。LDAP服务器位于我客户端网络的另一台服务器上,不能从外部访问,但是我可以通过SSH连接到的服务器完美地访问它。我的问题是:无论如何我都可以创建一个隧道并在我的计算机上设置一个端口,以便使用我与网络上其中一台计算机的SSH连接将流量转发到LDAP服务器吗?谢谢!!!! 最佳答案 是的,ssh有一个“-L”选项来创建隧道。该选项采用3个参数,以冒号(:)分隔。本地监听端口,远程主机,远程端口。ssh-L9999
我使用的工具之一使用加密/解密通过网络发送数据。我正在修改该工具,我需要确保数据实际上是以加密形式发送的。是Wireshark和tcpdump正确的工具?他们在传输过程中的哪个点捕获网络数据包? 最佳答案 简短回答:数据包在软件网络堆栈的最末端被窃听(例如在Linux中)。在tcpdump、libpcap和linux内核3.12中挖掘代码的长答案:Wireshark和tcpdump都使用了libpcap,例如,http://sources.debian.net/src/tcpdump/4.5.1-2/tcpdump.c#L1472i
我想使用libpcap来捕获IP数据包,并且我想解析IPheader和tcpheader。`中有IP头和TCP头结构和IPheader相对容易解析,但是对于TCPheader,因为有tcp选项,常用选项有MSS、SACK(选择性确认)、时间戳、窗口缩放和NOP。我想要一个函数parse_pkt():structtcphdrtcp_hdr;structipip_hdr;parse_pkt(u_char*pcap_packet,structip*p_ip,structtcp*p_tcp);所以调用该函数后,如果我想知道源ip地址、序列号和MSS,scr_ip=ip_hdr.src_ipse
我昨天正在配置IPtable。我的同事刚问了我这个问题,我无法回答。我意识到我是一个比系统管理员更好的开发人员,并且需要改进这一点。那么它们是什么?他们有什么用?缺点/优点(如果相关)。 最佳答案 这些都是基本问题。UDP::用户数据报协议(protocol)1)机器之间没有端到端连接(可能在本地网络或互联网中的某个地方)。2)接收端接收到的数据不是像TCP那样是流式的,而是一个完整的数据block。3)在传输层不执行数据包顺序检查。也就是说,如果接收到的数据包出现任何错误,接收方将不会要求向发送方重新发送相同的数据包。4)由于上述
我相信如果你使用127.0.0.1流量永远不会离开NIC,但我想知道当你使用计算机的实际IP地址时是否也是如此。 最佳答案 不,它没有。您的操作系统将识别它是一个本地地址并在内部环回,即使该地址绑定(bind)到物理网络端口也是如此。作为一个简单的测试,拔下网线。您仍然可以在本地进行通信。(请注意,如果操作系统检测到电缆已被移除,则DHCP服务的地址可能会被撤销;您可能必须在尝试此测试之前配置静态IP地址。)此外,集线器(可能还有许多/大多数交换机)不会将传出数据包传回线路,因此“在线路上出线”也不适用于大多数网络设备。
情况:服务器调用accept()。客户端向服务器发送SYN。服务器获取SYN,然后将SYN/ACK发送回客户端。但是,客户端现在挂断/死机,因此它永远不会向服务器发回ACK。会发生什么?accept()是在收到SYN后立即返回,还是阻塞直到返回客户端的ACK?如果它阻塞,它最终会超时吗? 最佳答案 对accept()的调用会阻塞,直到它建立连接。除非并且直到3次握手完成,没有连接,所以accept()不应返回。对于非阻塞套接字,它不会阻塞,但也不会为您提供有关部分完成的握手的信息。 关于
我在搜索时看到,可以在同一台计算机上使用两个不同的程序,使用相同的端口和相同的网络接口(interface)通过网络进行通信,前提是一个使用UDP,另一个使用TCP。但是我没有得到很好的解释,它实际上是如何工作的,为什么这是可能的?多个程序是否也可以使用同一个UDP端口,因为UDP不在对等点之间建立真正的连接,而只是将数据包发送到一个地址?我知道使用TCP是不可能的,因为它会在服务器和客户端之间创建同步连接,但是UDP呢?如果可能,请详细解释,或链接一篇关于该主题的好文章。 最佳答案 其他答案是正确的,但有些不完整。IP(又名“IN
如果在两台主机(A和B)之间建立了TCP连接,假设主机A向主机B发送了5个八位字节,然后主机B崩溃(由于未知原因)。主机A将等待确认,但如果没有收到,将重新发送八位字节并减小发送方窗口大小。这将重复几次,直到窗口大小由于数据包丢失而缩小为零。我的问题是,接下来会发生什么? 最佳答案 在这种情况下,TCP最终会超时等待ack,并向应用程序返回一个错误。应用程序必须从TCP套接字读取/接收以了解该错误,随后的写入/发送调用也会失败。在TCP确定连接断开之前,写入/发送调用不会失败,它们会从应用程序中看到成功,或者如果套接字缓冲区已满则阻
在大多数TCPPUSH功能的描述中,都会提到PUSH特性不仅要求发送方立即发送数据(无需等待其缓冲区填满),还要求将数据推送到接收应用程序在接收端,没有被缓冲。我不明白的是为什么TCP会在接收端缓冲数据?毕竟,TCP段在IP数据报中传输,IP数据报是整体处理的(即,IP层在对携带任何给定段的IP数据报片段进行任何必要的重组后,仅将整个段传送到TCP层)。那么,为什么接收TCP层会等待将此数据传递给它的应用程序呢?一种情况可能是应用程序在那个时间点没有读取数据。但是,如果是这种情况,那么无论如何都不可能将数据强行推送到应用程序。因此,我的问题是,为什么PUSH功能需要规定有关接收方行为的