四层模型:分别是应用层,传输层,网络层和链路层。
应用层:提供了应用程序之间相互通信的接口,允许用户访问网络服务。这一层定义了应用程序如何与底层网络进行交互。例如HTTP协议。
传输层:它处理数据的分段、传输、错误检查和流控制。它确保数据从源主机的一个进程传输到目标主机的另一个进程。例如TCP协议和UDP协议。
网络层:这一层负责数据包在不同网络之间的路由,即选择数据从源主机到目的主机的最佳路径。它处理逻辑寻址(IP地址)和数据包的转发。主要使用IP协议,它最核心的协议,负责数据包的封装、寻址和路由。
链路层:这是最底层的一层,负责将IP数据包封装成适合物理网络传输的帧,并进行物理传输。它处理物理寻址(MAC地址)、错误检测和介质访问控制。它关心的是数据在单个物理链路上如何传输。
数据封装和解封装过程:
发送方:
应用层生成数据。
传输层将数据封装成报文段/用户数据报,添加传输层头部(如端口号)。
网络层将报文段/用户数据报封装成IP数据包,添加网络层头部(如源/目的IP地址)。
网络接口层将IP数据包封装成帧,添加数据链路层头部和尾部(如源/目的MAC地址)。
物理层将帧转换成比特流,通过物理介质发送出去。
接收方:
物理层接收比特流,并将其转换为帧。
网络接口层解封装帧,去除数据链路层头部和尾部,得到IP数据包。
网络层解封装IP数据包,去除网络层头部,得到报文段/用户数据报。
传输层解封装报文段/用户数据报,去除传输层头部,得到数据。
应用层处理数据。
七层模型:物理层(第一层),数据链路层(第二层),网络层(第三层),传输层(第四层),会话层(第五层),表示层(第六层),应用层(第七层)。
分组交换(Packet Switching):分组交换是目前计算机网络中数据传输的主要方式。在分组交换中,发送方将要传输的完整报文(消息)分解成一系列较小的、固定大小或可变大小的数块,每个数据块称为一个分组 (Packet)。每个分组除了包含原始数据的一部分外,还会附带一个控制信息头部 (Header)。这个信息头部包括源地址,目的地址,序列号和其他控制信息。
分组交换的优点:
1.高效性:与电路交换不同,分组交换不需要预先分配固定带宽。多个用户可以共享网络资源,当某个用户没有数据发送时,其占用的带宽可以被其他用户使用,从而大大提高了带宽利用率。
2.灵活性:分组可以根据网络状况(如拥塞情况、链路故障)动态选择不同的传输路径,增强了网络的健壮性。
3.突发性数据传输 (Bursty Data):非常适合传输突发性的数据(即数据量变化大,发送时有时无的情况)。传统的电话网络(电路交换)不适合处理这种突发性数据,因为即使没有数据发送,也预留了带宽。
4.成本效益 (Cost-effectiveness):由于资源共享和更低的带宽要求,分组交换网络通常比电路交换网络更经济。
5.错误控制 (Error Control):由于数据被分成小块,即使某个分组损坏,也只需要重传该分组,而不是整个报文,降低了重传开销。
字节顺序:分为大端序(big endian)和小端序(little endian)。大端序中,地址的字节顺序和我们阅读习惯相符,例如0x0400,存储为0x04 0x00,而小端序对计算机而言更有意义,存储为0x 00 0x04。
IPV4:IPv4地址的总长度是 32位。这32位二进制数分成4个8位的部分,每个部分用一个0到255之间的十进制数表示。IP地址被分为网络部分和主机部分,网络部分是位于IP地址高位,主机部分位于IP地址低位。
子网掩码:子网掩码的形式和IPV4地址类似,例如255.255.255.0,255.255.252.0,255.128.0.0,这三个子网掩码分别是24位,22位,9位。通过判断IP地址按位与子网掩码的值是否相等,我们可以判断两个IP地址是否位于同一网络中。
MAC地址:物理地址,唯一标识一块网卡,在局域网内部唯一。为什么我们需要MAC地址,如果我们在链路层尝试去解析IP地址的话,是否就不需要使用MAC地址来决定帧的转发方向了呢?答案是NO。以太网并不只承载IPV4,它还能承载 IPv6、ARP、MPLS、甚至非 IP 的协议。如果这样设定的话,他就只能绑死在IP地址上了。并且由于MAC地址解析速度远快于IP地址的解析速度,也会使转发效率下降。并且由于MAC地址是扁平的,适合局域网内设备寻址,而IP地址是分层的,用来做全局路由。如果链路层都用 IP,就会增加局域网内部的复杂性(需要维护大量 IP 路由表)。
地址解析协议(ARP):ARP的功能就是,在局域网中,将IP地址解析为MAC地址。举个例子,在送外卖时,IP地址负责将我们送到对应的公司大楼,而MAC地址则负责让我们把外卖送到对应的工位中。在跨网段通信中,IP地址只负责将我们送到对应的网络中,然后就由MAC地址来接管数据。当主机A传送数据时,它会在ARP缓存表中先查看目标IP地址和对应MAC地址是否被存储。若主机不知道目标IP对应的MAC地址,则在局域网内广播ARP请求,让目标IP的主机回应自己的MAC地址,这之后会更新ARP缓存表。得知对应的MAC地址后,则用MAC地址封装帧发送数据,此时,不再需要进行广播。通过交换机可以做到单播。交换机是二层设备(链路层),核心是MAC地址表,帧到达交换机时,交换机会查看目标MAC。如果在MAC表中找到对应端口,直接把帧发送到对应端口(单播)。如果找不到,才做广播。