传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP (Transmission Control Protocol)和用户数据包协议UDP (User Datagram Protocol)。
1、相关概念
a. 传输层的端口
端口范围:0-65535
- 知名端口:0-1023,提前保留出来的端口
TCP协议:FTP[20/21] SSH[22] Telnet[23] HTTP[80] HTTPS[443]
UDP协议:DNS[53] DHCP[67/68]
连接:正式发送数据之前,提前建立好一种虚拟的“”“点到点”式的连接 = 单播模式
1、TCP
传输控制协议——面向连接的服务
- 只适用于单播通信
- 可以给与建立好的连接 灵活的对接下来的数据传递进行控制
- 无法很好地满足及时性的业务要求(如,视频直播等),传递一些文件稳定性好
- 感知上层数据大小,网络层不用做分片,符合传输大小
五元组:
- Source IP 源IP
- Destination IP 目的IP
- Protocol 协议号
- Source Port 源端口
- Destination Port 目的端口
TCP 三次握手
TCP连接建立完毕之前,不会传递数据
- ① seq=a 随机序列号 ;SYN:同步位(置为1),
- ② seq=b 随机序列号; ack=a+1(确认收到对方的a报文,对方在发送报文从a+1开始发);SYN(置为1),ACK(置为1)
- ③ seq=a+1(从a+1开始发送报文) ;ack=b+1(确认收到对方的b报文,对方在发送报文从b+1开始发);ACK(置为1)
TCP 传输过程
确认机制:
- 三次握手中,小ack = 对方seq + 1
- 数据传输时,小ack = 对方所传递的数据的最大值 +1
有序机制:
超时重传机制:
- RTTS 加权的平均往返时间
TCP 流量控制
mss(Maximum segment size):最大报文长度
- mss(1460) = mtu(1500) - tcp(20) - ipv4(20)
TCP 四次挥手
2、UDP
用户数据包协议——面向无连接的服务
- 保证数据进行传输,但是UDP无法对传递的数据进行控制,如果想对数据做控制,此时借用应用层实现。
- 可以很好地满足即时性的要求,对时间要求比较高
- UDP 对于上层传递的数据“全盘接受” 没有分片机制,用于相对较小的流量