IP寻址需要同时知道IP地址和子网掩码,但是在通过ssh连接服务器时,只需要知道IP地址和端口号就可以了,ssh通讯为什么不需要子网掩码呢。在不知道子网掩码的前提下,可以正确找到IP对应的主机吗?
不需要,SSH(Secure Shell)客户端软件压根不知道子网掩码为何物。
不光SSH,任何通信软件,其中包括各种浏览器、微信、各种其它形形色色的软件,都不需要知晓通信对端的子网掩码。
既然与对方(目的地)通信,无需知道对方对方(目的地)的子网掩码,要它(子网掩码)何用?
谁是packet的发源(诞生)地,谁用子网掩码,这个子网掩码是谁的啊?
当然是发源地的子网掩码。题主Alice,试图SSH的网站,Alice的主机需要使用Alice主机网卡的子网掩码。
Alice的主机IP地址为192.168.1.2/24,知乎IP=103.41.167.234,服务端口默认= 22 (TCP)
Alice的主机拿24子网掩码长度(24 bit 位),去遮掩(左侧对齐)知乎IP = 103.41.167.234,被遮掩的数字(网段号) = 103.41.167。
知乎的网段号(103.41.167)≠ 自己的网段号(192.168.1)
不同的网段主机的通信,需要网关的帮助才可以。至于如何请求网关的帮助,发布的文章很多,不再重复。
Alice的主机IP地址为192.168.1.2/24,SSH另外一台服务器IP=192.168.1.3,服务端口默认 = 22 (TCP)
服务器的网段号(192.168.1)= 自己的网段号(192.168.1)
这是同一个网段主机之间的通信,很简单,只要用ARP请求对方的MAC地址即可。
Alice的主机IP地址为192.168.1.2/24,SSH一台服务器IP=192.168.1.2,服务端口默认 = 22 (TCP)
服务器的网段号(192.168.1)= 自己的网段号(192.168.1)
这是同一个主机进程之间的通信,很简单,packet从上层一路下行到达TCP/IP协议栈的IP路由模块时,被IP路由模块从transmit queue直接移到receive queue,然后到达TCP,再一路上行到端口22的服务器进程。
以上3个处理流程在coding层面完全是不一样的,这就是子网掩码的存在的价值,子网掩码是packet的发送方,用来决策packet究竟走以上3个流程的哪个流程。
原文始发于微信公众号(车小胖谈网络):ssh连接服务器需要子网掩码吗?
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/2427456.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论