计算机网络Ch5
第五章 传输层
一、传输层概述
1.进程、端口号、传输协议之间的关系
- 端口号占16bit,范围是0到65535
- 0到1023为熟知端口号,开发的时候一般不使用,只能用于被熟知的重要应用程序
2.功能
- 实现端到端(进程之间)的通信
- 复用和分用
- 复用(从上到下):在发送数据时,同一台主机上的多个进程可以使用同一个传输层协议
- 分用(从下到上):在接收数据时,传输层可以把数据正确交付到目的进程
- 差错检测
- TCP会丢弃并通知重传
- UDP会丢弃不通知
- 向应用层提供两种服务
- 面向连接的、可靠的端到端传输服务(TCP)
- 确保数据正确,开销大,实时性较差
- 无连接的、不可靠的端到端传输服务(UDP)
- 数据可能出错,但速度快,开销小
- 有连接:传输前先打招呼建立连接,传输结束告知对方结束
- 可靠传输:接收方有确认机制,通知发送方哪些被接收成功
- 面向连接的、可靠的端到端传输服务(TCP)
小结
二、UDP协议
1.UDP协议、UDP数据报、UDP首部
- UDP首部很小,8B
- UDP每次传输一个完整的报文,不支持自动拆分、重装,数据过大会拒绝
- UDP无连接不可靠,不支持拥塞控制
- UDP支持一对一、一对多传输
2.UDP数据报格式
小结
3.UDP检验(发送方)
- 如果最高位进位,则将进位加到最低位
4.UDP校验(接收方)
小结
三、TCP协议
1.TCP协议通信过程
2.TCP数据传输
3.TCP段格式
- 序号seq:用于标记数据部分的第一个字节在原始字节流中的位置
- 确认ack:用于反馈ack号之前的所有字节都已收到
- ACK:为0时ack无效,为1时ack有效,只有握手1的ACK为0
- 数据偏移:表示TCP首部长度,以4B为单位
- SYN:表示这是一个连接请求或者连接接受的报文,只有握手1和握手2为1
- FIN:为1表示此报文的发送方的数据已经发送完毕,要求释放连接,只有挥手1和挥手3为1
- 窗口(rwnd):表示接收窗口的大小。即从本报文ack算起,接收方还能接收多少数据,以字节为单位
- 选项:在握手1和握手2中,选项中协商MSS(Max Segment Size,最大段长),表示TCP报文段最多携带多少数据(不算头部),通常不会太大,以免在IP层被分片
4.TCP连接管理
计算机网络Ch5
https://sdueryrg.github.io/2024/12/13/计算机网络Ch5/