tcp的双向连接吗_网络协议|OSI模型第四层传输层中的UDP和TCP协议

af2e37ff8d72d566869348d8244935eb.png

OSI 第四层是传输层(Transport layer),用于管理应用程序的连接,保证连接的有效建立,第四层有两个协议

快速但不可靠的 UDP 协议

UDP(user datagram protocol ) 协议是一种无连接的协议,它的目标是快速高效,并不在乎数据有没有被接收方收到,所以它是不可靠的,例如一些互联网广播和电视,重要的是实时发送这些信息,如果丢失一点信息,也并不会停止。

UDP数据报的格式:

6c40efd5b806c114bcffed68b386e45b.png

源端口号:发送信息的应用程序的地址。

  • 目标端口号:接收信息的应用程序的地址。
  • Checksum:表示 “校验和”,与 OSI 第 2 层的以太网帧里的 CRC功能类似,也是用于错误校验,确保发送的数据和接收的数据是相同的。

可靠的 TCP 协议

TCP(transmission control protocol)协议非常可靠,发送的每一个数据包都会去确认对方是否收到,如果接收方没有确认,发送方将会重新发送此数据包。

在正式交谈前,TCP 协议会先建立通信,因此发送的前三个数据包都只是用于建立通信,这些都是空的数据包。

一、3次握手建立通信

3987a72a58b428c242ae9252bf1b66e3.png

①客户端 A 发送一个SYN(synchronous)标志,这是一个同步请求,表明客户端 A 想与服务端 B 建立通信。

②接收到请求的服务端 B 将会回复一个 ACK(acknowledgement)标志表示确认,同时还会向客户端 A 发送一个 SYN 标志,询问客户端 A 是否要与自己建立通信,因为 TCP 协议是双全工,连接是双向的,所以需要建立两个连接。

③客户端 A 再次发送 ACK 标志的数据包,接受来自服务端 B 的连接请求。

经过三次握手后,双向通信建立,应用程序之间就可以互传数据包了,在互传的过程中,所有的数据包都会加上 ACK 标志,表示确认收到了先前的数据包。

二、4次挥手终止通信

797c907bbd6d6f5bcccc6ef35a84b784.png

①客户端 A 发送一个FIN( finish )标志到服务端 B,请求关闭 A 到 B 方向的连接。

②服务端 B 收到 FIN 请求后,回复一个 ACK 标志表示确认关闭 A 到 B 的连接。

③服务端 B 请求关闭 B 到 A 方向的连接,发送一个 FIN 标志给客户端 A。

④客户端 A 回复一个 ACK 标志给服务端 B ,从 B 到 A 的连接被关闭。

在建立连接的三次握手中,第二步的 SYN 和 ACK 标志可以一起设置,是因为此时连接还未成功建立,还没有数据传输。

在断开连接的四次挥手中,第二步的 ACK 标志和第三步的 FIN标志不能合并到一起,是因为从 B 到 A 的方向还有数据传输,服务端 B 将在数据传输完毕后,再向客户端 A 发送 FIN 请求关闭连接。

上一篇:OSI模型第三层网络层中的ARP协议

下一篇:OSI模型第四层传输层中的NAT和端口转发

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值