SOCKET本身是什么
网络传输数据是2个应用层中进程进行通信,应用层给传输层的报文中有本地IP,PORT,目标IP, PORT,如果每次传输报文的时候都要重复把这些数据写入报文中,繁琐不便于管理。
使用socket代表通信的双方,socket是一个整数,在TCP中包含一个四元组(本地IP,本地PORT,目标IP,目标PORT),UDP中是二元组(目标IP,目标PORT),这样做可以使穿过层间接口的数据最小。
有点类似c语言中的指针,就是起了一个别名来表示一大串数据,但又有些不同,socket会生成一张表,如下图所示。
一个报文过来后可以根据源IP PORT,目标IP PORT查出是哪个进程创建的socket ,再由这个进程进行数据处理。
可以把SOCKET理解成对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。