面向报文UDP和面向字节流TCP的区别
2014-04-18 11:02
302 查看
面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。比如应用层使用UDP协议时,调用send(int
sockfd,const void *buf,size_t nbytes,int flags)。就表示了一次发送一个大小为nbytes的报文段。而TCP是一次向发送缓冲区(发送窗口)中发送nbytes大小的字节,具体的发生报文段大小由内核决定或者一般是由MSS决定
面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。
sockfd,const void *buf,size_t nbytes,int flags)。就表示了一次发送一个大小为nbytes的报文段。而TCP是一次向发送缓冲区(发送窗口)中发送nbytes大小的字节,具体的发生报文段大小由内核决定或者一般是由MSS决定
面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。
相关文章推荐
- 面向报文(UDP)和面向字节流(TCP)的区别
- 面向报文(UDP)和面向字节流(TCP)的区别
- 面向报文(UDP)和面向字节流(TCP)的区别
- 面向报文(UDP)和面向字节流(TCP)的区别
- 面向报文(UDP)和面向字节流(TCP)的区别
- 面向报文(UDP)和面向字节流(TCP)的区别
- 面向报文(UDP)和面向字节流(TCP)的区别
- 面向报文(UDP)和面向字节流(TCP)的区别
- 面向报文(UDP)和面向字节流(TCP)的区别
- 面向报文(UDP)和面向字节流(TCP)的区别
- 面向报文(UDP)和面向字节流(TCP)的区别之二
- 面向报文(UDP)和面向字节流(TCP)的区别
- 面向报文(UDP)和面向字节流(TCP)的区别
- 白话浅说TCP/UDP面向连接,面向无连接的区别
- TCP和UDP报文分片的区别
- TCP 和 UDP 的区别( 面向连接 和 面向无连接 )
- TCP,IP,UDP,帧的报文格式
- 浅析TCP字节流与UDP数据报的区别
- udp协议和tcp协议的区别
- TCP与UDP的区别