AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[tcpip](server)

Martin Hope
v.doro2
Asked: 2022-02-08 03:21:11 +0800 CST

APIPA ARP 请求通过网络发送

  • 0

我们有约 200 台运行 Windows 10 的主机和约 40 台 IP 摄像头,它们都使用来自 10.100.0.0/16 的 IP 地址,几乎所有这些主机都向 169.254.0.0/16 发送 arp 请求。我们还有在 VMWare 设备上运行的虚拟机,其中一些也在发送这些请求。 来自wireshark的打印屏幕

众所周知,IP 摄像头有一些奇怪的网络行为,但普通 PC 一起请求 apipa - 非常奇怪。

我们的理论是:

  1. 可能是一位主机开始请求 apipa - 其余的都参与其中。
  2. 损坏的 NIC 驱动程序或操作系统映像或生成这些请求的某些软件

你的想法是什么?

windows networking tcpip
  • 1 个回答
  • 159 Views
Martin Hope
John
Asked: 2021-06-11 18:29:12 +0800 CST

在应用层回复收到的消息(在 TCP 上)告诉发送者消息已成功接收是没有用的?

  • 1

任何数据丢失都会被检测到并自动纠正,这就是为什么 TCP 也被称为可靠协议的原因。

换句话说,

传输层负责从源主机到目标主机的无差错端到端数据传输。

TCP确实保证是可靠的传输。提出一个问题,在应用层回复收到的消息(在 TCP 上传输)告诉发送者消息已成功接收是否多余(或无用,对不起我的英语不好)?

networking tcp tcpip
  • 1 个回答
  • 134 Views
Martin Hope
Cenkoloji
Asked: 2021-04-28 15:19:42 +0800 CST

Python 套接字:Linux 中的 TCP 错误,而相同的程序在 Windows10 上运行良好

  • -1

我正在尝试使用 python 套接字通过 TCP/IP 与商用电源设备进行通信。

我尝试在同一网络接口上同时使用虚拟 linux(centos8stream)和虚拟 windows10,它们都在同一台物理计算机上运行。两者都有python3.9。

我想象 tcp/ip 套接字在两个操作系统中都可以正常工作,但我只在 linux 中遇到了一些通信问题:

  • 几次尝试后,发送和接收之间的延迟变得更长(2 秒而不是 0.14 秒)
  • 有时我会超时,根本无法与设备通信。

我让 Wireshark 在两个操作系统中运行:

  • 在 Windows 中没有异常消息(很少有 TCP 重传)
  • 在 linux 中,一段时间后(或有时立即)wireshark 会被 TCP Dup Ack、TCP Fast Retransmission 和 TCP Spurious Retransmissions 淹没。

我的问题:

  1. 差异的根源可能是什么?我可以尝试任何套接字选项吗?
  2. 有没有办法比较linux和windows10中的网络参数?

连续读取设备标识的示例程序:

import socket
from time import sleep,time
HOST = '10.27.4.50'
PORT = 4444

#Create object and open the connection
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((HOST, PORT))

client.settimeout(5)

# Read identification
message=(b'*IDN?\r\n')

for i in range(5):
    start_time = time()
    client.sendall(message)
    rep=client.recv(1024)
    print("Trial {}, delay: {} seconds ".format(i,time() - start_time))
    sleep(1)

client.close()

视窗:

Trial 0, delay: 0.17121100425720215 seconds
Trial 1, delay: 0.10957813262939453 seconds
Trial 2, delay: 0.17148327827453613 seconds
Trial 3, delay: 0.13976049423217773 seconds
Trial 4, delay: 0.14109373092651367 seconds

linux(看到最后一条消息需要更长的时间才能收到响应,这对应于 TCP 错误的开始)

Trial 0, delay: 0.15080499649 seconds
Trial 1, delay: 0.143104076385 seconds
Trial 2, delay: 0.170531988144 seconds
Trial 3, delay: 0.183187961578 seconds
Trial 4, delay: 2.0480530262 seconds

注意:我还尝试了一台物理 linux 机器,也有同样的问题。

python tcpip wireshark socket
  • 1 个回答
  • 457 Views
Martin Hope
mathse
Asked: 2021-01-16 04:25:14 +0800 CST

从 255 IP 的登录尝试?(3.0.115.255)

  • 0

今天我看到一些来自不寻常 IP 的登录尝试:3.0.115.255,我问自己:怎么会发生这种情况,IP 以 255 结尾?我以为它是用于广播的-可以将其分配给一台机器吗?

