我们知道,我们可以使用setsocketopt
api 来改变套接字的缓冲区大小。
既然socket fd是用户进程创建的,那么它是否占用进程内存地址,就像32位机每个进程4G虚拟地址中的顶部1G内核空间一样?
而且当socket关闭时,似乎要经过2MSL时间才释放fd,这会导致缓冲区存在的时间更长。
为了澄清,我的问题是:套接字缓冲区是否映射到进程的用户虚拟地址空间?
我们知道,我们可以使用setsocketopt
api 来改变套接字的缓冲区大小。
既然socket fd是用户进程创建的,那么它是否占用进程内存地址,就像32位机每个进程4G虚拟地址中的顶部1G内核空间一样?
而且当socket关闭时,似乎要经过2MSL时间才释放fd,这会导致缓冲区存在的时间更长。
为了澄清,我的问题是:套接字缓冲区是否映射到进程的用户虚拟地址空间?