TCP/IP协议学习(TCP和UDP的区别)

UDP(面向报文传输)

UDP是面向报文的传输方式,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片分片,降低效率。若太短,会是IP太小。UDP对应用成娇小来的报文,既不合并,也不拆分,而是保留这些报文的边界。

TCP(面向字节流)

应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连传的无结构的字节流。TCP有一个缓冲,当应用程序传送数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文发送出去。

TCP和UDP协议的应用

传输层协议应用层协议应用
TCPSMTP电子邮件
TCPTelnet远程终端接入
TCPHTTP万维网
TCPFTP文件传输
UDPDNS名字转换
UDPTFTP文件传输
UDPBOOTP DHCPIP地址配置
UDPSNMP网络管理
UDPNFS远程文件服务器

TCP和UDP的比较

性能TCPUDP
可靠性可靠不可靠
连接性面向连接无连接
报文面向字节流面向报文
效率传输效率低传输效率高
双工性全双工一对一、一对多、多对一、多对多
流量控制有(滑动窗口)
拥塞控制

面向连接与无连接的区别

面向连接如同两个人之间打电话通信,二面向未连接如同邮政服务,用户吧信函放在邮件中期待邮政处理,显然,不可达代表不可靠。

有无边界

TCP无边界,客户端连续发送数据,只要服务端的这个函数的缓冲区足够大,会一次性接受过来,即客户端是分好几次发送过来,是有边界的,而服务器却是一次性接受完成。
UDP协议,客户端连续发送数据,即使福区段这个函数的缓冲区足够大,也只会一次一次的接受,发送多少次接受多少次,即客户端分几次发送过来,服务器就必须按几次接受。这个种UDP的通信模式是有边界的。

校验和

UDP和TCP对首部和数据部分都进行校验,而IP首部的校验和仅仅对IP的首部进行校验。TCP的校验和是必选的,而UDP的校验和是可选的。

可靠性

UDP是不可靠的协议,没有超时重传功能,当UDP数据封装到IP收包传输时,如果丢失,会发生一个ICMP差错报文给源主机,另外,如果UDP数据包的发送端没有打开UDP校验和,而接受端计算校验和有差错,那么UDP数据报将会被丢掉,也不会发送ICMP差错报文。
由于UDP最大数据的限制,大于这个限制的数据报会被截断,从事发生数据丢失,且不会有任何数据报的丢失通知。
TCP没有任何信息边界,TCP首部中没有对TCP最长报文段的限制,因此TCP以音乐程序读操作时所要求的长度来传送数据,在草果MSS值时会产生分段,不会发生数据截断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值