TCP/IP 与 OSI 参考模型
![](https://img.haomeiwen.com/i12457267/a19f23969c74dd13.png)
硬件(物理层)
TCP/IP的最底层是负责数据传输的硬件,相当于以太网或电话线路等物理层的设备。TCP/IP是在网络互连的设备之间能够通信的前提下才被提出的协议。
网络接口层(数据链路层)
![](https://img.haomeiwen.com/i12457267/aaa634a4b0e94774.png)
互联网层(网络层)
传输层
TCP
TCP是一种面向有连接的传输层协议。它可以保证两端通信主机之间的通信可达。TCP能够正确处理在传输过程中丢包、传输顺序乱掉等异常情况。此外,TCP还能够有效利用带宽,缓解网络拥堵。
然后,为了建立断开连接,有时它需要至少7次的发包收包,导致网络流量的浪费。此外,为了提高网络的利用率,TCP协议中定义了各种各样复杂的规范,因此不利于视频会议(音频、视频的数据量既定)等场合使用。
UDP
UDP有别于TCP,它是一种面向无连接的传输层协议。UDP不会关注对端是否真的收到了传送过去的数据,如果需要检查对端是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。
UDP常用于分组数据较少或多播、广播通信以及视频通信等多媒体领域。
应用层(会话层以上的分层)
TCP/IP的分层中,将OSI参考模型中的会话层、表示层和应用层的功能都集中到了应用程序中实现。这些功能有时由一个单一的程序实现,有时也可能会由多个程序实现。
![](https://img.haomeiwen.com/i12457267/e677e9e9c9105022.png)
TCP/IP应用的架构绝大多数属于客户端/服务端模型。提供服务的程序叫服务端,接受服务的程序叫客户端。在这种通信模式中,提供服务的程序会预先被部署到主机上,等待接受任何时刻客户可能发送的请求。
客户端可以随时发送请求给服务端。有时服务端可能会有处理异常、超出负载等情况,这时客户端可以在等待片刻后重发一次请求。
TCP、UDP区分:
1. ** TCP用于传输层有必要实现可靠传输的情况。由于它是面向有连接并具备顺序控制、重发控制**等机制的,所以它可以为应用提供可靠传输;
UDP主要用于那些对高速传输和实时性有较高要求的通信或广播通信。
2. UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发过来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。
即使出现网络拥堵的情况下,UDP也无法进行流量控制等避免网络拥塞的行为。此外,传输途中即使出现丢包,UDP也不负责重发。甚至当出现包的到达顺序乱掉时也没有纠正的功能。
由于UDP面向无连接,它可以随时发送数据。再加上UDP本身的处理既简单又搞笑,由此经常用以下几个方面:
- 包总量较少的通信(DNS、SNMP等)
- 视频、音频等多媒体通信(即使通信)
- 限定于LAN等特定网络中的应用通信
- 广播通信(广播、多播)
网友评论