TCP/UDP协议
UDP 校验和
TCP
数据偏移 * 4 = 首部长度,数据偏移取值 5 - 14,首部长度 20 - 60 ,选项 0 - 40
TCP没有数据长度,因为网络层的首部已经有数据长度了,UDP首部的数据长度主要是为了数据32bit对齐
URG为1时,紧急指针有意义,代表一个长度,数据部分开头指定长度为紧急数据
SYN = 1 ,ACK = 0建立连接;SYN = 1,ACK = 1 同意建立连接
FIN = 1 ,数据传输完毕,释放连接
序号:数据部分第一个字节编号
确认号:希望下一次对方传递过来的数据部分的第一个字节编号
窗口:占两个字节,有流量控制功能,可以告知对方下一次允许发送的数据大小
可靠传输:
没有收到确认,就重新发送,通过连续ARQ协议(差错自动重传)+ 滑动窗口协议实现
SACK选择性确认技术,窗口中间的某个包丢了,那么可以准确的传输出丢失的数据,不需要将后面已收到的数据重复发送。SACK信息在”TCP数据格式中的选项“内。
sequence num (row) - sequence num 的值为相等的请求,是同一个请求的不同分片
sequence num(row) 建立链接时的序号
简述文件传输过程:客户端通过TCP与服务器链接,之后发送http请求,服务器在传输层将大文件切片,分成多个网络层数据,再传输到数据链路层(以太网帧)。
可靠传输中可能出现的问题
多次重传还是失败,会收到reset报文,重传。失败次数跟系统设置有关。
为何数据在传输层分割,因为只有传输层才有重传功能(可靠传输)