在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。

物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等。

逻辑端口是指逻辑意义上用于区分服务的端口,TCP/IP协议中的端口就是逻辑端口,通过不同的逻辑端口来区分不同的服务。一个IP地址的端口通过16bit进行编号,最多可以有65536个端口。端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535。比如用于浏览网页服务的80端口,用于FTP服务的21端口等。

由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,这就是端口号。

TCP与UDP段结构中端口地址都是16比特,可以有在0---65535范围内的端口号。对于这65536个端口号有以下的使用规定:

(1)端口号小于256的定义为常用端口,服务器一般都是通过常用端口号来识别的。任何TCP/IP实现所提供的服务都用1---1023之间的端口号,是由ICANN来管理的;
(2)客户端只需保证该端口号在本机上是惟一的就可以了。客户端口号因存在时间很短暂又称临时端口号;
(3)大多数TCP/IP实现给临时端口号分配1024---5000之间的端口号。大于5000的端口号是为其他服务器预留的。

端口的分类根据其参考对象不同有不同划分方法,如果从端口的性质来分,通常可以分为:

(1)公认端口(Wellnbsp;Knownnbsp;Ports):或称“常用端口“。这类端口的端口号从0到1024,它们紧密绑定于一些特定的服务。通常这些端口的通信明确表明了某种服务的协议,这种端口是不可再重新定义它的作用对象。例如:80端口实际上总是HTTP通信所使用的,而23号端口则是Telnet服务专用的。这些端口通常不会像木马这样的黑客程序利用。

(2)注册端口(Registerednbsp;Ports):端口号从1025到49151。它们松散地绑定于一些服务。也是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的。这些端口多数没有明确的定义服务对象,不同程序可根据实际需要自己定义,如后面要介绍的远程控制软件和木马程序中都会有这些端口的定义的。记住这些常见的程序端口在木马程序的防护和查杀上是非常有必要的。

(3)动态和/或私有端口(Dynamicnbsp;and/ornbsp;Privatenbsp;Ports):端口号从49152到65535。理论上,不应把常用服务分配在这些端口上。实际上,有些较为特殊的程序,特别是一些木马程序就非常喜欢用这些端口,因为这些端口常常不被引起注意,容易隐蔽。

根据所提供的服务方式的不同,端口又可分为:“TCP协议端口“和“UDP协议端口“

TCP协议端口:因为计算机之间相互通信一般采用这两种通信协议。前面所介绍的“连接方式“是一种直接与接收方进行的连接,发送信息以后,可以确认信息是否到达,这种方式大多采用TCP协议;

UDP协议端口:另一种是不是直接与接收方进行连接,只管把信息放在网上发出去,而不管信息是否到达,也就是前面所介绍的“无连接方式“。这种方式大多采用UDP协议,IP协议也是一种无连接方式。

1.端口号有什么作用呢?当一台电脑启动了一个可以让远程其他电脑访问的程序,那么它就要开启至少一个端口号来让外界访问。
我们可以把没有开启端口号的电脑类比为“一个密封的房间”,密封的房间当然无法接受外界的访问,所以当系统开启了一个可以让外界访问的程序后它自然需要在房间上开一个窗口来接受来自外界的访问,这个窗口就是端口。
2.为什么要给端口编号来区分它们呢。
既然一个程序开了一个端口,那么不是外部信息都可以通过这个开启的端口来访问了吗?答案是:不可以,因为数据是用端口号来通知传输层协议送给哪个软件来处理的,数据是没有智慧的,如果很多的程序共用一个端口来接受数据的话,那么当外界的一个数据包送来后传输层就不知道该送给哪一个软件来处理,这样势必将导致混乱。
上一次提到在一个经过OSI第四层传输层封装的数据段的第四层报头里包含两个端口号,既源端口号和目的端口号。
源端口号一般是:由系统自己动态生成的一个从1024—65536的号码,当计算机A通过网络访问计算机B时,如果它需要对方返回数据的话,它也会随机创建一个大于1023的端口,告诉B返回数据时把数据送到自己的哪个端口,然后软件开始侦听这个端口,等待数据返回。而B收到数据后会读取数据包的源端口号和目的端口号,然后记录下来,当软件创建了要返回的数据后就把原来数据包中的原端口号作为目的端口号,而把自己的端口号作为原端口号,也就是说把收到的数据包中的原和目的反过来,然后再送回A,A再重复这个过程如此反复直到数据传输完成。当数据全部传输完A就把源端口释放出来,所以同一个软件每次传输数据时不一定是同一个源端口号。

