网络如何通信

网络模型

首先我们要了解用于通信的网络模型,分为OSI七层模型和TCP/IP四层模型。

OSI七层模型

应用层  |   表示层  |   会话层  |   传输层  |   网络层  |   数据链路层  |   物理层

应用层:网络服务与用户的接口,例如http协议

表示层:数据的表示格式,例如UTF-8的格式

会话层:建立、管理、终止会话,例如SSL协议

传输层:定义传输数据的协议端口号,例如TCP/UDP

网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,例如ICMP、IP协议

数据链路层:建立逻辑链接、进行硬件地址寻址、查错校验等功能,例如ARP协议

物理层:建立、维护、断开物理链接,例如传输的点信号

TCP/IP四层模型

应用层  |   传输层  |   网络层  |   网络接口层

应用层包括:七层模型中的 应用层  |   表示层  |   会话层

传输层:不变

网络层:不变

网络接口层:包括数据链路层  |   物理层

网络如何通信

网络通信与我们寄信类似,需要再数据中加上寄件人(源mac)、寄件人地址(源ip)、收件人(目的mac)、收件人地址(目的ip)附加上;

mac地址

mac地址时网卡的唯一标识,对比我们来说每个网卡有自己的身份证,不会重复,所以可以理解为寄件人。

我们在上层协议中时不用写目的mac地址的,我们如何获得对端的mac地址呢?

arp协议

通过arp协议。arp协议在发送数据包(此数据包包含了源mac  |   源ip  |   源端口  |   目的mac为填  |   目的ip  |   目的端口)之前发送的一个arp包。

arp包内包含了| 源mac  |   源ip  |   目标mac由全0表示  |   目标ip | 这个包属于网络层。

在数据链路层(将此包发送到哪儿)包括源mac和目标mac由全f表示广播,此时网络中所有的主机都会收到这个包,如果这个包的ip与自己的ip相同就生成回复报文填入自己的arp地址,再回发回去,收到数据包解析,将目标mac填入包中发出,顺便将mac和ip映射的关系填入arp表(存mac和ip的映射关系),之后我们就可以复用。
如果ip发生了变化,操作系统会广播一个免费arp包,其他电脑收到arp包之后就会更新自己的arp表。

但是由此衍生出来了arp攻击,由另一个ip的电脑X不断的发送免费arp包,包内的mac地址是自己的,但是ip是路由的,(相当于告诉别人某某某现在在我这里)这样网络中的arp表都会改变,这样交换机就会把你要发送的信息都发给电脑X,导致网络瘫痪,最好的解决办法是配置静态arp地址。

交换机

交换机的作用是将数据包发送到正确的位置,交换机中有一个mac和端口(比如你在家链接网络的机器都会有一个端口,通过mac和端口的对应关系才能找到发送到哪儿)的映射关系表,交换机只关心mac地址不关心ip。

路由器

交换机和路由器有什么区别?

路由器有LAND口多个和WAND口1个。

LAND口用于给一个区域的设备提供网络链接。

WAND口用于接入因特网。

如果不用WAND口路由器=交换机

WAND口会分配一个网关(分配的公网IP)

网关和路由

我们先了解子网的概念,IP&子网掩码的结果相同我们认为它们再同一子网。

而tcp/ip协议规定了不同子网不能直接通信,如果需要通信需要网关的转发。

首先我们要了解,根据ip判断如何发送数据,我们称之为路由,网关的ip地址是具有路由功能的设备ip地址。

例如如果不在同一子网,就会把发送的mac地址改为网关的mac地址发送,包中没有动,网关通过路由表查询到子网,再发送给目的地。

IP协议

如何获取ip?

通过DHCP协议

当一个不同子网中的相同ip,同时访问同一个网站,由于此网站不处于同一子网,不能直接访问(会造成arp表混乱mac地址和ip的映射关系),如何解决?

答案是要通过网关,所以先组织包发送到网关中,修改ip(称为SNAT 源地址转换技术),到达后服务器将IP对调回发,最后由路由器UNSNAT,再发到相应的地址。

当一个家庭中的不同ip访问相同网站,步骤开始一样,但是到了最后UNSNAT分辨不出谁是谁的包,如何解决?

答案是增加上层协议,例如TCP/UDP增加了ip+端口的映射关系。

如果你电脑上是服务器,要向外提供服务,公网发过来的请求不能直接到达内网,如何解决?

答案是路由器使用DNAT技术(目标地址转换技术)转发请求,例如访问公网ip的8080端口,转换为访问内网中一个ip的80端口。这个是要配置的。

DHCP协议

这里介绍自动获取ip。

首先,操作系统使用UDP协议通过68端口向67端口广播一包DHCP discover数据包用来了寻找DHCP服务器。

当DHCP服务器收到数据包后,封装一个DHCP offer包回发回去。

当收到offer包后,还要回复一个DHCP Request包(此处是因为可能收到多个服务器发送的offer包),最后由服务器回复一个ack包,ip分配成功。

ICMP协议

其协议有2中功能ping(询问报告功能)/traceroute(差错报告功能)

traceroute此功能可以看到路径的网关ip

DNS协议

用于域名解析,相当于别名。

当使用域名查询时,浏览器首先会向上级DNS服务器查询,成功返回ip地址,并在一段时间内可以复用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值