Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1405639
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: LINUX

2013-04-02 20:13:50

       对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描述符体现。
     
      
阅读(1273) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~