One minute
套接字简史(探索SO_REUSEPORT、SO_REUSEPORT)
套接字简史(探索SO_REUSEPORT、SO_REUSEPORT)
从套接字的起源探索SO_REUSEPORT、SO_REUSEPORT参数在不同系统的异同
今天在研究套接字的时候,发现 SO_REUSEPORT、SO_REUSEPORT 这两个参数,在不同类型的操作系统中他们经常不一样,有的操作系统甚至没有 SO_REUSEPORT 这个参数。
所以这两个参数究竟有什么不同,在不同操作系统上又有什么限制。
这要从 1977 年讲起。
套接字的起源
1977至1995年加州大学伯克利分校开发和发布了 BSD (Berkeley Software Distribution,伯克利软件套件)(Unix的衍生系统)
(话外音: 今天,“BSD”并不特指任何一个BSD衍生版本,而是类UNIX操作系统中的一个分支的总称。)
BSD 套接字的实现是所有套接字实现的基础。基本上,所有的套接字都是在某个时间点复制了 BSD 套接字的实现,开始自行发展。就像你在 github 上 fork 了一个分支,然后开始自行发展。
同时,BSD 的套接字也在不断的演进。相当于你 fork 的那家还在发展。
这就导致了,后边复制它的系统具有早期复制它的系统所没有的功能。
(话外音:看来理解BSD套接字实现是理解所有其他套接字实现的关键呀)
套接字的使用
一个 TCP/UDP 的连接由这五个值构成:{
首先通过 socket() 来创建一个套接字协议,然后通过 bind() 来绑定源地址和端口。
47 Words
2020-02-08 08:00 +0800
Read other posts