我可以使用 traceroute 来查找从我的主机到远程主机的路由。我可以检查路线中路由器的品牌/型号吗?
例如,是cisco路由器还是华为路由器还是HP路由器等等...
谢谢!
我想在装有 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)
怎么处理这个问题?谢谢
我想知道TCP客户端是否可以使用相同的端口连接到不同的远程TCP服务器?
在网络编程中,有两个函数:sendto和send。当我们使用时,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 代理是否可能耗尽端口并必须重用端口?
假设我有一个域名,例如myproxy.com. 然后我有很多网站,比如kitty.myproxy.com,wow.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 服务器。谢谢!
如果一个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的字节重传吗?