一.网络基础
1.网络发展
独立模式:计算机之间相互独立
网络互联:多台计算机连接在一起,完成数据共享
局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起
广域网WAN:将远隔千里的计算机都连在一起
2.认识“协议”
协议就是一种约定
计算机之间的传输媒介是光信号和电信号,通过“频率”和“强弱”来表示 0 和 1 这样的信息,要想传递各种不同的的信息,就需要约定好双方的数据格式
3.网络协议初识
3.1 协议分层
OSI七层模型
- 是一种框架性的设计方法,主要功能就是 帮助不同类型的主机实现数据传输
TCP/IP五层(四层)模型
TCT/IP是一组协议的代名词,它还包括了很多协议,组成了TCP/IP协议族
对于一台主机,它的操作系统内核实现了从传输层到物理层的内容
对于一台路由器,它实现了从网络层到物理层
对于一台交换机,他实现了从数据链路到物理层
对于集线器,它只实现了物理层
数据包封装与分用
封装类似于发送快递包裹,需要从内往外打包
分用类似于拆快递,需要从外往内拆包
- 不同的协议层对数据包有不同的称谓,在传输层叫做段,在网络层叫做数据报,在数据链路层叫做帧
- 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装
- 数据封装成帧后发到传输介质上,到达目的主机后每层协议在剥掉相应的首部,将数据交给对应的上层协议处理
- IP:定位网络中的某一台主机,在网络层包装IP地址,本机IP默认为127.0.0.1
- 端口号:绑定主机中的某一个应用程序,应用程序都是通过在传输层包装端口号发送/接收数据
- 五元组:源IP、源端口号、目的IP、目的端口号、协议号
- IP+端口号 可以定位到网络上具体的某一个应用程序 发送数据:五元组
- 接收端响应数:目的IP + 目的端口号 = 发送数据包中源IP+源端口号
为什么要使用协议号?
有的应用程序可能使用多个协议,为了使程序知道用哪种协议解析
MAC地址
MAC地址为物理地址
MAC地址是用来识别数据链路层中相连的节点
IP地址描述的是起点和终点
MAC地址描述的是从起点到终点的路途
网络互联(集线器)
场景:主机A 发送 FTP “下载文件”数据包 -----> 主机C
1.查找目的主机的MAC地址:
查找本机的ARP缓存表,通过目的IP查找目的主机的MAC地址
(1)如果找到了,直接发送数据包
(2)如果找不到,以广播形式发送ARP请求数据包,所有主机接收到ARP数据包,所有主机解析数据包,(通过IP判断)发现是请求自己的MAC地址,就返回一个数据包(ARP响应),如果不是请求自己的MAC地址,直接丢弃
3.2 ARP协议
ARP是一个介于数据链路层和网络层之间的协议
ARP协议的作用
ARP协议建立了主机IP地址和MAC地址的映射关系
在网络通信时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址
数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃
因此在通讯前必须获得目的主机的硬件地址