当前位置: 首页 > news >正文

深入理解端口、端口号及FTP的基本工作原理

FTP是TCP/IP的一种具体应用,FTP工作在OSI模型的第七层,TCP模型的第四层上,即应用层,FTP使用的是传输层的TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的“三次握手”的过程,其意义在于客户与服务器之间的连接是可靠的,为数据的传输提供了可靠的保证。

一、 什么是端口和端口号

在网络技术中,端口分为物理端口和逻辑端口,物理端口是指物理设备的端口,用来连接其他的网络设备,如交换机端口、路由器端口、J-45端口等;逻辑端口一般用于TCP/IP协议中的端口,端口号的范围从0到65535。

一台服务器主机一般有一个固定的IP地址,但该服务器可能提供多个服务,如Web服务、DNS服务、邮件服务和FTP服务,形成一个IP地址对应多个服务的关系,如何识别不同的服务?引入端口号就解决了这一问题,通过“IP地址+端口号”来区分不同的服务。如该主机IP地址为192.168.1.10,那么192.168.1.10:80表示Web服务,192.168.1.10:25则表示邮件服务了。

逻辑意义上的端口有多种分类标准,主要有三种分类:

(1)知名端口: 也称为熟知端口,顾名思义,即众所周知的端口,该类端口使用固定的端口号,分配给一些服务,如Web服务使用80端口、邮件服务使用25端口、FTP服务使用20和21端口,知名端口号介于1~255之间。

(2)动态端口:动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,只要运行的程序向系统提出网路申请,系统就会随机从1024至65535中分配一个供程序使用,使用完后自动释放。

(3)保留端口号

Unix系统有保留的端口号,只有具有超级用户特权的进程才允许给自己分配一个保留端口号。

常用知名端口

网路服务名称

端口号

Web服务

80

DNS服务

53

邮件服务

25

FTP服务

20(数据传输)、21(传输控制)

Telnet服务

23

二、 FTP的基本工作原理

    FTP的基本工作过程如下:

(1)打开熟知端口(端口号为21),使客户进程能连接上;系统给客户端分配一个端口,如2042。

(2)客户端利用2042端口号与FTP服务器建立会话连接。

(3)客户端与服务端传输数据时,自动产生2043(2042+1)端口号,连接服务器熟知端口号20;同时,客户端端口2042继续与服务器端口21保持会话连接。

(4)数据传输完毕,服务器回到等待状态,继续接受其他客户进程发来的请求。

(5)客户端断开与服务器的连接,客户端自动释放产生的端口号。

http://www.lryc.cn/news/445561.html

相关文章:

  • 9.3 Linux_文件I/O_相关函数
  • 点亮一个LED灯
  • 分布式框架 - ZooKeeper
  • 8月份,AI图像生成领域web端产品排行榜及产品是做什么的
  • Sqlite_Datetime列选择三月的行
  • spring里面内置的非常实用的工具
  • 计算机毕业设计 基于Python内蒙古旅游景点数据分析系统 Django+Vue 前后端分离 附源码 讲解 文档
  • centos7 docker部署nacos
  • 短视频矩阵源码/短视频矩阵系统搭建/源码开发知识分享
  • Git使用教程-将idea本地文件配置到gitte上的保姆级别教程
  • 论文 | Reframing Instructional Prompts to GPTk’s Language
  • C++ Qt / VS2019 +opencv + onnxruntime 部署语义分割模型【经验2】
  • 代码随想录算法训练营Day9
  • 2025秋招NLP算法面试真题(二十)-有监督微调基本概念
  • 使用宝塔部署项目在win上
  • [大语言模型-论文精读] Diffusion Model技术-通过时间和空间组合扩散模型生成复杂的3D人物动作
  • vue 引入 esri-loader 并加载地图
  • LobeChat:使用服务端数据库部署 - Docker+NextAuth(github)+腾讯云
  • 长列表加载性能优化
  • Vue ElemetUI table的行实现按住上下键高亮上下移动效果
  • windows C++-指定特定的计划程序策略
  • python脚本程序怎么写更优雅?argparse模块巧妙应用
  • 【React】(推荐项目)使用 React、Socket.io、Nodejs、Redux-Toolkit、MongoDB 构建聊天应用程序 (2024)
  • C++:std::move 和 std::forward
  • PHP探索校园新生态校园帮小程序系统小程序源码
  • 通信工程学习:什么是MANO管理编排
  • 备战软考Day04-计算机网络
  • 可以把台式电脑做成服务器吗
  • JavaScript 输出方式
  • 微服务(一)