TCP与UDP的基本区别

TCP与UDP基本区别

  1.TCP是面向连接,UDP是无连接

  2.TCP要求系统资源较多,UDP较少

  3.TCP程序结构较为复杂,UDP程序结构较简单 

  4.TCP基于流模式,UDP基于数据报模式; 

  5.TCP保证数据正确性,UDP可能丢包 

  6.TCP保证数据顺序,UDP不保证 
  

UDP应用场景:(如实时通话,实时视频)

  1.面向数据报方式

  2.网络数据大多为短消息 

  3.拥有大量Client

  4.对数据安全性无特殊要求

  5.网络负担非常重,但对响应速度要求高
 

TCP与UDP详细区别:

1、TCP面向连接(数据传递是双向的);UDP是无连接的,即发送数据之前不需要建立连接

2、TCP提供可靠的服务(差错重传),通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达(滑动窗口);UDP尽最大努力交付,即不保证可靠交付

3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;

UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

5、TCP首部开销20字节;UDP的首部开销小,只有8个字节

6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

扩展:
TCP报文首部:
源端口,目的端口(各占两个字节)
序列号(4字节)
确认号(4字节)
数据偏移(4字节)指出TCP报文的数据距离TCP报文段的起始处有多远
保留(6字节)
紧急URG,当URG=1,表明紧急指针字段有效。告诉系统此报文段中有紧急数据;
确认ACK,仅当ACK=1时,确认号字段才有效。TCP规定,在连接建立后所有报文的传输都必须把ACK置1;
推送PSH,当两个应用进程进行交互式通信时,有时在一端的应用进程希望在键入一个命令后立即就能收到对方的响应,这时候就将PSH=1;
复位RST,当RST=1,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立连接;
同步SYN,在连接建立时用来同步序号。当SYN=1,ACK=0,表明是连接请求报文,若同意连接,则响应报文中应该使SYN=1,ACK=1;
终止FIN,用来释放连接。当FIN=1,表明此报文的发送方的数据已经发送完毕,并且要求释放;
窗口,占2字节,指的是通知接收方,发送本报文你需要有多大的空间来接受;
检验和,占2字节,校验首部和数据这两部分;
紧急指针,占2字节,指出本报文段中的紧急数据的字节数;
选项,长度可变,定义一些其他的可选的参数。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值