TCP和UDP协议的对比

原创 2016年08月14日 22:03:58

UDP是一个简单的,不可靠的数据报协议。TCP是一个复杂的、可靠的字节流协议


UDP的特点如下:

(1)无链接

(2)UDP使用尽最大努力交付,不保证可靠性

(3)UDP是面向报文的,UDP对应用层交付下来的报文,既不合并,也不拆分,而是保留这些报文的边界。应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文

(4)UDP没有拥塞控制

(5)UDP支持一对一、一对多、多对一和多对多的交互通信

(6)UDP的首部开销小,只有8字节


TCP的特点:

(1)TCP是面向连接的

(2)每条TCP连接只能用于两个断点,一对一

(3)TCP提供可靠交付的服务:连接传输数据、无差错、不丢失、不重复、并且按序到达

(4)TCP提供全双工通信

(5)面向字节流。TCP根据对方给出的窗口和当前网络拥塞的程度来决定一个报文应该包含多少个字节


TCP如何提供可靠性的连接:

(1)数据被分割成TCP认为最合适发送的数据块

(2)重传机制:TCP发出一个段后,启动定时器,如果不能及时收到报文段,则重发一个报文段

(3)当TCP收到一个段后,会发送一个确认

(4)TCP将保持它首部和数据的校验和

(5)TCP对收到的数据进行重新排序,保证数据的有序

(6)TCP会丢弃重复的数据

(7)TCP提供流量控制


1.TCP连接的11种状态

LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态




2.TCP连接中,第三次握手的必要性?TCP终止连接中,主动关闭端的经历TIME_WAIT的理由?

MSL是任何IP数据报能够在网络中存活的最长时间,TIME_WAIT是2MSL

(1)可靠的实现TCP全双工连接的终止。最终的ACK丢失为例

(2)允许老的重复分节在网络中消逝。现在有一个连接,关闭之后,过一段时间相同的IP和端口之间建立另一个连接,称为前一个连接的化身。旧连接上的分组有可能被误认为是该化身的。TIME_WAIT是2MSL足以保证某个方向上的分组最多存活MSL秒,另一个方向上的确认最多存活MSL秒也被丢弃。共2MSL.


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

B树索引和位图索引的区别!

B树索引 主键和唯一性约束字段的B树索引,效率几乎和海量数据没有关系。 键值重复率低的字段比较适合使用B树索引。 位图索引 键值重复率高的字段比较适合使用位图索引。 count、an...

oracle 位图索引 B-树索引

B-树索引在Oracle中是一个通用的索引,在创建索引时它就是默认的索引类型。最多可以包括32列。 位图索引Oracle为每个唯一键创建一个位图,然后把与键值所关联的ROWID保存为位图。最多可...

TCP/UDP协议模拟软件

  • 2015年09月16日 11:10
  • 1.19MB
  • 下载

Socket通信原理,TCP,UDP协议

一、网络编程概述 * A:计算机网络     * 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,     网络管理软件及网络通信协议的管理和协调...

http 协议 tcp/udp

  • 2012年12月20日 14:12
  • 2.76MB
  • 下载

黑马程序员——java网络编程中的传输协议:UDP和TCP

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 1.      Ja...

LWIP源码/TCP UDP开源协议

  • 2014年10月10日 10:40
  • 557KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TCP和UDP协议的对比
举报原因:
原因补充:

(最多只允许输入30个字)