我对网络非常陌生,目前我正试图弄清楚与 OSI 堆栈相关的事情发生的顺序。我知道传输层获取数据流并将其转换为段,然后再将其交给网络层,在网络层中添加与 IP 地址相关的标头创建数据包,然后将此数据包传递到数据链路层,其中有标头和页脚添加包括 MAC 地址创建帧,然后最终传递到物理层,以便转换为位并沿网络发送。
我正在努力解决的部分是在过程中涉及某些协议的地方。例如,TCP 执行三向握手,假设在第 4 层(传输),这是否意味着在等待 ACK 之前将 SYN 发送到该层的目标机器,以便稍后可以从物理层发送数据?层?在物理层再次发送实际数据之前,SYN 是否必须沿着堆栈向下传输才能由物理层发送,然后 ACK 将备份主机的堆栈?
另一个例子是 ARP,当数据链路层发出 ARP 请求以查找目标机器的 MAC 地址时,这是在第 2 层创建帧之前发出的吗?
我不确定网络上的唯一通信是在物理层完成还是每个层都与与不同协议相关的网络交互,因为数据沿堆栈向下移动?
我一直无法找到有关事情发生的实际现实世界顺序的好的视频或图表,所以有人有建议吗?