结论:
- TCP和UDP可以使用相同的端口号;
- TCP协议里的端口号必须是唯一的,UDP同理;
原因:
IP首部中存入一个长度为8bit的数值,称作协议域。1代表ICMP,2代表IGMP,6代表TCP,17代表UDP。系统有能力根据接受的报文的IP字段里面的协议部分判断这个报文是什么报文,就是说,系统读数据的时候还没有读到上层报文的时候已经知道上层是什么报文了,直接交给相关的内核进程或协议栈处理就可以了。而在同一个协议内部端口号唯一。
知识拓展:
由于TCP,UDP,ICMP和IGMP都要向IP传输数据,应此IP必须在生成的IP首部中加入某种标志,以表明数据属于哪一层。为此P首部中存入一个长度为8bit的数值,称作协议域。1代表ICMP,2代表IGMP,6代表TCP,17代表UDP。
类似地,许多应用程序使用TCP或UDP来传送数据。运输层协议在生成报文首部是要存入一个应用程序的标识符。TCP和UDP都用一个16bit的端口号来表示不同的应用程序。TCP和UDP把原端口号和目的端口号分别存入报文首部中。
网络接口分别要发送和接受IP、ARP、RARP数据,