网络通信概念
网格层的ip地址可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。
Socket概念
Socket基本概念
socket是一种特殊文件,说白了Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。
在设计模式中,Socket其实就是一个外观模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面。对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。其实socket也没有层的概念,它只是一个外观设计模式的应用,我们大量用的都是通过socket实现的。
我们平常说的TCP、UDP是指的行业规范好的通信协议,它们体现为具体的编程模型就是socket编程。socket是编程接口,TCP和UDP是通信规范,二者相互对应,但不是一个层次的。所以假如面试有人问你socket和TCP的区别,面试官其实就是考察你对协议和接口的理解。