问候

数学

iptables tcpip
  • 2 个回答
  • 50 Views
Martin Hope
Jonathan S. Fisher
Asked: 2020-12-19 14:44:05 +0800 CST

在水平分割 DNS 的情况下,当查询 DNS 服务器不受其控制的域时,DNS 服务器的行为是否正确?

  • 1

因此,我们的云提供商之一在 VM 之间提供了一个低延迟、零评级的“内部网络”选项。内部网络上的接口位于 10.xxx IP 空间中。当我们的一台服务器查询内部网络上另一台服务器的主机名时,我们希望它解析为内部网络上的地址,而不是导致传输记帐的公共可路由地址。

我们已经实现了一个小型服务器来执行此操作,当源 IP 是 10.xxx IP 时,它将返回内部地址。

我们不想做的是让我们的内部服务器成为我们虚拟机的唯一主 DNS 服务器。我们会让它成为客户端列表中的第一个服务器,然后是一个公共 dns 服务,如 1.1.1.1。

因此,如果在内部 DNS 中查询 google.com(我们不拥有),我们应该返回给客户端的正确响应是什么?我们应该简单地忽略请求还是应该返回 NxDomain 响应?

感谢您的任何建议!

domain-name-system internal-dns tcpip split-dns
  • 1 个回答
  • 128 Views
Martin Hope
abelard2008
Asked: 2017-03-23 06:45:01 +0800 CST

如何理解“A子网示例”?

  • 0

在图解的 TCP/IP 子网示例中,卷。1:协议,有图和表: 在此处输入图像描述

和 在此处输入图像描述

虚线长方形粗线下有Ethernet, subnet 140.252.13.32,表中有一列Net ID/SubnetId,140.252.1,140.252.13.32,140.252.13.32/64不知道是不是一个真实网络中路由器的IP地址(或者说DHCP服务器IP地址)?如果不是,它们是什么?

tcpip
  • 2 个回答
  • 442 Views
Martin Hope
PyGuy
Asked: 2017-02-05 10:43:53 +0800 CST

在 3 个单独的网络中 ping 一台具有 3 个 NIC 的服务器时路由循环

  • 0

我有这个服务器用于测试一些网络参数。它有 3 个独立的网卡,每个网卡的 IP 配置如下:

  • 192.168.10.150/30 吉瓦 10.149
  • 192.168.152.146/30 吉瓦 152.145
  • 192.168.32.10/30 吉瓦 32.9

我想分别 ping 每个网卡,并且我希望服务器从它到达的确切 NIC 中回答每个 ICMP 数据包。但是这样做时,ping 会给出 TTL 超出消息,并且 trace route 会在路由中显示一个循环。

routing networking tcpip ip-routing linux-networking
  • 1 个回答
  • 211 Views
Martin Hope
HEDMON
Asked: 2016-11-05 04:20:22 +0800 CST

调试 ISP 连接问题(Pfsense bogon 网络列表已过期)

  • 0

我可以从外部访问办公室(VPN、电子邮件等)。我在家里有来自 ISP(A) 的互联网,在办公室有来自 ISP(B) 的互联网。一切正常,直到我收到来自 ISP(A) 的电子邮件,他们需要更改我的公共 IP。从那一刻起,我就失去了与办公室的联系。

我从办公室检查了所有内容,我没有发现问题,更重要的是,我可以从其他地方毫无问题地连接,即使手机数据连接也可以连接,所以我不相信问题来自防火墙在办公室。

我联系了 ISP(A),他们告诉我一切正常,他们要求我联系 ISP(B)。我打电话给 ISP(B),他们询问了我与 ISP(A) 连接的“电话号码”,但我从 ISP(A) 获得的是带有 Ubiquiti 天线的无线连接 (WiFi),但 ISP(B) ) 坚持“每个 Internet 连接都有一个关联的电话号码”。现在我写信给 ISP(A) 询问该号码,但我真的不明白电话号码如何与 WiFi 连接相关联?我还没有答案。

为了尝试找到我尝试过的问题:

  • Telnet 到不同的端口,从不连接。同样,来自其他 ISP 的 Telnet 可以连接
  • Traceroute 和数据包在属于 ISP(B) 的 IP 中死亡,但我尝试从其他连接中发现数据包总是在同一个 IP 中丢失,我相信有东西阻塞了 ICMP。

我还能检查什么以及如何调试问题出在哪里?

更新:

