TCP 是否知道 MAC 地址

网络工程 tcp 协议论 第 2 层 第 4 层 苹果电脑
2022-03-04 02:00:43

假设我想在端口 80 上建立客户端和服务器之间的连接。3 次握手是否知道服务器 MAC 地址?我的意思是:客户端发送 SYN 数据包到特定的 IP:端口和 MAC。作为回应,他从相同的 IP:port 但不同的 MAC 接收 SYN/ACK。这仍然有效吗?

1个回答

TCP 是否知道 MAC 地址

一点都不。TCP 是一种传输层协议,它不知道所使用的数据链路协议。一些数据链路协议(IEEE 协议)使用 MAC 寻址,一些(帧中继、ATM 等)使用其他寻址(DLCI、VPI/VCI 等),还有一些不使用寻址(PPP 等) .

事实上,TCP 可以运行在不同的网络层协议之上:IPv4、IPv6,甚至还有一个 RFC 可以在 IPX 之上使用它,尽管我从未见过它。甚至 IPv4 和 IPv6 也真的不知道所使用的数据链路协议,而数据链路协议也不知道它们承载的网络协议,而网络协议又不知道它们承载的传输协议。


您应该了解使用封装和抽象的网络堆栈的分层过程,以便各个层中的协议不需要知道上层和下层中发生了什么。