1.网络模型
![](https://i-blog.csdnimg.cn/blog_migrate/b6ee278d01c82a83e9dca08f185af289.jpeg)
OSI七层模型
7 应用层:允许访问网络资源。 通信单位:报文(指的是TCP/IP协议里广义的应用层 )
6 表示层:数据的转换,加密,压缩
5 会话层:建立,管理,终止会话
4 运输层:提供可靠的进程到进程的交付和差错恢复。
3 网络层:从源到终点传送分组,提供网络互联。通信单位 数据报
2 数据链路层:将比特组织成帧结构,提供逐跳交付。通信单位 帧
1 物理层:经过媒体传送比特
6 表示层:数据的转换,加密,压缩
5 会话层:建立,管理,终止会话
4 运输层:提供可靠的进程到进程的交付和差错恢复。
3 网络层:从源到终点传送分组,提供网络互联。通信单位 数据报
2 数据链路层:将比特组织成帧结构,提供逐跳交付。通信单位 帧
1 物理层:经过媒体传送比特
2.TCP与UDP
UDP(
User Datagram Protocal,
用户数据报协议
)
(1)简介
面向数据报的不可靠的 传输层通信协议
(2)特点
UDP不能保证可靠传输,也就更不能保证所发送的数据的到达顺序,它所实现的是尽最大的努力交付。
UDP是面向数据报文的、无连接的协议,因此它的开销低并且发送器前的时延小(因为不用建立连接啊),面向报文也使得IP层在传输UDP协议的报文时既不会拆分也不会合并。
UDP可以支持一对一、一对多、多对一、多对多的通信。
UDP没有拥塞控制功能,它的发送速率不会随着网络出现的拥塞而降低,所以它的实时性较好。这也是许多视频聊天应用采用它的原因。
(3)报文格式
TCP(
Transmission Control Protocol,
传输控制协议
)
(1)简介
面向连接的、可靠的、基于字节流的传输层通信协议
(2)特点
TCP协议保证可靠传输,也就是说发送的数据是什么样,接收的数据也是什么样。
TCP协议是有连接的、面向数据流的协议。有连接是说数据传送前通信双方需要建立连接、通信完毕后需要断开连接,不过这里所提到的连接都是逻辑上的连接。面向数据流的意思是说发送方应用程序发送的数据是什么顺序,接收方应用读取的接收到的数据也是什么顺序。
TCP协议提供的是端到端的通信,也就是说一条TCP连接只能提供一对一的通信。不过,一个应用可以同时建立多条TCP连接来实现与多个目标的通信。
TCP协议提供拥塞控制功能,会在网络状况良好的情况下适当提高发送/接收速率,反之则适当降低发送/接收速率。这样,将会提高对网络的利用率。
(3) 数据封包结构