网络知识学习3---(端口原理的讲解)

1.端口的作用

    在传输层一方面需要确认是使用TCP还是UDP,另一方面是要确定发送方和接收方的端口号。(当然还有差错校验和流量控制的功能)

    端口号是什么

        IP地址是用来区别网络(互联网)中的不同主机

        端口是用来区别计算机中服务(比如QQ服务、HTTP服务、FTP服务……)

        常用的服务的端口应该是固定的,当然可以改,但是改了之后,服务段对于客户端就变成隐身的了。所以服务如果是对外提供服务的,给普通用户客户端使用的,这个时候它的端口号就应该是固定的。比如网页服务的端口号是80,一旦你改了,那么用户就无法访问你的服务器,就没办法打开网页(这显然不是我们做服务器想看到了)

    TCP协议包头

        如图

            可以看出首先标出的是源端口(0~15bit),然后时目的端口(16~31bit)

    UDP协议包头

        如图

            明显UDP协议包头包含的信息比TCP包头少,但是和TCP一样的是:可以看出首先标出的是源端口(0~15bit),然后时目的端口(16~31bit)

    端口号的分类

        端口号长度是16bit,所以有2^16个端口数,即0~2^16-1(也激就是0~65535)

        1000以内的端口号是给系统使用的,10000以上的端口号是给开发者使用的

    需要注意的是,UDP和TCP的端口是分开的,比如,TCP有端口号10101,那么UDP也有自己的端口号10101。但是在真实的环境中,因为端口号本身的数量也是足够多的,所以,一般并不进行这样的区分,比如FTP是TCP的一个应用协议,它的端口号是20,这个时候往往就不在为UDP分配20的端口,就是为了防止造成混淆

    常见的端口号

        FTP(文件传输协议):端口号是 20 21

        SSH(安全Shell协议):端口号是 22

        telnet(远程登陆协议):端口号是 23

            但是小心,现在的不管是windows还是linux,都禁止开启23 端口,因为这个协议的传输是明文方式,没有加密,所以只要截获数据包就可以直接的获取信息,所以很不安全,所以目前linux 常用的远程管理方式是 SSH(这更安全)

        DNS(域名协议):端口号是 53

        http(超文本传输协议):端口号是 80

        SMTP(简单邮件传输协议):端口号是 25

        POP3(邮局协议3代):端口号是 110

    常用的关于端口的命令

        netstat -an:查看本机启动的端口号

            -a:查看所有连接和监听端口

            -n:显示IP地址和端口号,而不显式域名和服务名

原文地址:https://www.cnblogs.com/xumenger/p/4508039.html