前言
传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP 和 用户数据包协议UDP
传输层概述:
- 传输层提供了端到端的连接
- 网络层提供了点到点的连接
在传输层中,最重要的一个概念就是:端口号
也就是说:不同的应用层协议,都有各自的端口号
协议 | 端口号 |
FTP | 21、20 |
HTTP | 80 |
Telnet | 22 |
SMTP | 25 |
传输层用到的协议:
- TCP
- Transmission Control Protocol 传输控制协议:可靠的、面向连接的协议;传输效率低,类似打电话
- UDP
- User Datagram Protocol 用户数据报协议:不可靠的,无需建立连接的服务;传输效率高,类似群聊
TCP是一种面向连接的传输层协议,提供可靠的传输服务
因此,在使用TCP协议进行通讯时,通讯双方会建立连接以达到对端均可准确的收到信息
这种建立连接,叫做TCP三次握手
主机A:发送SYN seq=0 主机B:收到主机A的 SYN seq=0 于是主机B也发送一个 SYN seq=20 ack=0+1 其中 ack=0+1代表,主机B已经收到了seq=0的数据包,接下来的想要主机A给个seq=1的数据包 主机A:收到主机B的回联信息后,继续发送 seq=1 ack=20+1 其中,ack=20+1也同样代表,主机A已经收到了seq=20的数据包,接下来想要主机B给个sql=21的数据包
三次握手建立完成
以下是三次握手的抓包信息:
TCP的窗口机制:
窗口大小,决定了接收方一次性最多能承受多少字节的数据包
在进行TCP通讯过程中,通讯双方总是会协商Win大小
例如:主机A win=3 则代表主机A最多一次性能够接受3个包,若主机B一次性发送了4个包,那么主机A将无法接受
值得注意的是:主机A在标志win=3时,并不代表主机B一定会发满3个包,也许只会发1个、2个包。
以下是捕获到win机制的包
UDP协议:
UDP协议极其简单,并不用像TCP需要建立握手,也不会在通讯过程中保障双方都能接受完整的数据
? 记录时间:2023年9月17日 17点58分
? 参考资料:https://www.bilibili.com/video/BV1Dg4y187bZ?p=10