76-TCP协议,UDP协议以及区别

一.TCP协议

1.什么是TCP协议

TCP(Transmission Control Protocol)协议即为传输控制协议,是一种面向连接的,可靠的,基于字节流的传输层通信协议

2.TCP协议的特点

  • TCP 协议(传输控制协议)为应用层提供可靠的、面向连接的和基于流的服务。
  • TCP 协议使用超时重传、确认应答等方式来确保数据包被正确的发送至目的端,因此TCP 服务是可靠的。
  • 使用 TCP 协议通信的双方必须先建立 TCP 连接,并在内核中为该连接维持一些必要的数据结构,比如连接状态,读写缓冲区等。当通信结束时,双方必须关闭连接以释放这些内核数据。
  • TCP 服务是基于流的,基于流的数据没有边界(长度)限制,它源源不断地从通信地一端流入另一端。发送端可以逐个字节地向数据流中写入数据,接收端可以逐个字节地将它们读出。
  • TCP协议的这种连接是一对一的,所以基于广播和多播(目标是多个主机地址)的应用程序不能使用TCP服务,而无连接协议的UDP则非常适合广播和多播

3.TCP头部结构

在这里插入图片描述
16位端口号:告知主机该报文段是来自哪里(源端口)以及传给那个上层协议或应用程序(目的端口)的。进行TCP通信时,客户端通常使用系统自动选择的临时端口号,而服务器则使用知名服务端口号。
32序列号:一次TCP通信过程中某一的传输方向上的字节流的每个字节的编号。

4.TCP状态转移

在这里插入图片描述

5.TCP超时重传

TCP服务必须能噶偶重传超过时间内收到确认的TCP报文段。为此,TCP模块为每个TCP报文段都维护一个重传定时器,该定时器在TCP报文段第一次被发送时启动。如果超时时间内未收到接收方的应答,TCP模块将重传TCP报文段并充值定时器。

二.UDP协议

1.什么是UDP协议

UDP协议就是用户数据报协议,,它为应用层提供不可靠、无连接、基于数据报地服务。“不可靠”意味着 UDP 协议无法保证数据从发送端正确地传送到目的端.

2.UDP协议的特点

UDP 协议(用户数据报协议)则与 TCP 协议完全相反,它为应用层提供不可靠、无连接、基于数据报地服务。“不可靠”意味着 UDP 协议无法保证数据从发送端正确地传送到目的端。如果数据在中途丢失,或者目的端通过数据校验发现数据错误而将其丢弃,则 UDP协议只是简单地通知应用程序发送失败。因此,如果要使 UDP 协议可靠,那么应用程序通常要自己处理数据确认、超时重传等逻辑。 UDP 是无连接的,即通信双发不保持一个长久的联系,因此应用程序每次发送数据都要明确指定 接收端的地址。基于数据报的服务,是相对基于流的服务而言的。每次 UDP 数据报都有一个长度,接收端必须以该长度为最小单位将其所有内容一次性读出,否则数据将被截断。

三.TCP和UDP的区别

  1. TCP 协议为应用层提供可靠的、面向连接的和基于流的服务,而UDP为应用层提供不可靠、无连接、基于数据报地服务。
  2. TCP协议的这种连接是一对一的.而UDPUDP 是无连接的,即通信双发不保持一个长久的联系.
  3. TCP接收端收到收到一个或多个TCP报文后,TCP模块将他们鞋带儿应用程序数据按照TCP报文段的序号依次放入缓冲区,并通知应用程序读取数据,接收端一次性将数据TCP接收缓冲区中的数据全部读出,也可以分多次读出,而UDP发送端发送一次接收端就要读取一次.
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值