Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8192
  • 博文数量: 2
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2015-09-26 15:56
文章分类
文章存档

2015年(2)

我的朋友
最近访客

分类: 网络与安全

2015-10-19 19:59:12

测试平台分别是Windows 7 64位旗舰版和CentOS 6.5.
测试方式就是两个tcp或udp服务器,分别启动,设置或不设置SO_REUSEADDR选项,看绑定的冲突情况。结论如下图



有几个基本结论:
1、只要端口不同,两个server绑定就不会有问题。
2、TCP和UDP的端口管理互不影响,端口相同也没任何问题。
3、在同一端口的绑定中,linux比windows更严格。如在开启了SO_REUSEADDR的情况下,相同IP和端口的两个server在windows上竟然可以绑定成功,而客户端连接的去向跟2个server启动顺序有关系
4、在不开启SO_REUSEADDR时,TCP与UDP对相同IP相同端口容忍度为零。
5、有一个比较有意思的对照是:在UDP协议中,当SrvA和SrvB都绑定0.0.0.0和相同端口时,设置了OS_REUSEADDR选项的结果截然相反。Linux中后启动的能收到UDP数据,而windows先启动的能收到数据。

其他结论,请各取所需。
阅读(749) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~