UDP和TCP的总结

版权声明:未经允许禁止转载 https://blog.csdn.net/weixin_38481963/article/details/87879013

概念:
UDP(User Datagram Protocol)用户数据报协议。
TCP(Transmission Control Protocol )传输控制协议。

UDP和TCP的区别

描述 UDP TCP
是否面向连接 无连接的 面向连接的
是否可靠 不可靠 可靠
是否包含拥塞控制 无拥塞控制 有拥塞控制
对系统资源要求 对系统资源要求较少 对系统资源要求较多
信道是否可靠 不可靠信道 全双工的可靠信道
适用 适合传输少量数据 适合传输大量数据
典型协议 DNS协议 HTTP协议

TCP的可靠数据传输

1、经完全可靠信道的可靠数据传输:rdt1.0
2、经具有比特差错信道的可靠数据传输:rdt2.0
自动重传请求(ARQ)协议,与另外三种协议处理比特差错

  1. 差错检测。检测是否出现比特差错。
  2. 接收方反馈。通过获取接收方的 “肯定确认(ACK)” 和 “否定确认(NAK)”。
  3. 重传。收到有差错的分组时,重传该分组。

rdt2.1:与rdt2.0的唯一不同是序号的处理方法不同。
rdt2.2:无NAK的可靠数据传输协议。

3、经具有比特差错的丢包信道的可靠数据传输:rdt3.0
为了检测丢包,引入了定时器,当超过定时器时间时,认为该包已经丢失,重传该包。

解决流水线可靠数据传输的两种基本方法:回退N步和选择重传。
1、回退N步(GBN)协议
概念:
基序号(base):最早的已发送,但未被确认的分组序号
下一个序号(nextseqnum):下一个待发分组的序号
窗口长度(N):允许已发送但未被确认分组的最大数目

[0,base-1]:已经发送并且被确认的分组
[base,nextseqnum-1]:已经发送单未被确认的分组
[nextseqnum,base+N-1]:即将被发送的分组
[base+N,…]:不能被使用的序号。
在这里插入图片描述
累计确认:如果分组k已接收并交付,则所有比k小的分组也已经交付。

在GBN协议中,接收方丢弃所有失序分组。

2、选择重传(SR)
让发送方仅重传那些怀疑在接收方出错的分组。

TCP的三次握手

第一次握手:客户端发送一个SYN报文段并携带一个初始序号(client_isn),之后客户端进入SYN_SENT状态

第二次握手:服务器收到SYN报文段后,为该TCP连接分配缓存和变量,发送一个SYNACK报文段,进入SYN_RCVD状态。该报文段中,SYN比特被置为1,确认号字段被置为client_isn+1,服务器选择自己的初始序号server_isn.

第三次握手:客户端收到SYN报文段后,客户端给连接分配缓存和变量。最后向服务器发送确认报文段。该报文段SYN比特被置为0,确认序号段为server_isn+1,序号段为client_isn+1;一段时间后,确认服务器收到确认报文段,进入ESTABLISHED状态。

在这里插入图片描述

TCP的四次挥手

第一次挥手:客户应用进程向服务器发送FIN报文段,表示要关闭连接,进入FIN_WAIT1状态。

第二次挥手:服务器接收到FIN报文段后,向发送方回送一个ACK确认报文段,进入CLOSE_WAIT状态。

第三次挥手:服务器将信息发送完毕后,向发送方发送FIN报文段,表示自己将关闭连接,进入LAST_ACK状态。

第四次挥手:客户发送ACK报文段,对服务器的FIN报文段进行确认。进入TIME_WAIT状态。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38481963/article/details/87879013