应用层
负责程序之间的通信
传输层
负责两台主机间的数据传输
网络层
负责地址管理和路由选择
数据链路层
负责数据帧的封包和解包
物理层
负责传输光信号
tcp粘包
发生方将两个数据包合在一个数据包中,接受方接受后需要拆分
原因:1.socket缓冲区太大
tcp拆包
发送方将一个数据包分成两个或多个数据包发送,或者有两个数据包,第一个数据包包含第二个数据包的一点内容的情况,接受方接受后需要拆分
原因:1.socket缓存区太小
解决
1.在数据包头部增加数据长度信息
2.数据包末尾增加特殊结束符号区分