TCP/IP协议学习(TCP和UDP的区别)
2015-05-24 11:50
701 查看
UDP(面向报文传输)
UDP是面向报文的传输方式,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片分片,降低效率。若太短,会是IP太小。UDP对应用成娇小来的报文,既不合并,也不拆分,而是保留这些报文的边界。TCP(面向字节流)
应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连传的无结构的字节流。TCP有一个缓冲,当应用程序传送数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文发送出去。TCP和UDP协议的应用
传输层协议 | 应用层协议 | 应用 |
---|---|---|
TCP | SMTP | 电子邮件 |
TCP | Telnet | 远程终端接入 |
TCP | HTTP | 万维网 |
TCP | FTP | 文件传输 |
UDP | DNS | 名字转换 |
UDP | TFTP | 文件传输 |
UDP | BOOTP DHCP | IP地址配置 |
UDP | SNMP | 网络管理 |
UDP | NFS | 远程文件服务器 |
TCP和UDP的比较
性能 | TCP | UDP |
---|---|---|
可靠性 | 可靠 | 不可靠 |
连接性 | 面向连接 | 无连接 |
报文 | 面向字节流 | 面向报文 |
效率 | 传输效率低 | 传输效率高 |
双工性 | 全双工 | 一对一、一对多、多对一、多对多 |
流量控制 | 有(滑动窗口) | 无 |
拥塞控制 | 有 | 无 |
面向连接与无连接的区别
面向连接如同两个人之间打电话通信,二面向未连接如同邮政服务,用户吧信函放在邮件中期待邮政处理,显然,不可达代表不可靠。有无边界
TCP无边界,客户端连续发送数据,只要服务端的这个函数的缓冲区足够大,会一次性接受过来,即客户端是分好几次发送过来,是有边界的,而服务器却是一次性接受完成。UDP协议,客户端连续发送数据,即使福区段这个函数的缓冲区足够大,也只会一次一次的接受,发送多少次接受多少次,即客户端分几次发送过来,服务器就必须按几次接受。这个种UDP的通信模式是有边界的。
校验和
UDP和TCP对首部和数据部分都进行校验,而IP首部的校验和仅仅对IP的首部进行校验。TCP的校验和是必选的,而UDP的校验和是可选的。可靠性
UDP是不可靠的协议,没有超时重传功能,当UDP数据封装到IP收包传输时,如果丢失,会发生一个ICMP差错报文给源主机,另外,如果UDP数据包的发送端没有打开UDP校验和,而接受端计算校验和有差错,那么UDP数据报将会被丢掉,也不会发送ICMP差错报文。由于UDP最大数据的限制,大于这个限制的数据报会被截断,从事发生数据丢失,且不会有任何数据报的丢失通知。
TCP没有任何信息边界,TCP首部中没有对TCP最长报文段的限制,因此TCP以音乐程序读操作时所要求的长度来传送数据,在草果MSS值时会产生分段,不会发生数据截断。
相关文章推荐
- python网络编程学习笔记(2)--TCP和UDP区别(补充)
- 2017年1月22日学习总结----TCP和UDP的区别
- osi七层模型,什么是tcp/ip协议,tcp与http,UDP的区别,tcp三次握手过程和特点
- java网络编程学习笔记之一(TCP/IP协议与UDP协议的区别和认识)
- 【转】TCP/IP协议中TCP和UDP的区别
- TCP/IP学习之 TCP与UDP的 区别
- TCP/IP协议(三)——UDP与TCP的区别
- TCP和UDP的区别
- TCP/IP协议与UDP协议的区别
- 面向报文(UDP)和面向字节流(TCP)的区别
- TCP和UDP的区别(转)
- TCP UDP 区别总结
- TCP和UDP的区别
- TCP与 UDP的区别
- socket tcp与udp的区别
- TCP和UDP网络通讯的区别及实现方式
- 面向报文(UDP)和面向字节流(TCP)的区别
- TCP和UDP的最完整的区别
- TCP与UDP的区别
- TCP与UDP的区别