TCP和UDP的区别详解:
1,TCP协议是面向连接的协议,而UDP协议是无连接的协议
2,TCP协议的传输是可靠的,UDP协议的传输“尽力而为”
3,TCP协议可以实现流控,而UDP不行
4,TCP协议可以实现分段,而UDP不行
5,TCP传输速度较慢,占用资源大;而UDP传输速度较快,占用资源小;
面向连接:
面向连接 设备在正式传输数据之前,先使用预备的协议建立点到点的连接,之后再传输数据。
TCP协议:
TCP协议 --- 可变长头部 (选项看情况)死
PSH:如果为1则直接发给应用,不用进行缓冲区,给数据排序
ACK:确认标记位 确认序号才有用
SYN:请求标记位 --- 请求传输
FIN:结束标记位 --- 结束传输
RST:强制断开连接 --- 上网限制
URG:紧急标记位 --- 有紧急数据 会激活紧急指针
校验和:确认数据的完整性,还可校验下一层协议(伪头部校验) --- 反码相加法
首部长度:TCP协议头部的长度
窗口大小:一次发的数据包个数(动态变化)
传输层的校验是伪头部校验 --- 除了校验本层头部及数据部分内容外, 还会将网络层的部分数据一起进行校验 --- 12字节 --- 32源IP地 址,32目标IP地址,8位保留,8位协议号,16位总长度 --- 反码相加法
三次握手:
建立A与B之间的 双向会话
四次挥手:
关闭双向会话
A和B的数据长度不一,所以中间不能合并,要分开
TCP协议保证传输可靠性的机制 --- 确认,重传,排序,流控 --- 滑动窗口机制
--- 滑动窗口机制
确认序号:确认收到上一个数据包,请求下一个数据包
win窗口值:可以一次性处理的数据包的数量 --- 动态的
在机器中:窗口值还是以 字节数 来表示
UDP协议:
UDP的校验和 --- 头部校验
网络层 --- IP地址 --- IP协议
首部长度:有选项,可变长头部
服务类型:需要一些特殊服务
总长度:头部内容加数据长度
IP分片:数据包太大,分成小包
MTU --- 最大传输单元 --- 1500字节(确定的)
MSS --- 最大段长度 --- 1460字节(不确定的)
SYN包里面会包含MSS长度,协商,在TCP连接的三次握手的前两次中,如果双方携带的MSS长度不同,则以小的为准。
1,16位的标识,分片之后,每一片将拥有相同的标识,标明属于同一个数据包
2, 3位标志
3, 13位片偏移,用来拼装,前面一共有的字节数
生存时间(TTL):数据包每经过一次路由器的转发,TTL值将会减一,当一个数据包中的TTL值为0时,路由器将不再转发该数据包,直接把他丢弃。
协议:上层使用协议
协议号:
TCP --- 6
UDP --- 17
ICMP --- 1
首部校验和:校验
解封装:看协议类型,交给上层 相应的模块去处理