TCP协议,UDP协议,SCTP协议
- 一.TCP协议
- 1.什么是TCP协议
- 2.TCP协议的特点
- 3.TCP头部结构
- 4.TCP状态转移
- 5.TCP超时重传
- 二.UDP协议
- 1.什么是UDP协议
- 2.UDP协议的特点
- 三.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的区别
- TCP 协议为应用层提供可靠的、面向连接的和基于流的服务,而UDP为应用层提供不可靠、无连接、基于数据报地服务。
- TCP协议的这种连接是一对一的.而UDPUDP 是无连接的,即通信双发不保持一个长久的联系.
- TCP接收端收到收到一个或多个TCP报文后,TCP模块将他们鞋带儿应用程序数据按照TCP报文段的序号依次放入缓冲区,并通知应用程序读取数据,接收端一次性将数据TCP接收缓冲区中的数据全部读出,也可以分多次读出,而UDP发送端发送一次接收端就要读取一次.