默认情况下,Pfsense 不会记录所有规则,所以在我没有在日志中看到任何内容之前,根据规则定义,我相信一切看起来都很好。现在我开始记录所有内容,我看到防火墙将 IP 阻止为“bogon 网络”。具体来说,我得到:b

锁定从 bogons:3594 到来自 wan 的任何标签块 bogon ipv4 网络的 re 1 上的快速登录

我想我现在走的很好!欢迎任何评论

vpn connection networking isp tcpip
  • 1 个回答
  • 455 Views
Martin Hope
cardinal-gray
Asked: 2016-06-16 06:49:35 +0800 CST

执行“nginx reload”时 nginx 无响应

  • 0

在重新加载 nginx 时,我开始在消息日志中收到错误消息“端口 443 上可能出现 SYN 泛滥”,并且当时 nginx 似乎变得完全无响应(相当长一段时间),导致 zabbix 报告“nginx is down”,ping 0s。当时的RPS大约是1800。

但是,服务器在其他非 Web 端口(SSH 等)上保持响应

我应该在哪里查看以及应该显示哪些配置(sysctl、nginx)才能找到其根本原因。

提前致谢。

升级版:

一些附加信息:

$ netstat -tpn |awk '/nginx/{print $6,$7}' |sort |uniq -c
   3266 ESTABLISHED 31253/nginx
   3289 ESTABLISHED 31254/nginx
   3265 ESTABLISHED 31255/nginx
   3186 ESTABLISHED 31256/nginx

nginx.conf 示例:

worker_processes  4;
timer_resolution 100ms;
worker_priority -15;
worker_rlimit_nofile 200000;

events {
  worker_connections  65536;
  multi_accept on;
  use epoll;
}

http {

  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;

  keepalive_requests 100;
  keepalive_timeout  65;

}

自定义 sysctl.conf

net.ipv4.ip_local_port_range=1024 65535
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.all.send_redirects=0
net.core.netdev_max_backlog=10000
net.ipv4.tcp_syncookies=0
net.ipv4.tcp_max_syn_backlog=20480
net.ipv4.tcp_synack_retries=2
net.ipv4.tcp_syn_retries=2
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.netfilter.nf_conntrack_max=1048576
net.ipv4.tcp_congestion_control=htcp
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_no_metrics_save=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=0
net.ipv4.tcp_max_tw_buckets=1400000
net.core.somaxconn=250000
net.ipv4.tcp_keepalive_time=900
net.ipv4.tcp_keepalive_intvl=15
net.ipv4.tcp_keepalive_probes=5
net.ipv4.tcp_fin_timeout=10

UPD2

在大约 1800 RPS 的正常负载下,当我在 80 和 443 端口上将 nginx 上的积压设置为 10000,然后重新加载 nginx 时,它变成使用更多 RAM(使用了我的 4GB 实例中的 3.8Gb,并且一些工人被 OOM 杀死-killer),并且 worker_priority 在 -15 负载超过 6(而我的实例只有 4 个核心)。因此,该实例非常滞后,我将 worker_priority 设置为 -5,并将每个端口的 backlog 设置为 1000。目前,它使用较少的内存,峰值负载为 3.8,但是,nginx 在重新加载后仍然会在一两分钟内无响应。所以,问题依然存在。

一些netstat详细信息:

netstat -tpn |awk '/:80/||/:443/{print $6}' |sort |uniq -c
      6 CLOSE_WAIT
     14 CLOSING
  17192 ESTABLISHED
    350 FIN_WAIT1
   1040 FIN_WAIT2
    216 LAST_ACK
    338 SYN_RECV
  52541 TIME_WAIT
linux nginx tcpip netstat sysctl
  • 1 个回答
  • 236 Views
Martin Hope
Wotim
Asked: 2015-11-30 08:28:02 +0800 CST

TCP/IP - 为什么没有伪装的路由工作?

  • 0

我认为来自另一个子网的数据包总是被拒绝。但是,当我在两个不同的子网(s1 和 s2)中有两台主机(h1 和 h2)和一台激活了 ip_forward 并访问两个子网的路由器(r)时,我可以从 h2 ping h1。我了解数据包如何路由到 h1,但我不明白为什么 h1 接受来自另一个子网的数据包。如果伪装完成,我就清楚了。但是不伪装我就无法理解。

这是否意味着在 TCP/IP 协议中,如果来自另一个子网的数据包到达主机,它总是会被接受?所以没有路由器的问题只是发送主机没有发送目的地在另一个子网的数据包?

tcpip
  • 2 个回答
  • 206 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve