0
点赞
收藏
分享

微信扫一扫

Eureka 详解:构建高可用微服务架构

醉东枫 2024-05-02 阅读 9

UDP协议

用户数据报协议UDP概述

UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能

UDP的主要特点:

  1. UDP是无连接的,减少开销和发送数据之前的时延

  2. UDP使用最大努力交付,即不保证可靠交付,可靠性由UDP上层即应用层保证

  3. UDP是面向报文(面向应用层的报文,直接交付给下一层)的,适合一次性传输少量数据的网络应用

4.UDP无拥塞控制,适合实时应用(比如IP电话、视频会议)

5.UDP首部开销小,只有8B,TCP20B

UDP首部格式

各字段意义如下:

  • 源端口。源端口号。在需要对方回信时选用,不需要时可用全0。
  • 目的端口。目的端口号。这在终点交付报文时必须使用到。
  • 长度。UDP数据报的长度(包括首部和数据),其最小值是8 (仅有首部)。
  • 校验和。检测UDP数据报在传输中是否有错。有错就丢弃。该字段是可选的,当源主机不想计算校验和时,则直接令该字段为全0。

UDP校验

  • 伪首部和全0字节是不发送的,仅供校验使用

TCP协议

TCP协议特点和TCP报文段

TCP主要特点


1.TCP是面向连接(虚连接)的传输层协议

2.每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点

3.提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重

4.提供全双工通信

5.TCP面向字节流

TCP报文段首部格式

TCP连接管理

TCP连接管理

TCP连接传输分为三个阶段:

TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。

TCP的连接建立

三次握手

  • seq为序号字段,标明本次报文段数据部分的第一个字节的序号
  • ack是确认号字段,告诉对方我接下来应该接收的数据是从字节序号ack开始的数据
  • ACK是确认位,0时确认号字段ack无效,1时确认号字段ack有效
  • SYN是同步位

TCP提供的是全双工通信,因此通信双方的应用进程在任何时候都能发送数据。

  • 服务器端的资源是在完成第二次握手时分配的
  • 而客户端的资源是在完成第三次握手时分配的,这就使得服务器易于受到SYN洪泛攻击。

SYN洪泛攻击

TCP的连接释放

四次挥手

TCP连接建立和释放的总结如下

  • 1)连接建立。分为3步:

①SYN=1,seq=x。
②SYN=1, ACK=1, seq=y, ack=x+ 1。
③ACK=1,seq=x+1, ack=y+ 1。

  • 2)释放连接。分为4步:

①FIN=1, seq= u
②ACK=1, seq=v, ack=u+ 1。
③FIN=1,ACK=1, seq=w,ack=u+ 1。
④ACK=1, seq=u+1, ack=w+ 1。
关于连接和释放,ACK、 SYN、 FIN 一定等于1

TCP可靠传输

TCP可靠传输

序号

TCP协议面向字节流,因此TCP传输时以字节为单位,对字节依次编号。实际发送会把多个字节放在一起组成报文段发送,报文段大小不定,取决于链路层MTU

确认

发送方在收到对发送报文段的确认之前,TCP缓存区应保留报文段

接收方可在合适时候发送确认报文段,也可在要发送数据时把确认信息捎带上,即捎带确认

接收方采用累计确认,只确认数据流当中至第一个丢失字节为止的字节

重传

TCP流量控制

TCP拥塞控制

TCP拥塞控制

拥塞控制四种算法

慢开始和拥塞避免
快重传和快恢复

举报

相关推荐

0 条评论