草庐IT

Networking

全部标签

linux - 我可以使用静态 IP 检测已配置连接设备的网络和网络掩码吗

我正在运行带有有线网络接口(interface)的Linux设备。此接口(interface)的另一端插入另一个网络感知设备,该设备配置为使用一些静态IP地址和一些网络掩码。因此,我们有一个非常简单的网络,仅由两个设备和一根电缆组成,甚至没有在它们之间切换,什么都没有。任务是开始与另一台设备对话,我们需要使用ifconfig等设置网络。获取IP地址并启动我的程序,该程序使用该IP地址与设备。我知道我可以执行广播ping并获取电缆另一端设备的IP地址。这对我有用。但是要激活网络并进行广播ping,我需要知道网络地址和网络掩码。我当前的bash脚本看起来像ifconfig192.168.1

Linux:如何将整个数据包发送到另一台主机上的特定端口?

我使用libpcap捕获了一个TCP数据包,我想将整个数据包(不修改)发送到另一台主机上的特定端口(该主机有另一个嗅探器监听该端口)。有什么办法可以做到这一点吗?非常感谢! 最佳答案 您没有具体说明您使用的是哪种编程语言以及到目前为止您尝试过什么。将IP地址字段更改为目标IP,将TCP端口字段更改为您想要的端口。不要忘记更新两个校验和。如果你想要的是TCP转发,Linuxkernelalreadydoesthisforyou. 关于Linux:如何将整个数据包发送到另一台主机上的特定端口

networking - 当我使用 TCP 连接时,我应该发送 Keep alive 数据包吗?

我的问题是,我已经创建了一个TCP连接,当它停留约1小时而没有传输任何数据时,它已经与服务器断开连接,但它没有通知我它已断开连接,我是否应该发送保持事件数据包到服务器?或者我应该从服务器向客户端发送keepalive数据包吗?还是我应该同时发送给两者? 最佳答案 是的,你应该。几天前我创建了一个TCP套接字/服务器应用程序,我遇到了同样的问题。我通过开始发送保持事件数据包来修复它。如果你发送保活数据包,你的问题就会消失。我听说有人说操作系统会为你发送保活数据包,我对此不是很熟悉,但发送保活数据包对我来说很明确

networking - 理解TCP的慢启动

有点不好意思承认我对TCP慢启动的理解有点费劲,这本该是一个很简单的算法。考虑这种情况:sender有CWND=4并发送所有4个段接收方为每个收到的段发送一个确认(它没有使用任何类型的延迟确认策略)4acks快速到达发送方,在发送方的网络缓冲区中排队sender处理ack1,将cwnd递增到5,发送5个报文段sender处理ack2,将cwnd递增到6,并发送6个段(发送总数:11)sender处理ack3,将cwnd增加到7,并发送7个段(发送总数:18)sender处理ack4,将cwnd递增到8,并发送8个段(发送总数:26)因为acks在发送方的缓冲区中排队,所以发送方能够发送

sockets - 如何注入(inject) "Broken pipe"错误?

我正在为使用TCP套接字的网络程序运行测试。为了验证错误修复,我需要在套接字层重现“Brokenpipe”错误,但我不知道如何重现。任何想法?非常感谢。 最佳答案 'Brokenpipe'表示您已写入已被对等方关闭的连接。因此,让对方关闭连接。 关于sockets-如何注入(inject)"Brokenpipe"错误?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1840895

java - 为什么 java 发送一个大小大于最大 MTU 大小的 tcp 包并且它有效?

我通过发出以下命令从我的linux主机找到我的服务器的mtu值:ping-s1312my.sever.com-->100%successfulping-s1313my.sever.com-->100%failed所以我假设我的最大MTU是1340(1312+28)。但是,当我从我的java客户端捕获到该服务器的httppost时,我可以在wireshark中看到一个大小为1354的tcp包,并且整个请求/响应都是成功的。40.054168000my.ip->server.ipTCP13548059060[TCPsegmentofareassembledPDU]我想知道包大小>最大MTU

c# - 通过 LAN 发送数据最快的方法是什么?

现在我正在使用SocketSendFileAPI,通过任何网络发送文件或它的一部分。我可以通过lan使这个过程更快吗?我知道像TeraCopy这样的程序与使用CopyFileAPI的WindowsExplorer处理相比(我认为),这使得通过LAN处理文件的速度更快(有些人说速度提高了2倍)。我不知道他们是怎么做到的。你能给我建议吗? 最佳答案 您可以动态压缩数据,然后在通过网络发送后解压缩。GZipStream对这类事情很好,并提供了基本的压缩/解压缩示例。压缩当然会降低CPU性能,但您必须传输较少的数据,从而缩短传输时间。这个库

linux - 在 RedHat 5.1 (Tikanga) 中设置 IGMP 版本

我正在运行RedHat版本5.1(Tikanga)。uname-a产生以下版本信息:[root@barfoo]#uname-aLinuxbar2.6.18-53.el5#1SMPWedOct1016:34:02EDT2007i686i686i386GNU/Linux我有四台机器如上所述配置。我正在开发一个使用多播功能的应用程序,四台机器中的一台运行IGMP版本3。其他机器运行IGMP版本2。我想要的是IGMP版本2。我查看了所有“sysctlnet.ipv4”选项,虽然有些与IGMP相关,但没有一个允许我设置IGMP版本。事实上,“sysctlnet.ipv4”在运行IGMP版本3的机

C# TCP 客户端到服务器消息

我编写了一个在我的桌面上运行的C#TCP服务器,同时我有一个客户端在我的WindowsPhone上运行。效果很好,客户端可以连接到服务器。但我正在努力做到这一点,以便服务器可以接收来自客户端的消息。当我运行它时,服务器只在我发送字符串时收到一个数字。这是我的服务器代码。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;usingSystem.Net.Sockets;usingSystem.Net;usingSystem.IO;namesp

networking - c - netmap - Tun/tap 与 netmap/pf_ring/dpdk

Tun/tap设备会避免安装netmap/pf_ring/dpdk吗?如果tun/tap允许绕过内核,那不是一回事吗?或者那些代码带来了太多的优化,以至于他们超越了tunos绕过策略?最终目标是为了测试目的将tcp/ip从内核空间移植到用户空间。这里不是很明白谢谢 最佳答案 没有。对于用户空间tcpip实现,请参阅lwip或rumpkernel。您可能知道的dpdk/pfring/netmap是关于尽快将数据包发送到用户空间的。tun/tap是虚拟接口(interface)的东西。可能不是您想要的。