运输层概述
TCP面向连接,UDP无连接
套接字 = (IP地址:端口号)
端口号:0~65535(16 bit )
熟知端口号:0~1023
可靠:使用确认机制确保数据不丢失
连接:
UDP
UDP数据报首部
| 16比特 源端口 |
16比特 目的端口 |
| 16比特 UDP长度 |
16比特 校验和 |
TCP
TCP报文段
首部
- 16bit源端口 16bit目的端口
- 32bit序号(发送方)
- 32bit确认号(接收方)
- 4bit数据偏移(意味着最长15*4B的首部) 保留 标志位(用于确认机制,TCP连接等),16bit窗口(接收窗口,用于流量控制)
- 16bit检验和,16bit紧急指针
- (可变长选项)(填充字段(填充为4B倍数))
TCP连接管理
TCP连接建立
- --> SYN, seq 客户机伸手
- <-- SYN, ACK, seq, ack 服务器伸手
- --> data 客户机握手
客户机握手报文段到达服务器后,服务器才进入连接建立态,所以叫三次握手(实际上第二个RTT的开始就开始传数据了)
TCP连接释放
- --> FIN 客户机伸手
- <-- ACK 服务器点头
- <-- FIN 服务器伸手
- --> ACK 客户机握手
- --- 客户机等待服务器重传伸手(防止握手失败)
TCP可靠传输
保证可靠传输关键在于触发重传的机制:
- 重传:对于损坏,丢失的包,发送方一旦得知(确认机制,超时计时器)便重传,以保证可靠传输
- 序号:保证TCP报文段之间的顺序正确
- 确认:TCP使用累计确认,冗余ACK触发重传
- 超时计时器:过长时间未被ACK则触发重传。
TCP流量控制:接收窗口rwnd
接收方设置窗口大小,通过窗口字段告知发送方。
发送方限制未确认的数据量在rwnd之内
TCP拥塞控制:拥塞窗口cwnd
拥塞窗口根据重传次数来调整,与rwnd一同限制发送方未确认量
慢开始——拥塞避免——快恢复:“加增乘减”
杂记
应用层只是用而已。
运输层提供端口到端口通信,协议首部中只包含16bit的端口号,将传到主机的IP数据报分拣到各端口;
网络层提供IP到IP通信,协议中的SAC为4B(32bit)的IPv4地址,在网络中将上层数据包成IP快递送来送去;
数据链路层提供硬件到硬件通信,协议中的SAC为MAC地址
物理层是真传。
计算机网络——传输层
原文:https://www.cnblogs.com/laiyk/p/14426664.html