报文问路:1、不知道跳转默认路由器,2、知道路径,向对应路径发出报文,3、路口路由器,下一步就是目标主机在哪。
想要通信必须同在一个局域网,其实将公网就可以看作一个大型的局域网。
在同一个局域网内发送报文会被其他主机看到包括自己,如果发送报文的主机发现其他人,数据碰撞可能导致数据错乱无法避免,当然发送的主机也会知道,然后启动碰撞避免算法,发送主机进入随机休息时间,然后重新发送报文。
同一个局域网内的主机越少越好,避免碰撞,一个网络中报文越短越好, 传输数据时间短避免碰撞。
交换机:一个局域网我们分左右,
如果通信的机器在同一侧发送碰撞,就不会将碰撞数据传到另一侧
4的发生报文也不会影响到1 2 5 6区域的互相通信。
当然左右也是可以互相通信的,交换机就是为了减低报文碰撞的影响,与发生率
ip划分
过去
在过去ip简单的划分依据ABCDE类划分网络ip号,可是这样的划分是极大的对ip资源的浪费。
- A类 0.0.0.0到127.255.255.255
- B类 128.0.0.0到191.255.255.255
- C类 192.0.0.0到223.255.255.255
- D类 224.0.0.0到239.255.255.255
- E类 240.0.0.0到247.255.255.255
看似很多,但是如果只用这样的ip分配方法,70亿人都无法平均到,更何况大型计算机区域。并且如果这是大型的网络资源的浪费,如果我独占了一个A类ip网络号,只是用1台机器,剩下的2^16-1个ip资源全部都浪费了。
所以这个方法已经被摒弃了。
现在
现在我们使用子网掩码(subnet subnet)来细分,并且采用私网ip公网ip分开内网与外网极大的缓解了ipv4的资源紧张的情况,让我们看看怎么个事。
ip是网络号+主机号的。
网络号是为了表征区域的,网络号会在查找过程中会不断扩大,将其主机限制在小区域,然后查找。
怎么看待子网掩码:子网掩码也是一个32位的正整数. 通常用一串 "0" 来结尾; 将IP地址和子网掩码进行 "按位与" 操作, 得到的结果就是网络号。
这里主机的ip与其子网掩码按位&后得到了就是对于的网络号,根据其得到的网络号从其网卡出去。一般路由转发(我们的电脑也会也转发机制),一个路由器中存在一个叫做路由表的大小,其是为了网络路由转发的决策,决定通过那个口转发数据
来了一个报文ip为172.26.1.250,然后和在其路由表中查找,根据子网掩码,对应到了172.26.0.0这个网络号,就会从其网卡发出报文。
私网
如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上 使用任意的IP地址都 可以,但是RFC 1918规定了用于组建局域网的私有IP地址
- 10.*,前8位是网络号,共16,777,216个地址
- 172.16.到172.31.,前12位是网络号,共1,048,576个地址
- 192.168.*,前16位是网络号,共65,536个地址
- 包含在这个范围中的, 都成为私有IP, 其余的则称为全局IP(或公网IP);
私网ip不会出现在公网上,而是而是依托一个公网ip做数据的转发,所以,不同的公网ip下允许存在相同的私网ip号。
- 一个路由器可以配置两个IP地址, 一个是WAN口IP, 一个是LAN口IP(子网IP).
- 路由器LAN口连接的主机, 都从属于当前这个路由器的子网中.
- 不同的路由器, 子网IP其实都是一样的(通常都是192.168.1.1). 子网内的主机IP地址不能重复. 但是子网之 间的IP地址就可以重复了.
- 每一个家用路由器, 其实又作为运营商路由器的子网中的一个末端节点. 这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN口IP就是一个公网IP了.
- 子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级 替换, 最终数据包中的IP地址成为一个公网IP. 这种技术称为NAT(Network Address Translation,网络地 址转换).
- 如果希望我们自己实现的服务器程序, 能够在公网上被访问到, 就需要把程序部署在一台具有外网IP的服 务器上. 这样的服务器可以在阿里云/腾讯云上进行购买
ip传递路由NAT(NAPT)
路由的过程, 就是这样一跳一跳(Hop by Hop) "问路" 的过程. 所谓 "一跳" 就是数据链路层中的一个区间. 具体在以太网中指从源MAC地址到目的MAC地址之间的帧传输区间
这里采用了NAT技术,这个技术就是为了缓解ipv4不足的技术,巧妙地建私网和公网联系起来。
工作在网络层中,路由器将接收报文源ip替换为WAN口的ip,保证在最后,在公网中的ip不会重新私网ip号。
在私网访问公网时,依托NAT改变原ip,公网响应私网,找的入口路由然后NAPT找到实际对应的私网ip,就行响应。
代理服务器
正向代理
校园网就是最好的正向代理服务器代表,链接校园网的设备,向外界访问资源的时候,所有的请求都会经过该服务器,我们可以将其看成一个巨大的路由器,但是服务器允许缓存资源预设在代理服务器中,打个比方,2个主机同时访问抖音服务器,A主机先B主机后,A、B主机访问的资源相同,服务器在访问数据后会预留一段时间,当B再来访问时候,直接从代理服务器中获取资源,不用再去抖音服务器访问,大大的提高了我们的网络读写效率,并且正向代理服务器会检查访问的合法性,访问的内存合法性。
反向代理
依旧和路由器很像
反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理服务器中的内容发送普通请求,接着反向代理将判断向何处转交请求,并将获得的内容返回给客户端。反向代理对外的表现都是透明的,客户不知道自己访问的是代理服务器,客户端也不需要任何配置就可以访问。当我们配置好代理服务器后,反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
正向代理和反向代理区别
正向代理中 ,代理服务器和client同属一个网络,对server透明。正向代理需要配置在客户端;
反向代理中,代理服务器和server同属一个网络,对client透明。 反向代理需要配置在服务端;
实际上代理服务器在两种代理中做的事都是代为请求和响应,不过从结构上看正好左右相反,故称为正反向代理。