OSI(开放系统互连参考模型)七层模型
(为了分层解耦,通过接口互相调用)
(实际上这个七层是不存在的。没有这七层的概念,只是人为的划分而已。区分出来的目的只是让你明白哪一层是干什么用的)
下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主
传输层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分
而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。
主要功能:
应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP FTP SMTP SNMP DNS REDIS
表示层:数据的表示、安全、压缩。确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
会话层:建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话.
传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有TCP UDP.
网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP IGMP IP等.
数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。
物理层:建立、维护、断开物理连接。
IP协议:(在网络层实现)
IP地址(IPADDR) 192.168.150.11
子网掩码(NETMASK) 255.255.255.0
网关(GATEWAY) 192.168.150.2
ip地址和子网掩码按位与获得网络号:192.168.150.0(说明这个网络最多255个设备)
两个网络192.168.150.1和192.168.150.2通过路由器相连,那如何实现网络之间的通信?
通过下一跳实现。(在路由地址中,告诉了我们下一条的网关地址)
内网不需要下一跳,外网通过下一跳走出去。
如何下一跳:
route -n
目标 网关 子网掩码
192.168.10.0 0.0.0.0 255.255.255.0 (自己ipv4设置的)
0.0.0.0 192.168.10.1 0.0.0.0 (提供一个默认跳转的地址)
假如目的ip为220.181.38.150与目标IP进行按位与,如果与目标相同,匹配上了,就下一跳到该网关IP。
当前目的地址是220.181.38.150,如何交给192.168.10.1而不是交给10.2或者10.3
这时需要数据链路层了:(使用mac地址寻找下一条的地址)
arp -a(用于从 IP 地址中找出设备的硬件 (MAC) 地址)
(192.168.10.1) 位于 00:3c:50:10:18:37 [ether] 在 ens33
(192.168.10.204) 位于 b0:d5:9d:d6:41:ce [ether] 在 ens33
(192.168.10.103) 位于 e8:6a:64:2a:9e:ad [ether] 在 ens33
c为出发的pc,R为路由器,isp为运营商网络,S为目的地址。
在整个过程中,目的IP地址不发生变化,下一跳mac地址发生变化。