我听说,FTP 用于通过网络传输文件。还听说它使用 TCP 端口 20 和 21。因此 TCP 是面向连接的。我们有确认。如果传输丢失,我们应该能够继续。
但我的问题是,当我们下载 MP3 之类的文件时,如果连接丢失,我们需要再次下载文件。那么它不是使用 FTP 协议吗?它不是 TCP 吗?那么如果它是 UDP,您能解释一下它是什么类型的协议吗?TFTP?我不知道。
答案1
因此,TCP 是面向连接的。我们有确认。如果传输丢失,我们应该能够继续。
“面向连接”并不意味着使用它的传输可以自动恢复。“面向连接”只是意味着使用 TCP 的应用程序可以将其用作“管道” - 即向另一端发送任意长度的消息,然后 TCP 将确保消息以发送的顺序到达那里(如果发生错误则重新传输)。如果 TCP 连接由于一方因某种原因(即他们失去互联网连接、崩溃等)停止传输而超时,则第二个 TCP 连接本身不一定知道第一个连接的任何信息。应用程序软件使用 TCP 连接传输数据双方必须跟踪这一点并通过建立新的连接来支持这一点。
但我的问题是,当我们下载 MP3 之类的文件时,如果连接丢失,我们需要重新下载文件。那么这不是使用 FTP 协议吗?
我不知道你为什么会认为如果需要重新下载某些内容,就必须使用 FTP。HTTP 支持恢复中断的下载,但除了客户端之外,服务器也需要支持它。并非所有客户端和服务器都会始终支持所有协议的所有功能。以 HTTP 为例 - 通常你可以恢复中断的下载,但有些服务器不允许这样做。
这不是 TCP 吗?如果是 UDP,你能解释一下那是什么协议吗?TFTP?我不知道。
下载是否可以恢复与识别协议无关。许多协议都以这种方式运行,并且仅仅因为您的下载以这种方式运行并不意味着正在使用特定协议。