【Linux】linux网络知识

网关和路由器交换机功能的有哪些不同

【Linux】linux网络知识https://blog.csdn.net/pql925/article/details/85318994

一篇文章搞懂,内网和外网到底怎么通信?

http://m.it168.com/article_6045518.html

计算机网络 之 TCP和UDP的端口号解析

https://www.cnblogs.com/scutwang/p/3958128.html

【Linux】linux网络知识

有公网ip和私网ip,那么是怎么找到一个具体的主机的?

作者:匿各用户
链接:https://www.zhihu.com/question/56576553/answer/149648825
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

以下分析针对ipv41、找到公网主机是容易的。假如你的私网ip是192.168.1.156,网关(路由)是192.168.1.1你要访问百度。过程如下:你的访问请求经过域名解析确定了目标地址后,先到路由,路由判断目标主机是否在本网络中。如果在就广播出去,如果不在就将数据包转发给下一个路由,数据报中包含有源地址和目标地址,而且源地址会被替换成当前路由地址。下一路由接着如上操作,直到数据报最终到达目标地址。所以题主猜测的数据包中包含两个ip地址是正确的。至于mac地址,我稍微解释下。只有内网中用mac地址定位主机。上文说了如果路由发现目标地址在本网络中,就发广播。广播是如何发的呢?其实就是路由向本网络中特定的ip(被称为广播地址)发送一个寻人启事。具体为,路由向ip为255的地址上发一个广播:“mac地址为xxx的主机在不在?”。本网络中的所有主机都将收到广播消息,但只有mac为xxx的主机会回答:“在这呢”,其他主机都将丢弃该消息。这样就确定了在本网络中的目标主机地址。是时候解释下上文中“本网络”究竟是什么网络了。形象概括为:同一个路由下的直接主机就处于同一网络下。当然需要正确设置路由啦,至于如何正确设置路由,遵循ipv4协议,遵循nat协议规范呗。同ip地址,网络也是有地址的,我们常说的“网段”即为网络地址。网络地址跟子网掩码有关,子网掩码也确定了一个网络地址下最多所能容纳的主机数。更多网络知识,答主且自行学习研究吧,我在这里放个坑,赞多再答。看到这里,可能大家还有个疑问:一台主机多个应用同时访问不同主机如何保证都能正确获取数据的呢?这个时候就需要另外一个主角出场了,那就是端口号。我们的主机有端口号,路由也有端口号。当我们的终端主机向目标主机发送一个http请求时,会在本机随机开启一个端口作为传输通道,一旦请求结束再关闭该端口。每个请求用不同的端口读取数据,保证了应用之间的数据相互不干扰。2、找到内网主机过程是曲折的。有个专有名词叫做“内网穿透”。这种场景下,路由器的端口就显示出了强大的能力。好吧,再占个坑……手机码子真心不易,给个赞呗