As I know, tcp port in 'time_wait' stat cann't be used. However, in my experiment, server reuses the 'time_wait' port? Why?Firstly, in client machine, type command ehco 40000 40001 > /proc/sys/net/ipv4/ip_local_port_range. So, the maximum number of TCP ports is 2.server codewhile (1) {    int len = sizeof(struct sockaddr);    fd = accept(sfd, &remote, &len);    read(fd, buf, sizeof(buf));    close(fd);}client code    for (i = 0; i < 3; i++)    {        sleep(1);        pid_t pid = fork();        if (pid == 0)        {            handler();            exit(0);        }    } void handler() {      * ............. */      res = connect(sfd, result->ai_addr, result->ai_addrlen);      if (res == -1) {        perror(error);        exit(1);      }      printf(connect\n); }show[root@livecd ~]# ./client connect[root@livecd ~]# connectconnectIt's up to 3 connections. I think, 2 connections at most. Why ? server has 2 timewait connections.[root@livecd ~]# netstat -anp | grep TIMEtcp  192.168.88.131:2016   192.168.88.132:40000  TIME_WAIT                  tcp  192.168.88.131:2016   192.168.88.132:40001  TIME_WAIT                              EnvironmentLinux livecd.centos 2.6.32-642.el6.i686 #1 SMP Tue May 10 16:13:51 UTC 2016server config[root@livecd ~]# cat /proc/sys/net/ipv4/tcp_fin_timeout 60[root@livecd ~]# cat /proc/sys/net/ipv4/tcp_tw_recycle 0[root@livecd ~]# cat /proc/sys/net/ipv4/tcp_tw_reuse 0client config[root@livecd ~]# cat /proc/sys/net/ipv4/ip_local_port_range 40000   40001Important    I also try ubuntu server 14.04, but got the same result.
why linux reuse 'time_wait' port?
linux;socket