TCP/IP是什么?OSI又是什么?

相信不少学过计算机网络的小伙伴对TCP/IP与OSI都不陌生,但很多时候有很混淆,他俩都是什么,有什么区别,为什么会有两套不同的体系,下面让我带大家通俗的理解一下。

1、TCP/IP是什么?

TCP/IP 是互联网的核心通信体系,由多种协议组成,用于定义计算机在网络中如何寻址、传输和交换数据。它以 TCP(传输控制协议)和 IP(网际协议)为核心,包含从底层的网络接口到上层的应用服务的完整协议族,是现代网络通信的基础标准。

2、OSI又是什么,与TCP/IP的关系是什么?

OSI 是一种理论性的七层网络模型,用于指导网络协议设计,定义的是功能层次和通信原则 ,但并没有具体规定协议实现。 而 TCP/IP 是其实际应用的四层实现体系,是一套真正实现了这些功能的协议体系。两者的功能大体对应,但 TCP/IP 将 OSI 的表示层和会话层合并进应用层,并在工程上更简化高效。如今互联网普遍采用 TCP/IP 协议族,OSI 主要作为学习和参考模型存在。因此两者的功能大体对应,但协议并非一一对应关系。具体如下图

3、集线器

起初,两台电脑或设备之间只需一根网线即可直接通信,但随着连接的设备数量不断增加,这种点对点的连接方式使网络拓扑变得复杂,且每台电脑都需要多个网口来连接其他设备。为了解决这一问题,人们发明了集线器(Hub) 。集线器能够集中连接多台电脑,使它们通过一台设备互相通信。当其中一台电脑发送数据时,集线器会将数据广播 到所有端口,由目标设备自行判断是否接收。它工作在OSI模型的物理层(第一层),不具备识别或转发数据帧的能力。

那怎么知道数据是谁发给谁的呢,这里就引入了MAC的概念,MAC 地址 (媒体访问控制地址)是网卡在局域网中的唯一硬件标识,用于数据链路层通信。通常为 48 位(6 字节)十六进制表示,前 3 字节表示厂商,后 3 字节由厂商分配。关于MAC有以下注意事项:

  1. 设备适用性

    凡是具有网络接口的设备都会有 MAC 地址,包括电脑、有线/无线网卡、路由器、交换机、IoT 设备,甚至虚拟网卡。

  2. 数量与对应关系

    一台电脑可以有多个 MAC 地址,对应其不同的网卡或网络接口(有线网卡、无线网卡、蓝牙、虚拟网卡等)。每块物理网卡通常只有一个 MAC 地址,但虚拟接口或软件修改可产生多个 MAC。

  3. 注意点

    "电脑的 MAC"并不是唯一标识,实际指某个网卡的 MAC。MAC 地址可以通过软件修改,但物理网卡出厂时通常唯一。

有了MAC后,在发送数据包时会在包头加入源MAC地址和目标MAC地址,集线器广播后每台设备都会收到并解析来判断是不是自己的。虽然集线器大大简化了网络连接,但由于其广播方式会导致带宽共享冲突问题,后来逐渐被功能更强的交换机(Switch)所取代。

4、交换机

当一台电脑向另一台电脑发送以太网帧时,交换机会先读取帧头中的 源 MAC 地址 ,并把这个地址与接收到该帧的端口对应关系记录到自己的 MAC 地址表 中。随后,它检查帧头中的 目标 MAC 地址

  • 如果目标 MAC 已经在表中,交换机就只把该帧转发到对应的端口(称为单播转发);

  • 如果表中还没有这个 MAC 地址(未知目的地址),交换机会将帧广播到除源端口外的所有端口;

  • 如果目标是广播或组播地址,则会根据情况进行全网广播组播转发

这样,随着通信的进行,交换机逐渐学习到整个局域网中各设备的 MAC 地址分布,从而实现点对点的数据转发,而不再像集线器那样把所有数据都发给所有设备。

交换机(Switch)是工作在 OSI 数据链路层(第2层) 的网络设备,用于局域网中帧的智能转发和流量管理。它根据 MAC 地址表 决定帧的转发端口,实现点对点通信,替代集线器(Hub)的广播方式,提高网络性能。


核心功能与算法

  1. MAC 地址学习(Learning)

    • 记录每个源 MAC 与入端口映射

    • 动态维护 MAC 表,适应网络拓扑变化

  2. 转发与泛洪(Forwarding / Flooding)

    • 目的 MAC 已知 → 单播转发

    • 目的 MAC 未知 → 泛洪到其他端口

  3. 老化机制(Aging)

    • 超时未活跃的 MAC 表项自动删除

    • 保证表项更新与拓扑适应性


常用协议与机制

协议 / 机制 功能 OSI 层
STP(Spanning Tree Protocol) 消除冗余链路环路,生成无环拓扑 数据链路层
VLAN / 802.1Q 将物理端口划分为逻辑网络,实现广播域隔离 数据链路层
LACP / 802.3ad 链路聚合,提高带宽与冗余 数据链路层
IGMP Snooping 监听三层组播报文,只转发到需要端口 数据链路层/三层协作
LLDP / CDP 交换机邻居发现,用于网络拓扑管理 数据链路层

