小编mis*_*yes的帖子

是否可以检测远程路由器的型号/品牌?

我可以使用 traceroute 来查找从我的主机到远程主机的路由。我可以检查路线中路由器的品牌/型号吗?

例如,是cisco路由器还是华为路由器还是HP路由器等等...

谢谢!

networking router routing

5
推荐指数
1
解决办法
1万
查看次数

在 /var/run/screen/S-root 中找不到套接字。使用“屏幕”时

我想在装有 Fedora 的机器上进行筛选,结果是:

   [root@kitch udp]# screen -ls
    No Sockets found in /var/run/screen/S-root.

    [root@kitch udp]# screen -ls listen_for_exception
    No Sockets found in /var/run/screen/S-root.
Run Code Online (Sandbox Code Playgroud)

怎么处理这个问题?谢谢

fedora gnu-screen

3
推荐指数
1
解决办法
2万
查看次数

TCP客户端可以使用相同的端口连接到不同的远程TCP服务器吗?

我想知道TCP客户端是否可以使用相同的端口连接到不同的远程TCP服务器?

在网络编程中,有两个函数:sendtosend。当我们使用时,send我们不需要指定目的地。这似乎意味着一个连接的 TCP 套接字只能与一个(源 IP、源端口、目标 IP、目标端口)4 元组相关。

我可以做类似的事情吗:

 sockfd=socket(AF_INET,SOCK_STREAM,0);

 bzero(&cliaddr,sizeof(cliaddr));
 cliaddr.sin_family = AF_INET;
 cliaddr.sin_addr.s_addr=inet_addr(local_ip);
 cliaddr.sin_port=htons(32000);

 bind(listenfd,(struct sockaddr *)&cliaddr,sizeof(cliaddr));
 connect(sockfd, (struct sockaddr *)&servaddr1, sizeof(servaddr1));
 connect(sockfd, (struct sockaddr *)&servaddr2, sizeof(servaddr2));

 sendto(sockfd, buf, len, 0, (struct sockaddr *)&servaddr1, socklen);
 sendto(sockfd, buf, len, 0, (struct sockaddr *)&servaddr2, socklen);
Run Code Online (Sandbox Code Playgroud)

例如,http 代理是否可能耗尽端口并必须重用端口?

networking tcp

3
推荐指数
1
解决办法
7949
查看次数

服务器是否有可能知道哪个客户端(IP)对其域名进行了 DNS 查询?

假设我有一个域名,例如myproxy.com. 然后我有很多网站,比如kitty.myproxy.comwow.myproxy.com 我想为域名配置一个权威的DNS服务器。

我希望,如果用户想要访问这些网站,当浏览器发送 DNS 查询时,该 DNS 查询最终会到达权威的 DNS 服务器。这样,权威机构就可以获得进行DNS查询的主机的IP。

我的期望是:这些网站的所有 DNS 查询都必须发送到权威 DNS 服务器,这样我才能知道进行 DNS 查询的所有主机。有可能吗?

恐怕其他一些 DNS 服务器会缓存 DNS 记录,因此这些 DNS 服务器会回答 DNS 查询,然后这些查询不会转发到权威的 DNS 服务器。有没有可能防止这种情况?

注意:我正在做研究工作。我的目标是做一个代理。有许多 Web 服务器在代理上注册。只有代理知道这些 Web 服务器的 IP。当浏览器想要访问这些 Web 服务器之一时,它可以从 DNS 查询中获取代理的 IP。然后它连接到代理。我希望代理可以在TCP SYN到来时准确知道这个浏览器想要访问哪个Web服务器(在HTTP请求之前,实际上,通过解析HTTP请求,代理可以知道浏览器想要访问哪个Web服务器) . 因此,如果 Web 浏览器执行 DNS 查询并且代理知道该查询,则代理可以缓存 Web 服务器和浏览器主机 IP 之间的映射。当 TCP SYN 到来时,代理立即检查映射并了解浏览器实际想要访问的 Web 服务器。谢谢!

networking dns domain

2
推荐指数
1
解决办法
9280
查看次数

是否应该确认每个 TCP 数据包?

如果一个tcp程序A向另一个TCP程序B发送两个数据包,数据包1:序列号从1000到2000;数据包 2:从 2000 到 3000 的序列号。

一般 B 应该回复 2 个 ACK​​,一个是确认数据包 1,另一个是确认数据包 2。现在,如果 A 只收到第二个 ACK​​,A 是否还会等待第一个 ACK​​?

我知道 TCP 是面向字节的流协议。所以A不应该等待第一个ACK,对吗?理论上是这样的,真正实现的TCP栈呢?

顺便说一句,我有一个奇怪的问题。如果 A 向 B 发送一个确认序列号为 3001 的 ACK(这是用于确认数据包 2)。但是中间有人将ack seq号修改为2501,也就是说,B确认了半个TCP数据包。那么A会从对应seq 2000或2501的字节重传吗?

networking tcp

1
推荐指数
1
解决办法
6104
查看次数

标签 统计

networking ×4

tcp ×2

dns ×1

domain ×1

fedora ×1

gnu-screen ×1

router ×1

routing ×1