文章目录
网络层状体系结构和系统的对应关系
网络是操作系统的一部分,与操作系统有关系。
在系统的各个硬件内部会有“线”相连,进行数据的传输。网络和体系结构的差别就是“线”变长了。
而计算机网络本质是解决:
当“线”变长后,怎么把数据从一个机器交付给另一个机器的问题。
1、“转发”:要经过若干个线路,路由器转发
2、“定位”:定位目标主机
3、“重传”:数据有可能出现翻转或丢失
其中,怎么保证交付出没出错?怎么知道是哪台机器发送的数据?怎么进行数据传输可靠性保证?这些都是网络要掌握的。
一、网络发展历程
独立模式:计算机之间相互独立,数据交互交给人来操作
网络互联:多台计算机连接在一起,完成数据共享
局域网LAN:通过交换机和路由器将更多的计算机连接在一起
广域网WAN:将远隔千里的大量计算机都连在一起
二、协议
协议就是一种约定。
计算机之间通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式。
协议分层
分层的原因:
软件工程层面:叫做解耦,可维护性强,便于我们分批组装,形成新的功能。
网络的层状结构中每一层都有不同的功能,且任何一层出问题是不会影响其他层的。
层与层之间彼此间通过接口进行通信交互。
OSI七层模型
TCP/IP五层模型
三、网络传输基本流程
1、数据包封装和分用
封包(向下交付):给该数据添加协议报头
解包(向上交付):报头和数据分离
1、数据包 = 报头 + 数据(有效载荷)
2、报头也是数据,几乎所有的协议都要解决报头和有效载荷的分界问题
3、自底向上传输时,要确认自己的有效载荷需要交给上层的哪个协议,几乎所有的协议都要确认分离后,将自己的有效载荷交付给上层的哪个协议。——这个动作叫做分用。
4、局域网中,所有的主机可以直接通信,(任何一台主机发出的信息,同一局域网内所有的主机全部都能收到),在数据链路层有一个mac地址(也叫作网卡硬件地址 / 序列号),它是全球唯一的。
2、同一个网段内两台主机的文件传输
发送端在应用层添加应用层协议 —> 到传输层添加TCP首部 —> 到网络层添加IP首部(包含IP地址: 标识网络中不同主机的地址) —> 到数据链路层添加以太网首部(包含MAC地址: ) —> 接收端再依次自顶向下对各层协议进行分离,得到发送端发送的数据。
当有多个主机同时发送数据时,可能会产生干扰,这种现象称为碰撞。
局域网中有一个设备叫做交换机,当局域网中某一个区域发生碰撞,碰撞报文就不用再转发了,只会转发合法报文。
一个主机发送了数据,所有主机都能接收到该数据,此时:
每个主机要对接收到的MAC地址进行解析,判断该数据是否是发送给自己的。如果是,交付给上层,进行解包;如果不是,直接丢弃。
同一个局域网中,将数据从源地址发送到目的地址,这里的目的地址可以是该局于网中的某一台主机,也可以是该局域网中的所有主机,当目标主机是局域网中的所有主机时,称为广播。
发送数据时,将MAC地址设置为全F时表示广播发送。
3、跨网段的主机文件传输
跨网段传输时,有一个数据报头一定在不断变化:以太网帧结构的内容!(每一次经路由器时都要先向上解包,查路由表再,向下封包,此时目标mac帧就变了)
mac地址分为源mac地址和目标mac地址,IP地址分为源IP和目的IP。
在这过程中,IP地址是不变的,mac地址在不停的改变。
- 在linux中如何查看本机的IP、mac地址以及网络信息
指令ifconfig