python-高级编程-07-端口

TCP和UDP协议中都有端口这个概念,但是端口却不是IP协议的一部分

端口的出现主要是为了给协议栈和应用对应

  。协议栈端口号将数据分配给不同的应用程序

  。应用层程序用端口号去区分不同的链接

TCP 和UDP 协议都使用了端口号 的概念来标示发送方和接收方的应用层 对每个tcp链接的一端 都用一个相关的16位的无符号端口号来分配他们 即便是UDP
这种没有链接的协议 依旧有一个16的无符号端口号 可能的被承认的端口号有 2^16 -1 65535

端口分类

  著名端口 监听端口 和动态端口

    著名端口由因特网赋号LANA来分配 并且常用于系统进程--权限在root

    监控端口 通常用来运行各种用户自己写的服务 服务监听在这些端口下不需要特别的权限

        linux内核使用 32768 - 61000 范围 

    动态端口 通常别用来在主动发起连接时候随便分配使用 在任何特定的tcp连接外不具有任何意义 这是

        由于tcp等协议是通过四元组 来区分不同的网络连接 当本地主动发起tcp连接的时候 如果目的IP

        目的端口 本地ip都是一样的只能通过占用不同的本地端口来去区分连接

0号端口 0号端口是保留端口

  如果在bind0号端口 以为由系统随便分配一个端口来绑定 当我们需要监听一个随机端口 可以使用bind 0 

原文地址:https://www.cnblogs.com/nerdlerss/p/7490157.html