主要学习:传输层的作用,端口(常见端口),TCP可靠性机制(头部格式详述,确认机制,三次握手,四次挥手,RST结束连接,窗口机制,完整性校验),TCP特征,UDP原理(主要特征,头部格式),TCP与UDP区别
一、传输层的作用:
(1)提供面向连接或者无连接的服务
(2)维护连接状态
(3)对应用层数据进行分段和封装
(4)实现多路复用
(5)可靠传输数据
(6)流量控制
二、端口:
1.定义:每个应用程序进出网络都需要一个唯一端口,用端口号识别数据应交给哪个程序处理
2.常见名词
(1)服务端:固定端口号
(2)客户端:1024以上随机端口
3.常见知名端口号
Telnet:远程登录;FTP :文本传输协议;HTTP:超文本传输协议;SMTP:简单邮件传输协议;DNS:域名解析协议;HTTPS(443):HTTP over SSL
三、TCP
1.TCP头部封装
1.长度:20~60字节不等
2.具体分类:
(1)source port:源端口
(2)destination port:目的端口
(3)sequence number:序列号:seq
(4)acknowledgement number:确认号:ack
序列号和确认号详解:
(1)图一解释:ACK为确认号
若数据发生错误,下一个ACK=11,让其重传
(2)图二解释:ack为确认号,总之ack总是在上一个的seq序列号上加1+length,seq为上一个的ack;特殊的,多次传输:seq等于上一个seq+上一个len,ack为几个len之和的下一个
(5)Data offset:数据偏移量
(6)Reserved:不重要
(7)标志位flags:FIN,SYN,URG,ACK,RST,PSH
1)URG:紧急标志位,若为1代表有个数据很紧急,需要优先转发,为0代表没有紧急数据
2)ACK:代表确认功能是否开启,1为开启,0为关闭
3)SYN:握手开关
为什么要三次:因为A和B都需要同意(两次不够)
4)FIN:结束开关,涉及四次挥手
为什么不能三次:因为A和B两个的FIN结束时间点不一样(可以同步开始,不一定同步结束)
5)RST:复位开关,强行结束TCP连接,因为有可能没有机会实现FIN的四次挥手
6)PSH:直接提交缓存数据
(8)window:窗口尺寸,告知别人本机的接受能力,实现流量控制
(9)checksum:校验序列,校验收到的序列是否正确
(10)Urgent Pointer:紧急指针,如果有紧急数据,则告诉紧急数据的具体位置
(11)options:可选部分
(12)padding:填充部分
2.TCP可靠性机制
(1)确认机制(保证可靠性)
seq=上一次ack
ack=上一次的seq+length
若没有收到或者收到的是不完整数据,会再次发送ack请求对方重发
(2)三次握手
(3)四次挥手,RST结束连接,窗口机制,完整性校验,见上述头部格式讲解
3.TCP特征:
优点:传输可靠性高
缺点:占用带宽高,传输延迟高
使用场景:对数据完整性要求高,但对传输延长要求低(如传大文件)
四、UDP
1.UDP头部格式
2.特征
与TCP相反,使用场景(如打视频)
五、TCP与UDP对比: