我刚从网络编程考试中回来,他们问我们的一个问题是“如果要流式传输视频,您将使用TCP还是UDP?对存储的视频和实时视频流进行解释”。对于这个问题,他们只是希望对存储的视频使用TCP做出简短的回答,对实时视频使用UDP做出简短的回答,但是我在回家的路上就想到了这一点,并且使用UDP传输实时视频是否一定更好?我的意思是,如果您有足够的带宽,并且说您正在直播足球比赛或音乐会,那么您真的需要使用UDP吗?
可以说,在播放此音乐会或使用TCP的任何内容时,您开始丢失数据包(在您和发送方之间的某些网络中发生了一些不好的事情),并且一整分钟您都没有收到任何数据包。视频流将暂停,一分钟后,数据包将再次开始通过(IP为您找到了一条新路由)。然后将发生的情况是,TCP将在您丢失的那一刻重新传输并继续向您发送实时流。假设带宽高于流的比特率,并且ping不太高,因此在很短的时间内,您丢失的一分钟将为您充当流的缓冲区。 ,如果再次发生丢包,您将不会注意到。
现在,我可以想到一些不是一个好主意的设备,例如视频会议,您需要始终处于视频流的结尾,因为视频聊天过程中的延迟太可怕了,但是在足球比赛或音乐会中,如果您落后于直播,那又有什么关系呢?另外,可以确保您获得所有数据,并且最好保存起来以备以后查看,而不会出现任何错误。
因此,这使我想到了问题。使用TCP进行实时流传输是否有我不知道的缺点?还是真的应该这样,如果您有带宽,那么就应该使用TCP,因为它对网络“更小”(流控制)?