Questions tagged «tcp»

传输控制协议(TCP)是Internet使用的协议栈的低级部分。它直接位于IP层上方,负责确保重新发送丢弃的数据包。

3
终止在特定端口上运行的所有服务
我正在尝试编写一个脚本,该脚本杀死在特定端口上运行的服务。这是我的脚本: a=$(ps ax | grep 4990 | grep java | awk '{print $1}') kill -9 $a 这是一个Java程序。该脚本有时可以工作,但大多数情况下会神秘地失败。 还有其他方法可以杀死端口上运行的服务吗?我的港口是4990。
13 process  kill  tcp 

3
一个如何捕获虚拟接口上的流量?
我想捕获Linux虚拟接口上的流量,以进行调试。我一直在尝试veth,tun而且dummy接口类型; 在这三个方面,我都很难tcpdump显示任何东西。 这是我设置虚拟界面的方法: ip link add dummy10 type dummy ip addr add 99.99.99.1 dev dummy10 ip link set dummy10 up 在一个终端中,通过以下方式观看tcpdump: tcpdump -i dummy10 一秒钟,用以下命令收听nc: nc -l 99.99.99.1 2048 第三,使用发出HTTP请求curl: curl http://99.99.99.1:2048/ 尽管在2号航站楼中我们可以从curl请求中看到数据,但从中看不到任何数据tcpdump。 一个TUN / TAP教程澄清某些情况下,内核可能不会实际发送当一个本地接口上运行的任何数据包: 查看tshark的输出,我们什么都没看到。没有流量通过该接口。这是正确的:由于我们要对接口的IP地址执行ping操作,因此操作系统正确地确定不需要“在线”发送任何数据包,并且内核本身正在答复这些ping操作。如果您考虑一下,这就是您对另一个接口的IP地址(例如eth0)执行ping操作时将发生的情况:不会发送任何数据包。这听起来似乎很明显,但一开始可能会引起混乱(对我而言)。 但是,很难看到这如何适用于TCP数据包。 也许tcpdump应该以不同的方式绑定到接口?
12 networking  kernel  ip  tcp  tcpdump 

1
tcpdump从哪个网络堆栈级别获取其信息?
当我徒劳地尝试在此处修复故障的以太网控制器时,我尝试的一件事是在计算机上运行tcpdump。 我发现tcpdump能够检测到ping应用程序认为正在发送的某些ICMP数据包实际上不在线路上,即使它在同一台计算机上运行,​​也很有趣。我在这里复制了这些tcpdump结果: 14:25:01.162331 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 1, length 64 14:25:02.168630 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 2, length 64 14:25:02.228192 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 2, length 64 14:25:07.236359 IP debian.local > 74.125.224.80: ICMP …

1
在Linux中更改TCP RTO值
我想更改连接的TCP RTO (重传超时)值,我读过的书暗示我可以这样做,但没有揭示更改的位置和方式。 我已经看过这些/proc/sys/net/ipv4变量,但是没有一个变量与RTO相关。如果有人可以告诉我如何更改此值,我将不胜感激。

2
在Linux中不使用网络命令行的情况下,如何知道打开端口的列表以及拥有它们的进程?
我想知道嵌入式Linux中哪些进程使用了​​哪些端口。由于它是简单的嵌入式Linux,因此没有网络命令行,如netstat,lsof。(仅存在基本命令行,例如cat,cp,echo等)。 部分解决方案似乎是使用“ cat / proc / net / tcp”和“ cat / proc / net / udp”命令行。但是,我不确定这些命令行的打印列表是否显示了所有正在使用的端口,并且该列表没有显示哪个进程绑定到了特定端口。 任何意见,将不胜感激。

3
确定Linux下套接字消耗多少内存的公式是什么?
我正在做一些容量规划,我想知道是否有一个公式可以用来(从内存的角度)预测服务器上可以处理多少个TCP连接。目前,我只关心内存需求。 我认为公式中会显示一些变量: sysctl net.ipv4.tcp_wmem(最小值或默认值) sysctl net.ipv4.tcp_rmem(最小值或默认值) sock,sock_common,proto和其他按套接字数据结构的大小。 我不确定实际分配了多少tcp_wmem和tcp_rmem以及何时分配了该内存。在套接字创建时?一经请求?
11 linux  memory  tcp 

1
如何调查通过环回接口连接到服务器的TCP客户端端口上的随机重置
我有一个测试套件,该套件在localhost上初始化服务器,然后运行成千上万的压力测试,其中包括启动和停止连接到同一计算机上此本地服务器的客户端。我正在尝试查找客户端发送到服务器的RST的原因。 这是事件的顺序: 客户端初始化SYN 服务器发回SYN,ACK 客户端发送RST(而不是ACK和建立连接) 一个观察结果是,在许多情况下,服务器运行大约99%的CPU,尽管它在几秒钟/分钟后恢复正常。 最初,我认为这可能是因为客户端使用的是先前关闭的连接中的端口,该端口处于TIME_WAIT状态,因此当服务器在该连接上发送SYN,ACK时,客户端会发出RST。尽管我对为什么客户端应该在TIME_WAIT状态下使用端口表示怀疑,但是后来我使用的是旧的fedora核心4,并认为可能没有正确的TCP / IP实现:-)。 现在,我不认为这是原因,因为围绕解决上述问题所做的所有调整都无法缓解问题。仅供参考,以下是我尝试过的更改/etc/sysctl.conf: net.ipv4.ip_local_port_range = 1024 65535 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_rfc1337 = 1 net.ipv4.tcp_tw_reuse = 1 还有一点,这个问题并不一致。实际上,只有经过15到35个重新启动服务器并运行所有客户端测试的周期后,我才能重现此问题。 我没有所有可以想到的原因,所以请让我知道是否有人对可能发生的事情有任何想法。 封包详细资料 Date & Time No. Time Source Destination Protocol Length Source port Dest port Info 2014-06-25 14:49:45.378209 1032719 1858.494749 ::1 ::1 TCP 94 netview-aix-5 navisphere …
10 fedora  tcp  tcpdump  tcp-ip 

