Category: CS350

Interprocess Communication

问得最多的问题: What is message boundary?     Message boundary应用于UDP通讯(datagram model),是因为UDP通讯不保证从一个端口送出的前后两个数据包会发送到同一个目的地。因而发送数据也不需要connect()。所以每次发送数据,我们都要把数据包的收件人写进去,这个就是message boundary。TCP通讯(stream model),在传输数据之前需要connect(),从一次connect之后发送的数据一定会发送到跟你connect的地方。     为什么说TCP是可靠的,一个原因就是因为连接可以保证整个数据传输通道是两个end-point processes独享的,数据是怎么发出去的,就是怎么接到的。而UDP每次发出的数据都是独立的,而网络设备(网卡,路由器。。。)在同时接收到两个数据包的时候,会随机选择发送顺序。也就是说,你发出数据包的顺序(包括两个数据包发送时间的间隔)不一定会是对方接收到的顺序(或时间间隔)。 Read More