在 Internet 模型中有四层:链路 -> 网络 -> 传输 -> 应用程序。
我真的不知道网络层和传输层之间的区别。当我读到:
Transport layer: include congestion control, flow control, reliability ...
Networking layer: route data from A to B
因此,基于上述属性,我发现这两层之间存在一些重叠。
1)网络层决定将数据从A移动到B。但是,当数据知道如何从A移动到B时,术语“流量控制”“拥塞控制”意味着什么......?当数据包(和字节流在数据包中)已经知道跨网络移动时,它如何控制以及控制什么。
2)或者其他例子,传输层中的TCP协议(protocol)是流的ORDERED交付。但是,TCP 不决定如何移动数据,而是网络层。那么,TCP 能做什么呢?
所以,我无法理解这两个术语。请教我。
谢谢 :)
请您参考如下方法:
这些是抽象级别。
传输层 是决定使用 TCP/UDP 的地方。在这一层常用的协议(protocol)中,TCP 是可靠的,UDP 不可靠。根据所做的选择,相应的 header 会附加到您的数据包中。例如,TCP 只知道 SYN-ACK、三向握手机制,但不知道远程端点的地址,或通过网络获取数据包的机制。
拥塞控制,流量控制通过调节发送的数据包数量,帮助确保网络不会被数据包淹没。
现在,在附加 TCP/UDP header 之后,它移动到网络层。到这一步,远程端点的 IP 地址 根本不是数据包的一部分。正是在此步骤中,源和目标 IP 地址被添加到数据包中。这一层实际上知道远程端点。
Sender Receiver
----------- ------------
| | virtual link | |
| Transport | -----------------> | Transport |
| | | |
----------- ------------
| |
| |
----------- -----------
| | virtual link | |
| Network | ------------------> | Network |
| | | |
----------- -----------
| |
| |
----------- -----------
| | | |
| Physical | | Physical |
| | | |
----------- -----------
↓ ↑
|____________real link____________|
发送者的传输层数据是 确切数据由接收方的传输层接收。
随着数据包沿发送方向下传播,每一层都添加了自己的 header 信息,但所有这些信息都是 已删除 由接收器上的相应层。
优点是 虚拟链接已建立,如上图所示,而 真实链接只是在物理层。