图解 TCP/IP(四) TCP 与 UDP

本文详细介绍了TCP与UDP两种传输层协议的特性与区别,包括UDP的简单首部、TCP的复杂首部以及TCP的三次握手、四次挥手过程。此外,还探讨了TCP的可靠传输、滑动窗口、流量控制和拥塞控制策略,如慢开始、拥塞避免、快重传与快恢复。最后,补充了TCP连接的快速重传机制和3次冗余ACK的原因。
摘要由CSDN通过智能技术生成

 

 

网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。

在收到数据包后,主机要分辨出这个数据包所属的具体应用程序。所以要通过传输层中加上 端口号 这样一中识别码。

目录

UDP 首部格式

TCP 首部格式

TCP 的三次握手

TCP 的四次挥手

TCP 可靠传输

TCP 滑动窗口

TCP 流量控制

TCP 拥塞控制

1. 慢开始与拥塞避免

2. 快重传与快恢复

补充:

1.快速重传机制

2.为什么是3次冗余ACK


UDP 和 TCP 的特点

  • 用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。传输途中即使出现丢包也没有纠正的功能。

  • 传输控制协议 TCP(Transmission Control Protocol)是面向连接的,提供可靠交付有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),每一条 TCP 连接只能是点对点的(一对一)

UDP 首部格式

首部字段只有 8 个字节,包括源端口、目的端口、长度、检验和。12 字节的伪首部是为了计算检验和临时添加的。

TCP 首部格式

  • 序号 :用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。
  • 确认号 :期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带的数据长度为 200 字节,因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就为 701。

  • 数据偏移 :指的是数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。

  • 确认 ACK :当 ACK=1 时确认号字段有效,否则无效。TCP 规定,在连接建立后所有传送的报文段都必须把 ACK 置 1。

  • 同步 SYN :在连接建立时用来同步序号。当 SYN=1,ACK=0 时表示这是一个连接请求报文段。若对方同意建立连接,则响应报文中 SYN=1,ACK=1。

  • 终止 FIN :用来释放一个连接,当 FIN=1 时,表示此报文段的发送方的数据已发送完毕,并要求释放连接。

  • 窗口 :窗口值作为接收方让发送方设置其发送窗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值