这部分都是些理论的知识,不太好记忆,写篇博客加深一下印象吧。
网络分层
理论上说,是七层模型,分别是:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。但我们一般讨论的是五层或四层模型,分别是:应用层,传输层,网络层,数据链路层,物理层(四层模型中不包括物理层)。对每层的代表硬件,使用协议等一些其他的东西汇总在下面的表格中。
协议/技术 | 代表硬件 | 补充 | ||
应用层 | http、DNS、NAPT | 主机应用程序 | ||
传输层 | 源端口,目的端口 |
TCP、UDP | 主机端口号 | |
网络层 | 源IP,目的IP | IP协议、路由 | 路由器 | |
数据链路层 | 源mac,目的mac | ARP、MTU | 交换机 | |
物理层 | 0/1光电信号 | 集线器、网线 |
发送数据时,对数据进行封装,接受数据时,对数据进行分用。
网络传输流程
这里记录三种传输流程:网路互联,局域网,广域网。在理解这三种传输流程之前,需要一些知识储备:
(1)IP和MAC地址
MAC地址:也称物理地址、硬件地址。由网络设备制造商生产时烧录在网卡上,用于在网络中唯一标识一个网卡。一台设备若有多个网卡,则每个网卡都需要并有唯一一个MAC地址。
IP地址:IP协议提供的一种统一的地址格式,他为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此屏蔽物理地址的差异。有4个数字组成,每个在0-255之间,前三个是网络号,最后一个是主机号。
公有地址:由Inter NIC(因特网信息中心)负责,将这些IP地址分配给注册并向Inter NIC提出申请的组织机构使用,通过它直接访问因特网。
私有地址:非注册地址,专门为组织机构内部使用,以下列出留用的内部私有地址:
A类:10.0.0.0--10.255.255.255
B类:172.16.0.0--172.31.255.255
C类:192.168.0.0--192.168.255.255
IP与MAC的区别:
IP是路途总体的起点和终点;MAC是路途上每个区间的起点和终点。如下图:
网络设备进行数据传输时,硬件是通过MAC地址来发送数据包的。同一网段的网络号相同。
(2)网络设备的功能
主机:((端口号)它的操作系统内核实现了从传输层到物理层的内容)程序发送数据报时就知道五元组信息(协议号+源IP/端口+目的IP/端口)。DNS协议:将域名转为IP。查找顺序:本机缓存->DNS服务器->...上一级...->全球顶级域名服务器,若没有找到,表示没有该域名。
路由器:(实现了网络层到物理层)具有应用程序,可以处理NAT、NATP协议,故可修改网络层之上的传输层的数据报头(修改端口号)。他的WAN口提供公网IP的端口,连接公网上的设备,使用公网IP;LAN口提供私网IP的端口,连接私网上的设备,使用私网IP。
交换机:(实现了从数据链路层到物理层)只是转发数据报,所有数据报都是根据目的MAC发送。MAC地址表建立了MAC地址和端口映射,端口连接所有主机。
集线器:(实现了物理层)只是转发数据报,所有数据报都是广播发送到其他主机。
主机和路由器中有ARP缓存表,他是IP和MAC的映射表,通过IP查MAC。
了解了这些之后,对我们了解网络传输流程有很大的帮助,下面就正式开始聊传输流程了!
1.网络互联
场景:主机1通过IP+PORT访问主机3的http服务
流程如下:
(1)主机1通过查询自己的ARP缓存表来得到主机3的MAC地址;
(2)如果没有找到,广播发送ARP请求数据(源MAC,目的MAC:广播地址,FF:FF..,目的IP),其他主机接收并处理数据报,如果目的IP==自己IP,返回自己MAC,否则丢弃;
(3)更新本机ARP;
(4)发送http请求数据,由集线器广播发送给其他所有主机,如果目的IP==自己IP,处理,否则丢弃
网络互联存在冲突域/碰撞域:同一时间,多台主机同时发送数据报,集线器要把多个数据报发送给所有端口,总带宽和单个端口带宽有限,就会造成干扰。
2.局域网
2.1交换机
场景:主机1通过IP+PORT访问主机3的http服务
1-3步与网络互联一致,第4步有所不同,交换机接收到数据报后,查看目的MAC,通过MAC地址表找到对应的端口,将数据报发送给端口。
2.2交换机+路由器
场景:主机1通过IP+PORT访问主机4的http服务
流程:
(1)将目的IP和子网掩码按位与操作,得到网络号,对比网络号是否和自己在同一个网段;
(2)不在同一网段,这个数据自己处理不了,需要交给上级(路由器)处理;
(3) 发送数据到路由器:源IP+源端口号+源MAC+目的IP+目的端口+目的MAC(路由器)+协议号
(4)路由器处理数据报:将源MAC修改为自己的MAC;目的MAC修改为主机4的MAC(若没有,则广播找)
3.广域网
场景:主机1访问百度https://www.baidu.com
好了,这次总结就到这里,有不对的地方欢迎小伙伴们留言指正哦。