前面讲过的socket 通信方式是一种流式通信,所有的输入/输出都是通过对应socket 的流来实现的,这种通信所采用的协议就是传输控制协议TCP (Transfer Control Protocol )。而数据报通信协议UDP (User Datagram Protocol )采用一种不同于流式通信的另一种通信方式。
我们常常用打电话来比喻流式通信。打电话时,双方只有在拨通电话之后才能进行谈话,两个程序也只有在建立连接之后才能进行流式通信。所以说,流式通信是建立在连接的基础之上的。而数据报通信协议UDP 是一种无连接的协议。按照UDP 协议,两个程序不用建立连接就可以进行通信。数据报通信协议UDP 的最好的比喻是日常生活中的信件,我们可以随时写信给对方,而不像打电话那样,对方必须在电话旁边。但是,对方是否能收到信件?什么时候能收到信件?对方收到信件的次序是否是发信的次序就很难保证了。数据报通信协议以收/发数据报作为两个程序通信的方式,每个数据报如同信件一样都要有独立的源地址和目的地址。
我们在互相联系时离不开电话或写信,选择哪一种联系方式要根据具体情况而定。同样,在选择用流式通信还是数据报通信时,也要参考具体的应用情况。但读者首先需要了解这两种通信方式各自的优缺点。
由于TCP 是一种面向连接的协议,所以,在使用TCP 通信时,双方需要首先建立连接再进行通信,这需要花费一定的建立连接的时间。但是在建立连接之后,双方就可以像电话联系那样准确、同步地进行通信。而使用UDP 通信时,由于UDP 是一种无连接的协议,所以,可以随时进行收/发数据报,因此速度较快。但是这种通信方式是一种不可靠的通信方式,数据报可能被丢失、延误等等。 每个数据报需要有完整的收/发地址,而且每个数据报的容量不能太大,只能在64KB 以下。而流式通信在建立连接之后,可以通过流来进行大量的数据交换。 可见,这两种通信方式有各自的特点,因此,它们被应用在不同的领域之中。总的来说, TCP 是一种可靠的协议,所以它被广泛应用在文件传输、远程连接等需要数据被可靠传输的领域;UDP 比TCP 相对简单且容易管理,它被应用在一些局域网系统的应用程序中。
前面讲过的socket 通信方式是一种流式通信,所有的输入/输出都是通过对应socket 的流来实现的,这种通信所采用的协议就是传输控制协议TCP (Transfer Control Protocol )。而数据报通信协议UDP (User Datagram Protocol )采用一种不同于流式通信的另一种通信方式。
我们常常用打电话来比喻流式通信。打电话时,双方只有在拨通电话之后才能进行谈话,两个程序也只有在建立连接之后才能进行流式通信。所以说,流式通信是建立在连接的基础之上的。而数据报通信协议UDP 是一种无连接的协议。按照UDP 协议,两个程序不用建立连接就可以进行通信。数据报通信协议UDP 的最好的比喻是日常生活中的信件,我们可以随时写信给对方,而不像打电话那样,对方必须在电话旁边。但是,对方是否能收到信件?什么时候能收到信件?对方收到信件的次序是否是发信的次序就很难保证了。数据报通信协议以收/发数据报作为两个程序通信的方式,每个数据报如同信件一样都要有独立的源地址和目的地址。
我们在互相联系时离不开电话或写信,选择哪一种联系方式要根据具体情况而定。同样,在选择用流式通信还是数据报通信时,也要参考具体的应用情况。但读者首先需要了解这两种通信方式各自的优缺点。
由于TCP 是一种面向连接的协议,所以,在使用TCP 通信时,双方需要首先建立连接再进行通信,这需要花费一定的建立连接的时间。但是在建立连接之后,双方就可以像电话联系那样准确、同步地进行通信。而使用UDP 通信时,由于UDP 是一种无连接的协议,所以,可以随时进行收/发数据报,因此速度较快。但是这种通信方式是一种不可靠的通信方式,数据报可能被丢失、延误等等。 每个数据报需要有完整的收/发地址,而且每个数据报的容量不能太大,只能在64KB 以下。而流式通信在建立连接之后,可以通过流来进行大量的数据交换。 可见,这两种通信方式有各自的特点,因此,它们被应用在不同的领域之中。总的来说, TCP 是一种可靠的协议,所以它被广泛应用在文件传输、远程连接等需要数据被可靠传输的领域;UDP 比TCP 相对简单且容易管理,它被应用在一些局域网系统的应用程序中。