16

OSI&TCP/IP模型

要弄清tcp udp socket http websocket之间的关系,首先要知道经典的OSI七层模型,与之对应的是TCP/IP的四层模型。
看图说话:
clipboard.png

从图中可以看出,tcp udp工作在传输层,http websocket工作在应用层,而socket不属于七层模型中的任一层,可以理解为socket工作在传输层与应用层中间的隐含层中。

几者之间的关系

socket本身不是一种协议,而是对传输层中的TCP/UDP协议进行了封装,对用户隐藏了内部TCP/UDP是如何传输的,只提供一套接口(API)给程序员调用,从而完成socket编程。通过socket接口,我们才能使用TCP/UDP协议。

关于socketTCP/UDP的关系,类似操作系统与接口之间的关系:
TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。

clipboard.png

而我们通常浏览网页用到的http协议,是建立在TCP协议之上的一种应用层协议。http协议最显著的特点是它是一种无状态连接,客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接,是一种“短连接”。

几者之间的关系概况

对于几者之间的关系,可以概况为:

http websocket等应用层协议通过socket接口从而调用tcp udp等传输层协议,从而达到网络通信。

tcp udp =》 socket =》 http websocket

总结

综上所述,我们编程不会直接去调用tcp udp,而是通过他们封装好的接口socket去通信。可以说,现在几乎网络上所有的通信,底层都是通过socket完成的,一切皆Socket


阳呀呀
2.2k 声望2.7k 粉丝