UDP和TCP协议

一、UDP协议

UDP是一个简单的面向消息的传输层协议。由于它的协议格式非常简单,所以功能也很有限,它有三个特点,无连接、不可靠、面向数据报。

  1. 无连接:只要直到目的端口和IP地址就可以直接进行传输,不需要进行连接。
  2. 不可靠:这里的可靠和安全没有关系,而是指发送方能不能直到数据发送成功,因为UDP协议没有确认应答和超时重传机制,所以它不知道数据传送成功还是失败了
  3. 面向数据报:数据报是一种数据传输的基本单位,一般相当于若干个字节;一个数据报最大只能到64K,意思应用层交给UDP多长的报文,UDP就会原样传送,既不会拆分也不会组装。如果发送端调用sendto传输100字节,接收端就会调用recvfrom函数一次性接收这100个字节,而不能调用十次recvfrom函数每次接收10个字节,因为UDP协议没有发送缓冲区,它发送数据会直接交给操作系统内核处理

1、UDP协议格式

在这里插入图片描述

  • 端口号:用来标志一个主机上的进程,理论上有2^16个端口可选择,因为它的长度是16个bit位。
  • 长度:包含一个头部和数据部,因为头部的长度是固定的,所以根据长度就可以计算出数据部的长度。
  • 校验和:这里的校验只是简单统计数据的个数,简单的说,就是如果其中内容被篡改了,接收方是感应不到的。

2、UDP的优点和适用场景

虽然UDP协议很简单,没有一些确保可靠性的机制,比如确认应答,超时重传等,但就是因为这样,所以它的传输速度非常快,而且由于UDP是无状态的,所以它还可以支持广播模式。

UDP一般适用于对效率要求较高,对可靠性要求不高的场景,比如视频会议,这就要求延迟很小,发送方说一句话接收方能够立刻给出应答,虽然由于UDP是不可靠的传输,可能发生一些丢包的现象,但是我们可以在应用层对丢包做出一些应对,在网络非常通畅的情况下,丢包的概率是很小的,而且就算丢包了,重新传输数据也只会让视频质量有所下降,而不会出现较大的延迟。

3、基于UDP的应用层协议

  • NFS: 网络文件系统
  • TFTP: 简单文件传输协议
  • DHCP: 动态主机配置协议
  • BOOTP: 启动协议(用于无盘设备启动)
  • DNS: 域名解析协议

二、TCP协议

TCP协议是一种面向连接的端到端的可靠的传输层协议,提供可靠字节流和对对上层协议提供连接服务。TCP协议建立在IP协议的基础之上,可以根据IP协议提供的服务传输大小不定的数据段。IP协议负责数据的分段、重组及在多种网络和互联的网关间传输数据报。它有三个特点有链接、可靠、面向字节流。

  • 有连接:TCP是通过建立连接来完成数据传输的,建立连接的过程称为三次握手。
  • 字节流:流传输数据的基本单位是字节,相比数据报来说,使用更加的灵活。

1、TCP协议格式

在这里插入图片描述

  • 序列号和应答号:TCP协议使用序列号和应答号来保证其传输的可靠性,TCP协议是面向字节流的,每个字节都有一个序列号,一个数据段的第一个字节的序列号将随同数据段被发送,并且作为这个数据段的序列号。数据段同时还带有一个应答序号,表明它期望对方下次发送的字节的顺序号。
  • 首部长度:这里的长度单位是4个字节&
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值