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

server/2024/10/18 10:09:22/

✍个人博客: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.ppmy.cn/server/131707.html

相关文章

算法题总结(十五)——贪心算法(下)

1005、K 次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后,返回数组 可…

网络学习第二篇

认识网关和路由器 这里大家先了解一下什么三层设备。 三层设备 三层设备是指在网络架构中能够工作在第三层(网络层)的设备,通常包括三层交换机和路由器。这些设备可以根据IP地址进行数据包的转发和路由选择,从而在不同的网络之间…

Leecode刷题之路第19天之删除链表的倒数第N个结点

题目出处 19-删除链表的倒数第N个结点-题目出处 题目描述 个人解法 思路: todo 代码示例:(Java) todo复杂度分析 todo 官方解法 19-删除链表的倒数第N个结点-官方解法 前言 方法1:计算链表长度 思路: …

bat脚本banenr

飞出个未来班得 echo off echo .-. echo ( ) echo - echo J L echo ^| ^| echo J L echo ^| ^| echo J L echo …

【Golang】关于Go语言中的IO操作

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Spring Cache与Redis实现自动缓存处理:入门指南

Spring Cache与Redis实现自动缓存处理:入门指南 在现代Web应用程序开发中,缓存是提升性能的关键技术之一。本文将介绍如何在Spring Boot应用程序中使用Spring Cache和Redis实现自动缓存处理,帮助你快速入门这项强大的技术组合。 为什么选择Spring Cache和Redis? Spring Cac…

#pragma DATA_ALIGN地址对齐指令

背景描述: 在学习#pragma DATA_ALIGN时看到有句描述"地址的低几位一定为0",当时有点没明白是什么意思,后面才反应过来,这里记录下。 相关博客 个人理解: 以8字节对齐为例,地址是8的倍数,转换成二进制来看&a…

R语言绘制气泡图

气泡图是一种数据可视化图表。它通常在二维或三维空间中展示数据。两个变量决定气泡在平面或空间中的位置,第三个变量则以气泡大小呈现。能直观反映三个变量间关系,帮助用户快速理解数据特征和趋势,在数据分析和展示中广泛应用。 0x01 使用s…