关于网络的一些科普和笔记~

IP

IP地址是统一的地址格式,表示互联网上每一台主机和网络的逻辑地址,IP地址由纯数字组成,分为IPv4和IPv6两种,前者是由四段十进制的数字,从0.0.0.0到255.255.255.255 。后者则是八组16进制表示

在Linux中指向ifconfig指令的时候得到的参数如下:

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.234.130 netmask 255.255.255.0 broadcast 192.168.234.255
inet6 fe80::c48b:6823:dd50:f808 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:71:88:4b txqueuelen 1000 (以太网)
RX packets 1412 bytes 1463239 (1.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 439 bytes 62066 (62.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  • ens33是网络接口名称;
  • flags=4163<UP,BROADCAST,RUNNING,MULTICAST>表示该网络接口当前处于启用、广播、运行和多播状态;
  • inet 192.168.234.130表示该网络接口的IPv4地址为192.168.234.130;
  • netmask 255.255.255.0表示该网络接口的子网掩码为255.255.255.0;
  • broadcast 192.168.234.255表示该网络接口的广播地址为192.168.234.255;
  • ether 00:0c:29:71:88:4b表示该网络接口的MAC地址为00:0c:29:71:88:4b;
  • mtu 1500表示该网络接口的最大传输单元为1500字节;
  • RX packets 1412 bytes 1463239表示该网络接口自启用以来,收到了1412个数据包,共1463239字节;
  • RX errors 0 dropped 0 overruns 0 frame 0表示该网络接口自启用以来,没有出现接收错误、丢包、溢出或帧错误;
  • TX packets 439 bytes 62066表示该网络接口自启用以来,发送了439个数据包,共62066字节;
  • TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0表示该网络接口自启用以来,没有出现发送错误、丢包、溢出、冲突或载波错误。
  • lo那里是本地回环接口

域名

IP由于是纯数字组成,不方便记忆,所以产生域名

DNS

域名系统,作为域名和IP地址相互映射的分布式数据库,能使人更方便访问互联网,主要作用是将域名翻译为可被计算机识别的IP地址,这个过程就是域名解析

路由器

计算机网络设备,将数据通过打包一个个网络传送至目的地,这个过程称为路由。路由器连接两个以上个别网络的设备,在网络之间起到网关的作用。路由器通过读取每个数据包中的IP地址来决定如何传送

127.0.0.1

127开头的ip都是回环地址,说明发送给127的ip数据会发送回自己,传不出去的,外部设备也不能访问到本机

0.0.0.0

ping不通的,表示本机所有Ipv4地址,监听0.0.0.0的端口就是监听本机所有ip的端口

本机ip

本机IP通常仅指在同一个局域网内,能同时被外部设备访问和本机访问的那些IP地址(可能不止一个)。像127.0.0.1这种一般是不被当作本机IP的。本机IP是与具体的网络接口绑定的,比如以太网卡、无线网卡或者PPP/PPPoE拨号网络的虚拟网卡,想要正常工作都要绑定一个地址,否则其他设备就不知道如何访问它。

访问互联网上服务器过程

  1. 客户端向DNS服务器查询目标服务器的IP地址 客户端通过DNS(Domain Name System)服务器查询目标服务器的IP地址。DNS服务器根据域名解析出对应的IP地址,并将结果返回给客户端。
  2. 客户端与目标服务器建立TCP连接 客户端使用目标服务器的IP地址和端口号建立TCP连接。TCP是一种可靠的协议,它可以确保数据传输的准确性和完整性。
  3. 客户端发送HTTP请求 ,请求中包含了客户端想要获取的资源信息,如请求的URL、请求方法、请求头等。
  4. 服务器响应HTTP请求 服务器接收到客户端的请求后,根据请求内容生成HTTP响应,响应中包含了请求的资源信息,如响应状态码、响应头、响应体等。
  5. 客户端接收服务器响应 客户端接收到服务器的响应后,解析响应内容,获取所需的资源信息。如果需要,客户端可以对响应进行处理,如渲染网页、保存文件等。
  6. 断开TCP连接 当数据传输完成后,客户端与服务器之间的TCP连接被断开。客户端和服务器都可以继续与其他客户端或服务器建立连接,进行后续的数据传输。

封锁原理

封锁的实现方式包括DNS污染、IP封锁、HTTP代理屏蔽等。具体来说,在DNS污染中,中国政府会通过修改域名解析记录,使得用户无法正确访问被封锁的网站;在IP封锁中,政府会直接屏蔽被封锁网站的IP地址,从而使得用户无法通过访问IP地址来访问网站;在HTTP代理屏蔽中,政府会监控网络流量,对用户的访问请求进行过滤,从而防止用户访问被封锁的网站。

vpn作用及绕过方法

如果是因为IP封锁导致无法访问某个网站,使用VPN(虚拟私人网络)可以绕过封锁。因为VPN会建立一条加密的隧道,将用户的数据流量传输到VPN服务器,再由VPN服务器发送给目标网站。在这个过程中,VPN服务器的IP地址代替了用户本身的IP地址,从而可以避开被封锁的IP地址。

因为VPN服务器的IP地址通常不会被屏蔽,所以使用VPN可以有效地绕过IP封锁。当然,也有可能会出现VPN被封锁的情况,但是一些VPN服务提供商会尝试更新其服务器的IP地址以避免被封锁。不过需要注意的是,使用VPN绕过封锁可能会违反当地法律法规,所以需要谨慎使用。

使用VPN时,用户的本机IP地址将被替换为VPN服务器的IP地址。当用户访问被封锁的网站时,请求将首先被发送到VPN服务器,然后由VPN服务器代表用户发送请求。因此,对于被封锁的网站或服务器来说,它们只能看到VPN服务器的IP地址,而无法知道用户的真实IP地址。这就是VPN绕过IP封锁的原理之一。

网卡和网关

网卡是计算机中的硬件设备,通常是一块扩展卡或集成在主板上的芯片,用于连接计算机到网络。网卡负责处理数据包的发送和接收,以及将数据包从计算机传输到网络媒体(如以太网、Wi-Fi等)或从网络媒体接收到计算机。每个计算机都需要至少一个网卡来进行网络通信,而有些计算机可能有多个网卡,以支持不同的网络连接。

网关是数据包从一个网络传输到另一个网络的出入口。它可以是硬件设备,比如路由器;也可以是运行特定协议的计算机,负责将数据包从一个网络传输到另一个网络。

数据包

数据包发送和接受的过程:

  1. 程序生成数据包,传递给操作系统
  2. 操作系统发送数据包到网卡
  3. 网卡发送数据包到路由器
  4. 路由器将数据包发送到外网服务器,这里路由器起到了网关的作用
  5. 外网服务器接收数据包,处理请求,返回响应数据包
  6. 响应数据包通过路由器传回计算机,再通过网卡传递给应用程序

NAT 网络地址转换

这是一个可以改变设备ip的技术,通常路由器会执行这个技术,这样路由器下的所有设备的ip都会改变,变成一个公共IP,这样所有该路由器下的设备都会共享这个公共IP。这样做最直观的结果就是,如果有用户想从外网访问私人设备,他是访问不了的,因为这个用户只能看到一个路由器的公共IP,甚至连这个公共IP下有多少个私人设备都不知道,更别说访问私人设备了。