有黑客攻击方面知识的人会知道,其实那些所谓的黑客并不是像人们想象那样从天而降,而是实实在在从您的计算机“大门“中自由出入。计算机的“大门“就是我们平常所说的“端口“,它包括计算机的物理端口,如计算机的串口、并口、输入/输出设备以及适配器接口等(这些端口都是可见的),但更多的是不可见的软件端口,在本文中所介绍的都是指“软件端口“,但为了说明方便,仍统称为“端口“。

随着计算机网络技术的发展,原来物理上的接口(如键盘、鼠标、网卡、显示卡等输入/输出接口)已不能满足网络通信的要求,TCP/IP协议作为网络通信的标准协议就解决了这个通信难题。TCP/IP协议集成到操作系统的内核中,这就相当于在操作系统中引入了一种新的输入/输出接口技术,因为在TCP/IP协议中引入了一种称之为“Socket(套接字)“应用程序接口。有了这样一种接口技术,一台计算机就可以通过软件的方式与任何一台具有Socket接口的计算机进行通信。端口在计算机编程上也就是“Socket接口“。

例如一台服务器为什么可以同时是Web服务器,也可以是FTP服务器,还可以是邮件服务器等呢?其中一个很重要的原因是各种服务采用不同的端口分别提供不同的服务,比如:通常TCP/IP协议规定Web采用80号端口,FTP采用21号端口等,而邮件服务器是采用25号端口。这样,通过不同端口,计算机就可以与外界进行互不干扰的通信。

据专家们分析,服务器端口数最大可以有65535个,但是实际上常用的端口才几十个,由此可以看出未定义的端口相当多。这是那么多黑客程序都可以采用某种方法,定义出一个特殊的端口来达到入侵的目的的原因所在。为了定义出这个端口,就要依靠某种程序在计算机启动之前自动加载到内存,强行控制计算机打开那个特殊的端口。这个程序就是“后门“程序,这些后门程序就是常说的木马程序。

简单的说,这些木马程序在入侵前是先通过某种手段在一台个人计算机中植入一个程序,打开某个(些)特定的端口,俗称“后门“(BackDoor),使这台计算机变成一台开放性极高(用户拥有极高权限)的FTP服务器,然后从后门就可以达到侵入的目的。