2
将stdin和stdout重定向到端口
我想要一个程序P,该程序可以从stdin&读取和写入stdout,但可以将其连接到nc或从任何端口读取并输出到另一个端口的任何程序。 # The reading is easy, here P reads from port 50505 nc -l 50505 | P 我该如何写回端口60606?

1
哪个类似Unix的系统真正提供/ dev / tcp特殊文件?
我知道这/dev/tcp/<host>/<port>是重定向中某些shell专门处理的魔术路径。但是根据man bash: 如果运行bash的操作系统提供了这些特殊文件,则bash将使用它们;否则,bash将使用它们。否则它将在内部模拟它们[...] 在我现在使用的Linux机器上,/dev/tcp特殊文件不存在,因此Bash会模拟它。但是,实际上是否存在一个类似Unix的系统,该系统确实提供了/dev/tcp与Bash支持的语义相同的特殊文件?

2
是否为iptables中的所有来源接受RELATED,ESTABLISHED是否被视为“过于开放”?
我经常看到该规则-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT适用。虽然我不是专家,但该行涉及到我。很明显,该规则允许所有流量,唯一的例外是必须已建立连接或与已建立的连接相关。 情境 我将允许22从子网中的服务器LAN 192.168.0.0/16或其他任何端口连接到默认的SSH端口。 SuperInsecureApp®在port上暴露一些东西1337,我将其添加到INPUT链中。 我添加了从所有来源conntrack接受ESTABLISHED和接受的规则RELATED 连锁政策是 DROP 因此,基本上该配置应该只允许来自LAN的SSH连接,同时允许来自世界的端口1337上的入站流量。 这就是我困惑的地方。请问conntrack以任何方式暴露出安全漏洞,将允许人们得到一个已建立的连接上1337(因为它是世界开放的),然后使用该连接来访问SSH端口(或任何其他港口为此事)?
9 security  iptables  ip  tcp 

5
如何确定TCP端口是否打开?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 6年前关闭。 我试图在C中实现套接字编程。当我尝试从客户端连接到服务器(Ubuntu)时,它显示诸如“连接失败”之类的错误。 所以我认为问题出在港口。我正在使用5454 / tcp端口进行套接字编程。 我怎么知道5454端口是否在监听?如果不是,那么我可以在Ubuntu中使用C进行TCP套接字编程的端口是哪些?这仅仅是端口问题,还是我的代码有问题或在LINUX Ubuntu中需要任何设置吗? 编辑: 代码段: int socket_send; struct sockaddr_in address; printf("\n Initialization Socket...."); socket_send = socket(AF_INET,SOCK_STREAM,0); if(socket_send == -1) { perror("\n Socket not created.Error:"); return 1; } printf("\n Socket created"); address.sin_family=AF_INET; address.sin_addr.s_addr=inet_addr(ip); address.sin_port=htons(5454); if(connect(socket_send,(struct sockaddr*)&address,sizeof(struct sockaddr))<0) { perror("\nConnetion failed.Error:"); return …
9 linux  tcp  socket 

1
/ dev / tcp在Linux中不存在
我正在将C / pro * c代码从UNIX移植到Linux。代码是: #define __NFDBIT (8 * sizeof(unsigned long)) #define __FD_SETSIZ 1024 #define __FDSET_LONG (__FD_SETSIZ/__NFDBIT) typedef struct { unsigned long fds_bits [__FDSET_LONG]; } __ernel_fd_set; typedef __ernel_fd_set fd_set_1; int main() { fd_set_1 listen_set; int listen_sd; int socket_id; FD_ZERO(&listen_set); socket_id = t_open("/dev/tcp", O_RDWR|O_NONBLOCK, (struct t_info *) 0); if ( socket_id …
9 linux  c  tcp 

2
Linux中最少的TCP MSS
Linux中的TCP MSS必须至少为88(include / net / tcp.h): /* Minimal accepted MSS. It is (60+60+8) - (20+20). */ #define TCP_MIN_MSS 88U 我的问题是:他们从哪里想到“ 60 + 60 + 8”,为什么?我得到20 + 20来自IP标头+ TCP标头。 编辑:仔细查看标题之后,公式对我来说是这样的: (MAX_IP_HDR + MAX_TCP_HDR + MIN_IP_FRAG) - (MIN_IP_HDR + MIN_TCP_HDR) 问题仍然存在:为什么?为什么Linux内核使用此公式,从而禁止(强制流)20个字节的TCP段?在这里想iperf。 EDIT2:这是我的用例。通过在套接字/连接上强制使用低MSS,堆栈发送的所有数据包的大小都将减小。我希望在与iperf一起进行数据包/秒测试时设置较低的MSS。由于此MSS的下限,我无法获得小于128字节(142字节的以太网帧)的IP数据包!我希望按照RFC 2544尽可能接近64字节的以太网帧大小。从理论上讲,这应该是可能的:18 + 20 + 20 <64。


3
生成TCP流量的工具
我想生成一个从端口0到端口65535的TCP通信。每个端口1个tcp数据包,两个数据包之间间隔1毫秒。生成器不应该关心是否存在TCP ACK。 是否有可以产生此类流量的工具? 是否可以使用iperf和脚本来做到这一点? 也可以在Windows上运行它吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.