TCP_UDP
2020-03-03 本文已影响0人
强某某
-
OSI网络七层模型
5.png -
各层的主要供
- 低三层
- 物理层:使原始的数据比特流能在物理介质上传输
- 数据链路层:通过校验、确认和反馈重发等手段,形成稳定的数据链路(01010101)
- 网络层:进行路由选择和流量控制(IP协议)
- 传输层:提供可靠的端口到端口的数据传输服务(TCP/UDP协议)
- 高三层
- 会话层:负责建立、管理和终止进程之间的会话和数据交换
- 表示层:负责数据格式转换、数据加密与解密、压缩与解压缩等
- 应用层:为用户的应用进程提供网络服务
-
传输控制协议TCP
传输控制协议(TCP)是Internet一个重要的传输层协议。TCP提供面向连接 、可靠、有序、字节流传输服务。应用程序在使用TCP之前,必须先建立TCP连接
6.png -
TCP握手机制
7.png
-
用户数据报协议UDP
8.png -
Socket编程
9.png -
粘包和拆包
- 粘包:Nagle算法-客户端累计一定量或者缓冲一段时间(即使缓冲区没有满等待一段时间之后也会发起传输)再传输。服务端缓冲区堆积。导致多个请求数据粘在一起。
- 拆包:发送的数据大于发送缓冲区,进行分片传输。服务端缓冲区堆积,导致服务端读取的请求数据不完整。
-
上面的说明其实不光针对单方面,tcp这种全双工通信,服务端客户端都会发送和接收,所以都会导致粘包和拆包问题
image.png