高级交换机(多层交换机)

  • 三层交换机:在二层功能基础上增加 IP 路由能力,可进行 VLAN 间路由

  • 四层交换机:能识别 TCP/UDP 端口,实现负载均衡和流量控制


交换机的出现使局域网内部的设备能通过MAC地址高效通信,但它只能在同一网段内转发数据,无法识别IP地址,也无法隔离广播域。当网络规模扩大、需要连接不同子网或访问外网时,仅靠交换机就不够用了。于是引入了路由器,它工作在网络层,根据IP地址和路由表决定数据的转发路径,能隔离广播域、实现不同网络之间的通信,并成为局域网通向互联网的关键设备。

5、路由器

当一个数据包到达路由器时,路由器首先解封装链路层帧,读取其中的 目标 IP 地址 。然后,它在自己的 路由表 中查找这段地址所属的网段,判断应该从哪个端口(或下一跳)转发出去。如果目标地址就在本地直连网段内,路由器就通过 ARP 表 找到目标设备的 MAC 地址,重新封装成新的以太网帧后发送出去;如果目标不在本地网段,则根据路由表指向的"下一跳路由器"继续转发。每经过一台路由器,数据包都会被重新封装一次,以太网头部的源和目的 MAC 地址都会变化,但 IP 地址保持不变,直到最终到达目标主机。

一、路由表的建立方式

路由器的 路由表(Routing Table) 记录了"到哪个网段,应该从哪个端口或下一跳发送"的信息。它的建立有三种方式:

  1. 直连路由(Direct Route)

    当路由器的接口配置了 IP 地址并启用后,会自动知道该接口所在的网段。

    例如:接口 eth0 配置为 192.168.1.1/24,路由器自动生成一条路由:

    复制代码
    192.168.1.0/24 直连  via eth0
  2. 静态路由(Static Route)

    由管理员手动配置,用于指定特殊的转发路径。

    例如:

    复制代码
    ip route add 10.0.0.0/24 via 192.168.1.254
  3. 动态路由(Dynamic Route)

    通过动态路由协议(如 RIP、OSPF、BGP)自动学习和更新,能根据网络变化自动调整路径。


二、路由表的一般格式

路由表通常包含以下字段(简化版):

目标网络(Destination) 子网掩码/前缀 下一跳(Next Hop) 出口接口(Interface) 距离或优先级(Metric)
192.168.1.0 /24 ---(直连) eth0 0
10.0.0.0 /24 192.168.1.254 eth1 1
0.0.0.0 /0 192.168.1.1 eth2 10(默认网关)

当有数据包到来时,路由器会在表中寻找**最精确匹配(最长前缀匹配)**的条目,决定从哪个端口转发。


三、ARP 表的建立方式

ARP 表(Address Resolution Protocol Table) 记录了"IP 地址 ↔ MAC 地址"的映射,用于在链路层封装时找到目标的物理地址。

  • 当路由器需要向本地子网设备发送包但不知道其 MAC 地址时,会发出 ARP 请求广播

  • 目标主机收到后返回 ARP 应答,告诉路由器自己的 MAC。

  • 路由器就把这对 IP--MAC 关系存入 ARP 表(有超时时间,会自动老化)。

示例:

IP 地址 MAC 地址 接口
192.168.1.10 00:11:22:33:44:55 eth0

四、核心算法与协议(简要概述)

  1. 最长前缀匹配算法(Longest Prefix Match)

    查路由表时选择匹配掩码最长的条目,即最精确的路径。

  2. 路由算法(动态协议使用)

    • RIP(距离矢量算法):根据跳数判断路径优劣,简单但效率低。

    • OSPF(链路状态算法):每台路由器广播链路状态,构建完整拓扑,使用 Dijkstra 算法求最短路径。

    • BGP(路径向量算法):用于互联网自治系统之间的路由选择。

  3. ARP 协议:解析 IP→MAC。

  4. ICMP 协议:用于诊断(如 ping、路由错误反馈等)。


五、通俗总结一句话

路由表决定"往哪走",ARP 表解决"找谁发",动态协议让路由表能自动学习和更新,而核心算法(如最短路径、最长前缀匹配)则确保数据包总能走到正确的目的地。

相关推荐
周杰伦_Jay10 小时前
【网络编程、架构设计与海量数据处理】网络编程是数据流转的血管,架构设计是系统扩展的骨架,海量数据处理是业务增长的基石。
网络·golang·实时互动·云计算·腾讯云·语音识别
Jewel Q10 小时前
防火墙NAT策略处理流程
运维·服务器·网络
失重外太空啦10 小时前
NFS服务器的搭建
运维·服务器·网络
矮油0_o10 小时前
15.套接字和标准I/O
服务器·c语言·网络·网络编程·socket
ai旅人10 小时前
深入理解OkHttp超时机制:连接、读写、调用超时全面解析
java·网络·okhttp
我也要当昏君10 小时前
4.2 IPv4【2009统考真题】
网络·智能路由器
爱奥尼欧10 小时前
【Linux笔记】网络部分——网络层IP协议
linux·网络·笔记
秋已杰爱11 小时前
技术准备七:websocket
网络·websocket·网络协议