萌新扫盲9—端口号的故事相关推荐

  1. 萌新扫盲3—Cache还是Buffer?区别何在

    要问Cache和Buffer的区别,首先要问另一个问题:为何会存在Cache和Buffer? 为了提速. 从功能上看,PC挺简单的,就是"输入输出"设备:参数输入进设备(比如鼠标点 ...

  2. 远程桌面端口默认是什么?修改远程桌面端口号方法

    远程桌面连接是我们控制远程电脑的高效方法,远程桌面连接也是需要使用端口的,下面我们一起来学习一下远程桌面连接默认的端口号及服务器端远程端口号的修改方法. 推荐: 服务器远程桌面端口修改工具 远程桌面端 ...

  3. Linux下MySQL端口号查看与修改(端口扫盲)

    一:什么是端口,端口号?         端口(port):可以理解为设备与外界通讯交流的通道口.端口又分为虚拟端口和物理端口.         虚拟端口,指计算机内部或交换机路由器内的端口,不可见. ...

  4. android 1.5 app,萌新编程app

    萌新编程app是为儿童用户打造的一款手机编程学习软件,平台采用图形化编程学习模式,多样化的编程游戏学习方法,海量编程学习课程任你自由体验,欢迎广大用户下载体验! 萌新编程app介绍: 萌新编程app依 ...

  5. 深夜发文,大事发生!菊厂萌新的半年挣扎!

    深夜发文,大事发生!菊厂萌新的半年挣扎! 引言 找工作阶段 入职萌新阶段 萌新阶段小结 本文首发于微信公众号:来知晓,欢迎造访公众号感受图文并茂版最佳阅读体验 原文链接:深夜发文,大事发生!菊厂萌新的 ...

  6. 利用Socket 本地和服务器之间通信(小白萌新适用之绝对能运行版)

    Java利用Socket 实现本地和服务器之间通信(小白萌新适用之绝对能运行版) 常规部署 1.先在自己本地跑通 客户端: Socket s = new Socket("localhost& ...

  7. 萌新带你开车上p站(终极番外)

    本文由"合天智汇"公众号首发,作者:萌新 0x01前言 这关其实和pwn关系不大,主要考察的都是linux下一些函数的操作,考察linux的基本功.涉及到的知识点包括一些经典的函数 ...

  8. 关于萌新初识VUE的那些事

    接触VUE这个东西,时间说长不长,说短不短,作为一个刚入坑社会不久的程序员来说,我只能说是初有见识.提笔写下这篇博客,也只是希望可以帮助到一些刚入坑前端的萌新们,具体有一些说的不到位的地方,如果大家有 ...

  9. Linux通过端口号杀死指定进程

    前言: 我们在服务器上升级项目的时候,需要将原来的项目停止,然后启动新的项目. 这时候我们只知道应用所占的端口号,如何将进程杀死呢? linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 ...

最新文章

  1. matlab 三维矩阵向量化,Matlab:向量化三维矩阵的工艺
  2. autoencoder自编码器原理以及在mnist数据集上的实现
  3. 计算机网络(二十三)-网络层-概述与数据交换方式
  4. web开发发送短信实现最简单的接口
  5. vue自定义组件递归实现树状_一道价值25k的腾讯递归组件面试题(Vue3 + TS 实现)...
  6. 未来教育2019年计算机三级数据库,2019年计算机三级数据库考试强化试题及答案012...
  7. 中英文对照 —— 图表等的可视化
  8. 十大IT危机处理高手
  9. 贵州省计算机职称考试时间2015年,关于2015年8月份贵州贵阳职称计算机考试安排通知...
  10. 支付宝系统繁忙,请稍后再试的解决
  11. 品牌纠纷中的盾牌——商标
  12. jQuery入门与实战
  13. 2022全新直播短视频系统源码+附教程/可二开可采集
  14. 移植Opencv到arm tq2440
  15. 【翻译1】Multivariate Time Series Forecasting with LSTMs in Keras——PM2.5
  16. java动物代码_Java基于接口实现模拟动物声音代码实例
  17. Activiti最全入门教程(基于Eclipse插件开发)
  18. 浙大数据结构:08-图7 公路村村通 (30 分)Prim与Kruskal算法
  19. css透明度属性简介
  20. 国内使用 slack 的团队多吗?倍洽能否在中国取代 slack

热门文章

  1. CSP error: LinAlgError : The leading minor of order XX of B is not positive definite.报错调试过程(算已解决?)
  2. 【大数据存储与处理】
  3. 北宋灭亡——这世上没有完美的制度
  4. 不爱读书爱上香,“寺庙游”因何在年轻人中爆火?
  5. web开发之数据库基础
  6. 清华大学(软件学院)-用友网络科技股份有限公司时序数据与物联应用联合研究中心成立...
  7. 2017研究生乒乓球比赛记录
  8. 哈工大计算机系统2022年秋季学期大作业
  9. pycharm this license has been suspended
  10. 暴力美学的终极形态 JAVA Feroce 2评测