网络编程--网络理论基础(二)

网络通信流程

mac地址、ip地址

在网络中通讯,本质上都在依赖网卡进行通讯,mac地址唯一标识一张网卡,相当于一张网卡的唯一id号,所以,发送数据时,知道了发送端的mac地址以及接收端的mac地址,就可以实现两个设备的网络通信
而ip地址,是在网络环境中唯一标识一台主机,是网络层的标识,ip地址是可变的(由相关设备进行分配),并不像mac地址一样(出厂即固定),尽管ip是可变的,但是我们可以固定一台主机的ip,所以这并不影响通信时,ip与mac的对应,所以,就有了arp协议

arp协议

由于网络通信本质上是网卡在进行数据传输,所以,我们发送一个数据时,我们肯定知道发送端的mac地址,但是接收端,我们一般只知道其ip地址,且在应用层,是使用ip地址进行代码编写,并不能指定其mac地址,那该如何呢,这时就用到了arp协议,arp协议会根据目标主机的ip地址,在当前的网络环境中进行广播(可能是交换机(内网)、也可能是互联网),发送arp报文请求,而对应的ip主机会收到该arp报文请求,并回复一份arp报文,将自己的mac地址告诉发送端,这样,发送端就知道了接收端的mac地址,且发送端会缓存每次请求来的mac地址

交换机

在这里插入图片描述
交换机是两张网卡通讯的桥梁,一个交换机上有许多的端口,交换机的各个端口之间是可以互相通信的,而每个端口又连接着一个网卡,所以,网卡与网卡之间的通讯,实际上是通过交换机的端口来进行,交换机就是网卡与网卡通讯的桥梁

在这里插入图片描述
这个端口与网卡的mac对应表,称为mac地址表

在这里插入图片描述
当一个网卡想给另一个网卡发送数据包时,依据交换机,如何可以直接在当前交换机查询到目标端口,则直接从目标端口发送到目标mac地址,而如果查询不到,则将该数据群发,称之为泛洪。
之所以群发,是因为交换机本身也不是孤立的,交换机可以与其他多台交换机连接,形成一张大的连接网,这就叫网络,群发的话,数据就会被发送到别的交换机,只要目标mac在当前的网络中,就一定可以找到目标mac

路由器

简介

在这里插入图片描述
路由器分为LAN口和WAN口,LAN口用来接各种家庭中的设备,而WAN口用来接运营商提供的互联网,从而连接到互联网中
LAN也被称为局域网,WAN也被称为广域网

如果没有WAN口,那么路由器就是一台交换机,也是一个子网
而WAN口,实际上是另一台交换机,只不过这台交换机是全球通信的巨大的一张网,称为互联网,是另一个子网
而路由器就是网关,负责两个子网之间的通信的桥梁

子网划分

在这里插入图片描述
首先要清楚子网掩码,子网掩码默认为255.255.255.0,用二进制表示就是111111…11100000000,前24位都是1,最后8位是0
而一个ip与子网掩码相&的结果,就是其子网,如果两个ip与子网掩码相&的结果相同,那么就说这两个ip在同一个子网中

而相&的规则是,1 & x = x,0 & x = 0,基于此规则,我们可以得出结论,如果两个ip的前三段一样,那么这两个ip就是在同一个子网中,如
192.168.1.6与192.168.1.7是在一个子网中

可以知道,连接在同一个路由器LAN口的设备,属于同一个子网,也就属于同一个交换机

在这里插入图片描述
我们可以使用1的数量来表示掩码是多少,因为掩码除了1就是0,所以可以使用子网的前三段再加上/掩码(1的个数),来表示一个子网。

而子网中0越多,表示可使用的ip数量越多,对应的也就1越少,而1越少,根据“可以使用1的个数来表示掩码”的原理,1越少,掩码越小
所以,就有:
调小子网掩码->就可以扩大ip数量
调大子网掩码->就可以减少ip数量

网关

在这里插入图片描述
而tcp/ip协议规定,不同子网直接是不可以直接进行网络通信的,而担当起不同子网之间通信的桥梁,就是网关,网关会安装不同的网卡,分配配置上“适用于不同子网的ip”,这样,网关就可以负责不同子网之间的通信连接了

当发生端想要发送数据时,先判断目标mac的ip是否在子网,如果是,那么目标就是在交换机上的内网,则直接通过网卡发出,如果不是子网,那么就将目标mac地址改为网关的mac,发送给网关,之后网关通过路由表,查询到对应的子网,将数据以自己的mac地址为源,发送到目标端

上面的这个判断过程,就是路由,由路由器判断如何进行数据发送以及完成最后的数据发送

补充:网关关注于网络间的数据传输和协议转换,其作用是连接和中介不同的网络环境。数据传输:就是我们上面谈到的不同子网之间数据的传输。而我们要补充的是,网关还负责着不同协议直接的转换,如下图:
在这里插入图片描述
在网关上下,有着两种不同类型的协议,网关可以负责帮助在不同协议之间进行数据的传输

路由

在这里插入图片描述
在这里插入图片描述
如果没有WAN口,那么路由器就是一台交换机,也是一个子网
而WAN口,实际上是另一台交换机,只不过这台交换机是全球通信的巨大的一张网,称为互联网,是另一个子网
而路由器就是网关,负责两个子网之间的通信的桥梁

而路由器根据ip判断是通过内网还是通过网关,进行数据发送,并执行数据发送的行为,就是路由(可见上面“网关”的最后一段话)

总结

路由器内LAN口:子网,内网,相当于普通内部道路
路由器内WAN口:另一个子网,互联网,相当于贯通全国的高速公路
网关:路由器就担任网关的角色,相当于高速收费站,是普通内部路到高速,或者高速到内部路的关卡、桥梁

为什么互联网可以连接那么广,可以将他视为一个巨大的交换机,每个路由器的WAN口都对应其中一个端口,通过WAN口可以与任何一个接通LAN口的路由器通讯,而路由器又可以完成互联网到内网的转发,从而保证任何“连接了互联网”的主机可以访问任何“连接到互联网”的内网服务
在这里插入图片描述

为什么ip相同的主机在与同一个互联网服务通信时不冲突

在这里插入图片描述

公网ip

在这里插入图片描述
那是因为主机连接的路由器会有一个公网ip,发出时,将源ip改为路由器公网ip发出(这个操作就叫snat),服务器回发数据时,将发给公网ip,路由器接到数据后,将目标ip改成主机ip,发送到主机上,这样,同一个路由器下的不同设备,ip不可能冲突,而不同路由器下的设备,虽然ip可能相同,但是因为使用的是路由器的公网ip进行互联网通信,所以,正是由于路由器不同,公网ip才不同,就不会产生ip冲突了

对于同一个路由器下的不同设备,虽然ip不冲突,但是因为都是由路由器的公网ip转发通信,接收返回的数据时,如何区分

在这里插入图片描述

在这里插入图片描述
对于这个情况,发出时,snat时,不仅仅在路由器层面修改源ip,同时再修改源端口号,哪怕两个主机ip相同以及端口号相同,发出时,会以公网ip+不同的端口号进行发送,即,会将两个主机的端口在路由器的位置,修改成不同的端口,接收时,根据端口号,判断是哪个主机,然后再改回原来主机的真实ip+端口号

VPN

简介

VPN是虚拟专用网络,主要用途是建立一条数据传输网络通道,并且该通道是加密通道,可以保护数据不被互联网的其他节点窃取
其次,VPN可以代理IP地址,可以隐藏自己真实的IP,伪装成不同地域的IP
或者包装数据为合规数据,进而绕过防火墙的检查

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值