导图社区 传输层
传输层,其作用:主机之间的逻辑通信(进程)、套接字、复用和分用,希望这份脑图会对你有所帮助。
进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程;进程是操作系统处于执行状态程序的抽象,程序=文件(静态)。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
传输层
作用
主机之间的逻辑通信(进程)
套接字
将目标主机的IP地址和端口号封装在一个套接字中
复用和分用
复用:发送方不同的应用进程都可以使用同一个运输层协议传输数据
分用:接收方的传输层在剥去报文的首部后能够把这些数据交付给目的进程
UDP协议
优点及应用场景
优点
无需建立连接
不需要维护连接状态
分组首部开销小
tcp有20B,UDP仅有8B
没有拥塞控制
能允许丢失一些信息
应用场景
看直播
微信打视频
UDP首部
源端口
发送方进程端口号
目的端口
长度
最小值是8B
校验和(可选)
当源主机不想计算校验和时,令该字段全为0
校验方式:校验码+头部字段+数据部分=FFFF
两字节为一行
进位后回滚操作
先加12B伪首部:包括源IP,目的IP,协议字段,数据报长度
TCP协议(可靠)
主要特点:
1.面向连接
端对端
提供可靠服务
全双工通信
允许应用进程任何时候都能发送数据
两端都有接受和发送缓存
面向字节流
把数据视作无结构的字节流
TCP报文段
传输层报文大小由以太网MTU决定
序号字段 :表示该报文段的第0号字节是数据的多少号字节
只有主机可以进行传输层数据的切分
和前面的分片不一样
区别:TCP报文切分每个部分都有序号,可以推断是那一部分丢失,只需重传丢失部分
IP数据报分片:只有第一个分片有TCP头部,丢失一个就只能舍弃收到的其他分片
TCP头部字段
接受窗口字段
首部长度字段
4bit
单位4B
标志字段
ACK为1:确认号是有效的
TCP协议通过ACK和序号共同构成了确认机制
多个连续接收的报文有累记确认
SYN和FIN用于连接建立和拆除
PSH表示接受分应立即把数据交付给上层
URG表示紧急数据
实际应用中PSH 和URG不用
序号seq
建立在传送的字节流上,而不是报文段序列
接收窗口
该字段明确指出了当前可以接受的数据量
TCP缓存区
eg:seq=700,窗口1000,意思是还可以收从700-1700
TCP建立连接
建立连接
3次拍手
1.客户机会首先发送一个特殊的连接报文,该报文不包含任何数据,但会消耗一个序列号seq,标志字段SYN=1
2.服务器返回确认报文,SYN=1,同样分配一个序列号,ACK=1,确认号为上面的seq+1,表示上面的报文收到了
3.第三次拍手的报文可以携带数据,也可以不携带。如果不携带数据,发送方会在第三次拍手后发出一个携带数据的报文
如果没发数据,则不消耗seq
连接释放
4次挥手
1.客户机打算关闭连接时,向其TCP发送连接释放报文段,此报文以后发出的所有报文不携带数据,该报文FIN设置为1,消耗一个序列号。
客户机不发数据了,但是对方还可以发数据,客户端可以收
2.服务器收到连接释放报文后就发出确认,次数从客户机到服务器方向的连接就释放了,TCP连接属于半关闭状态
3.如果服务器也没有数据要发了,就通知TCP释放连接,发出FIN=1的连接释放报文。
4.客户机收到连接释放报文后,必须发出确认,此时连接还不会释放,必须等到2MSL(最长报文段寿命)客户机才连接关闭。
发送缓存与报文段
TCP超时重传机制
冗余ACK :连续三个
快速重传
TCP拥塞控制
发送窗口
接收窗口rwnd
拥塞窗口cwnd
TCP网络保证不拥塞做出的尝试,它对一个发送方发送速率做出了限制
阈值ssthresh
拥塞窗口到达阈值后,进入拥塞避免模式
慢启动
cwnd初值为1
冲突避免阶段
cwnd每轮次+1
丢包处理
拥塞:TCP发送方将cwnd设置为1,并重新开始慢启动过程,阈值变为原来的一半
3个冗余ACK,快速重传机制,阈值变为1/2,cwnd设置为新的阈值,后续线性增长,即拥塞避免