当前位置: 首页 > article >正文

【计算机网络 - 基础问题】每日 3 题(三十)

✍个人博客:https://blog.csdn.net/Newin2020?type=blog
📣专栏地址:http://t.csdnimg.cn/fYaBd
📚专栏简介:在这个专栏中,我将会分享 C++ 面试中常见的面试题给大家~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪
📝推荐参考地址:https://www.xiaolincoding.com/(这个大佬的专栏非常有用!)

88. TCP 连接一个不存在端口,会发生什么?

#一个窗口检测连接信息
sudo tcpdump -i any port 12345 -nn
#另一个窗口发起连接,连接一个存在的ip地址,但端口不存在
nc -v 82.157.234.205 12345
  • 如果有 bind IP 地址和端口,不管目的 IP 是回环地址还是局域网内外的 IP 地址,目的主机的传输层都会在收到握手消息后,发现端口不正确,发出 RST 消息断开连接;
  • 如果没有写程序 bind,单纯就是瞎发起连接,虽然 IP 地址存在,但是没有服务器程序运行,那么客户端就会因为重发第一次握手次数达到上限而超时。

当然如果目的机器设置了防火墙策略,限制他人将消息发到不对外暴露的端口,那么这种情况,发送端就会不断重试第一次握手。

发消息到给百度域名背后的 IP,且瞎随机指定一个端口 8080,抓包。

现象却不一致。没有RST。而且触发了第一次握手的重试消息。这是为什么?

这是因为 baidu 的机器,作为线上生产的机器,会设置一系列安全策略,比如只对外暴露某些端口,除此之外的端口,都一律拒绝。

所以很多发到 8080 端口的消息都在防火墙这一层就被拒绝掉了,根本到不了目的主机里,而 RST 是在目的主机的 TCP/IP 协议栈里发出的,都还没到这一层,就更不可能发 RST 了。因此发送端发现消息没有回应(因为被防火墙丢了),就会重传。所以才会出现上述抓包里的现象。

在这里插入图片描述

89. TCP 连接一个不存在的 IP 地址(主机),会发生什么?

#一个窗口检测连接信息
sudo tcpdump -i any port 12345 -nn
#另一个窗口发起连接,连接一个不存在的ip地址
nc -v 82.157.234.205 12345
  • 如果 IP 在局域网内,会发送 N 次 ARP 请求获得目的主机的 MAC 地址,同时不能发出 TCP 握手消息。
  • 如果 IP 在局域网外,会将消息通过路由器发出,但因为最终找不到目的地,触发 TCP 重试流程。

90. TCP 四次挥手过程是怎样的?

天下没有不散的宴席,对于 TCP 连接也是这样, TCP 断开连接是通过四次挥手方式。

双方都可以主动断开连接,断开连接后主机中的「资源」将被释放,四次挥手的过程如下图:

在这里插入图片描述


http://www.kler.cn/news/339941.html

相关文章:

  • 算法【更多二维动态规划题目】
  • vite学习教程03、vite+vue2打包配置
  • 如何在银河麒麟服务器中获取关键日志信息
  • wordpress在页面中调用另外一个页面的内容
  • 怎么将手机备忘录传送至电脑
  • 阿巴阿巴阿巴阿巴阿巴阿巴
  • 【SQL学习笔记】
  • 通过MySQL Workbench 将 SQL Server 迁移到GreatSQL
  • Cloud-Edge-Terminal Collaborative AIGC for Autonomous Driving
  • Nginx跳转模块之location与rewrite
  • 探索未来:hbmqtt,Python中的AI驱动MQTT
  • Android Handler消息机制完全解析-同步屏障(三)
  • 欢聚时代(BIGO)Android面试题及参考答案
  • STM32 通用定时器
  • LeetCode474:一和零
  • 【算法系列-哈希表】两个集合的交集问题
  • RemoteView(kotlin)
  • C#t:dynamic
  • 【大模型 AI 学习】大模型 AI 部署硬件配置方案(本地硬件配置 | 在线GPU)
  • C# WinForms 控制权限到按钮级别