本人还是一名在校大学生,最近在读Behrouz A.Forouzan和FIrouz Mosharraf写的《计算机网络教程:自顶向下方法》。今天刚刚看到讲述套接字的部分,有一些感想,遂记录下来。
我们都知道,按照目前网络的分层方法,可以将计算机网络分成五层,应用层,运输层,网络层,数据链路层,物理层。其中,在一台计算机上,底下四层都是被操作系统打包好了的,这个打包好了的东西,我个人认为就是套接字。两台计算机进行通信,就可一抽象地认为,两台计算机各有一个套接字,然后这两个套接字相互连接。应用程序调用套接字接口(即操作系统提供的接口方法),来进行通信。
我个人感觉可以类比一下c++中的类,一般私有数据成员都会有一个set和get方法,通过这两个方法可以获取或者修改私有数据成员,我们只需要调用get(),通过返回值,就可以知道这个数据成员的值。而不必关心这个get()方法具体是如何实现的。同理,我们只要调用套接字接口就可以读取或者写入信息,而不必关心里面具体的传输过程是什么样子的。
最后,附上《计算机网络教程:自顶向下方法》中的一张图,希望帮助理解。
图片来源(《计算机网络教程:自顶向下方法》2.2.1小节)