对tcp/ip协议新认识(一)-网络协议

对tcp/ip协议新认识(一)

 

    对tcp/ip协议层次的新认识

             链路层根据不同的MAC地址将数据分流到不同的物理实体;

             IP层根据不同的IP将数据分流到不同的网络实体;

             传输层根据不同的端口将数据分流到不同的网络应用程序;

             套接字层根据不同的socket描述符将应用程序的数据分发到不同的线程与进程。

      对tcp/ip中的listen与accept的新认识

              主要是accept,它会将应用程序阻塞,accept会返回一个新的socket描述符。

              那么这个socket描述符会与新的端口挂钩吗?

              新创建的socket描述符并未与任何端口绑定,也就是说没有占用新的端口。

              也就是说listen与accept使用的是同一个端口。

              也正好说明端口表示这网络实体上的应用程序。

              端口代表着应用程序。

      socket描述符与端口的新认识

              socket描述符并不是与端口一一对应的,一个端口对应多个socket描述符。

              例如:

                    listen在某个端口上监听,accept接受多个新的连接,也就是socket描述符。

                    连接的概念就是建立的端口之上的。

      常见的epoll,poll,select是处在套接字层次的系统调用,实际上可以认为同一个端口上的数据分流就是多个socket描述符体现。

Leave A Comment