持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情
1. 基于数据包通信方式
例如我们访问docker网站等web服务器,需要浏览器和服务器有一种协议吗,一般是http协议。
1.1 网络分层
然后有了协议之后,数据包如何打包呢,这涉及到网络分层概念:
目前一般Tcp/Ip五层用的比较多。
Http在应用层,主要传输HTML页面所需要的数据。
1.2 路由
接着数据包如何到达远程的服务器呢?这里就需要路由的概念了:
这个路由其实是很复杂的,有很多协议,这里就不展开了,但是这里需要关注一下IP地址的关系
1.3 IP地址
路由其实就是到达一个中间的节点,例如无线路由器,然后会继续看IP地址,在往对应地方跳。
公有IP地址可以访问互联网,但是是惟一的,不可复用。目前Ipv4已经快耗尽了。
私有IP地址可以重复使用,仅供内部使用。
这里私有IP地址如何访问互利网呢?这里就需要借助NAT技术:
这个技术作为一个翻译,例如校园网有多个出口,有公有IP地址,其他内部机器都是私有IP地址。接着出口路由器会做转换,记住私有地址和端口号翻译为公有的,然后发出去。返回的数据包也会查表翻译回去,回到发出的机器!
2. 两个工具Ping和telnet
通过ping验证对方IP地址能不能通。
注意有时候发现对方没有回复,这个不能保证是因为对方的原因,可能是本身,路由,机器防火墙等等原因。
可以验证地址上的对应端口服务是否可用。
上面第二天就是可以Ping通,但是telnet不行,可达但不可用,大部分是因为防火墙。
上述就说明了服务器是禁止ping的,但是服务是可以访问的
3. 抓包工具wireshark
Capture面板内可以到本地所有的网卡,包括本机,虚拟机,容器里面的。例如第一个wifi有一些曲线,表示这个接口上面有数据包,点击进去可以看详情:
我们刚才telnet的数据包也可以过滤看到:
\