Samba 服务使用的端口和协议(是一组TCP UDP协议的组合,主要使用CIFS协议,有一个Java例子)

Samba服务所使用的端口和协议:

1)Port 137 (UDP) - NetBIOS 名字服务 ; nmbd
2)Port 138 (UDP) - NetBIOS 数据报服务
3)Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)
4)Port 389 (TCP) - 用于 LDAP (Active Directory Mode)
5)Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)
6)Port 901 (TCP) - 用于 SWAT,用于网页管理Samba  
windows系统之间的文件共享协议:NetBEUI(NetBIOS Extend User Interface)协议和IPX/SPX协议
NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行设置,特别适合于在“网络邻居”传送数据。
NETBEUI缺乏路由和网络层寻址功能,既是其最大的优点,也是其最大的缺点。因为它不需要附加的网络地址和网络层头尾,所以很快并很有效且适用于只有单个网络或整个环境都桥接起来的小工作组环境。
因为不支持路由,所以NETBEUI永远不会成为企业网络的主要协议。NETBEUI帧中唯一的地址是数据链路层媒体访问控制(MAC)地址,该地址标识了网卡但没有标识网络。路由器靠网络地址将帧转发到最终目的地,而NETBEUI帧完全缺乏该信息。
NetBEUI协议主要用于本地局域网中,一般不能用于与其他网络的计算机进行沟通。 
IPX/SPX (Internetwork Packet Exchange/Sequences Packet Exchange,Internet分组交换/顺序分组交换IPX/SPX)是Novell公司的通信协议集。与NetBEUI形成鲜明区别的是IPX/SPX比较庞大,在复杂环境下具有很强的适应性。这是因为IPX/SPX在设计一开始就考虑了网段的问题,因此它具有强大的路由功能,适合于大型网络使用。
IPX主要实现网络设备之间连接的建立维持和终止;SPX协议是IPX的辅助协议,主要实现发出信息的分组、跟踪分组传输,保证信息完整无缺的传输。 其中,IPX协议负责数据包的传送;SPX负责数据包传输的完整性。
LINUX系统之间文件共享 和 LIUNX与WINDOWS系统之间的文件共享:IBM SMB,服务器信息块协议
服务器信息块(SMB)协议是一种IBM协议,用于在计算机间共享文件、打印机、串口等。SMB协议可以用在因特网的TCP/IP协议之上,也可以用在其它网络协议如IPX和NetBEUI之上。

http://blog.csdn.net/wangsifu2009/article/details/6780749

------------------------------------------------------------------------------

基于SMB/JCIFS协议的共享文件上传和下载(局域网中共享文件获取文件)

SMB最初是IBM的贝瑞·费根鲍姆(Barry Feigenbaum)研制的,其目的是将DOS操作系统中的本地文件接口“中断13”改造为网络文件系统。后来微软对这个发展进行了重大更改,这个更改后的版本也是最常见的版本。微软将SMB协议与它和3Com一起发展的网络管理程序结合在一起,并在Windows for Workgroups和后来的Windows版本中不断加入新的功能。

CIFS (Common Internet File System) 通用Internet文件系统

  在windows主机之间进行网络文件共享是通过使用微软公司自己的CIFS服务实现的。 

  CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机的服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议(见最后的名词解释)现在是局域网上用于服务器文件访问和打印的协议。象SMB协议一样,CIFS在高层运行,而不象TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。

  CIFS 可以使您达到以下功能:

  1.访问服务器本地文件并读写这些文件

  2.与其它用户一起共享一些文件块

  3.在断线时自动恢复与网络的连接

  4.使用西欧字符文件名

  一般来说,CIFS使用户得到比FTP更好的对文件的控制。它提供潜在的更直接地服务器程序接口,这比使用HTTP协议的浏览器更好。CIFS最典型的应用是windows用户能够从“网上邻居”中找到网络中的其他主机并访问其中的共享文件夹.

  CIFS 是开放的标准而且已经被作为Internet应用程序标准被提交到IETF。

JCIFS是CIFS 在JAVA中的一个实现,是samba组织负责维护开发的一个开源项目,专注于使用java语言对cifs协议的设计和实现。他们将jcifs设计成为一个完整的,丰富的,具有可扩展能力且线程安全的客户端库。这一库可以应用于各种java虚拟机访问遵循CIFS/SMB网络传输协议的网络资源。类似于java.io.File的接口形式,在多线程的工作方式下被证明是有效而容易使用的

Java代码

  1. package com.smb;
  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.io.OutputStream;
  10. import jcifs.smb.SmbFile;
  11. import jcifs.smb.SmbFileInputStream;
  12. import jcifs.smb.SmbFileOutputStream;
  13. public class Smbtest {
  14. /**
  15. * 从局域网中共享文件中得到文件并保存在本地磁盘上
  16. * @param remoteUrl 共享电脑路径 如:smb//administrator:[email protected]/smb/1221.zip  , smb为共享文件
  17. * 注:如果一直出现连接不上,有提示报错,并且错误信息是 用户名活密码错误 则修改共享机器的文件夹选项 查看 去掉共享简单文件夹的对勾即可。
  18. * @param localDir 本地路径 如:D:/
  19. */
  20. public static void smbGet(String remoteUrl,String localDir){
  21. InputStream in = null;
  22. OutputStream out = null;
  23. try {
  24. SmbFile smbFile = new SmbFile(remoteUrl);
  25. String fileName = smbFile.getName();
  26. File localFile = new File(localDir+File.separator+fileName);
  27. in = new BufferedInputStream(new SmbFileInputStream(smbFile));
  28. out = new BufferedOutputStream(new FileOutputStream(localFile));
  29. byte []buffer = new byte[1024];
  30. while((in.read(buffer)) != -1){
  31. out.write(buffer);
  32. buffer = new byte[1024];
  33. }
  34. } catch (Exception e) {
  35. e.printStackTrace();
  36. }finally{
  37. try {
  38. out.close();
  39. in.close();
  40. } catch (IOException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. }
  45. /**
  46. * 把本地磁盘中的文件上传到局域网共享文件下
  47. * @param remoteUrl 共享电脑路径 如:smb//administrator:[email protected]/smb
  48. * @param localFilePath 本地路径 如:D:/
  49. */
  50. public static void smbPut(String remoteUrl,String localFilePath){
  51. InputStream in = null;
  52. OutputStream out = null;
  53. try {
  54. File localFile = new File(localFilePath);
  55. String fileName = localFile.getName();
  56. SmbFile remoteFile = new SmbFile(remoteUrl+"/"+fileName);
  57. in = new BufferedInputStream(new FileInputStream(localFile));
  58. out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));
  59. byte []buffer = new byte[1024];
  60. while((in.read(buffer)) != -1){
  61. out.write(buffer);
  62. buffer = new byte[1024];
  63. }
  64. } catch (Exception e) {
  65. e.printStackTrace();
  66. }finally{
  67. try {
  68. out.close();
  69. in.close();
  70. } catch (IOException e) {
  71. e.printStackTrace();
  72. }
  73. }
  74. }
  75. public static void main(String[] args) {
  76. smbPut("smb://administrator:[email protected]/smb", "E:/1221.zip");
  77. smbGet("smb://administrator:[email protected]/smb/1221.zip", "D:/");
  78. }
  79. }

http://iteye.blog.163.com/blog/static/1863080962012111155514179/

------------------------------------------------------------------------------
时间: 2024-10-06 13:37:08

Samba 服务使用的端口和协议(是一组TCP UDP协议的组合,主要使用CIFS协议,有一个Java例子)的相关文章

网络协议中HTTP,TCP,UDP,Socket,WebSocket的优缺点/区别

先说一下网络的层级:由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层 1.TCP和UDP TCP:是面向连接的一种传输控制协议.属于传输层协议.TCP连接之后,客户端和服务器可以互相发送和接收消息,在客户端或者服务器没有主动断开之前,连接一直存在属于长连接. 优点:安全.传输数据无大小限制.准确可靠,先发先至 缺点:效率低,不能做离线任务.连接有耗时 UDP:是面向非连接的用户数据报协议.属于传输层协议.所谓的无连接就是在传输数据之前不需要交换信息,没有握手建立连接的过程

西门子TCP/UDP端口

通过TCP和UDP传输数据的不同服务用到了哪些端口? 显示订货号 描述 本条目给出了基于TCP或UDP进行数据传输的各种服务所使用的端口概览. 如果数据传输经过了路由器或者使用了防火墙,需要在路由器或防火墙上根据所需要的服务使能相应的端口. 服务 端口号 传输协议 描述 FTP 20, 21 TCP "文件传送协议(FTP)"用来从远程计算机系统复制文件或复制文件到远程计算机系统.此协议将TCP/IP用作底层协议. 可以利用FTP协议执行对文件和目录的命令,例如 列出或删除远程计算机系

传输层协议(TCP/UDP)介绍

一,TCP/IP协议族的传输层协议概况:1,TCP:传输控制协议2,UDP:用户数据报协议二,TCP/UDP协议详解:1,TCPa.TCP是面向连接的,可靠的进程到进程通信的协议 :TCP提供全双工服务,即数据可在同一时间双向传输.b.TCP报文段:TCP将若干个字节构成一个分组.叫报文段.TCP报文段封装在IP数据报中.数据段详解:.序号(32):发送端为每个字节进行编号,便于接收端正常重组.确认号(32):用于确认发送端的信息.窗口大小(16):用于说明本地可接收数据段的数目,窗口大小是可变

smb协议详解和samba服务的配置

理论部分 samba:基于smb协议使网络上的计算机能共享文件 samba的核心是smbd和nmbd两个守护进程 smbd:管理samba服务器上的共享目录 nmbd:进行netbios名解析,使客户端能浏览服务器的共享资源 协议端口: smbd:tcp 445和tcp139 nmbd:udp 137/138 工作流程: (图片来源网络) samba服务器的安装和配置 1.安装samba     yum install samba -y 2.修改配置文件/etc/samba/smb.conf #

Linux系统学习 二十、SAMBA服务—介绍、安装、端口

1.简介 网络数据文件共享服务器 可以和Windows中的网上邻居通用 数据共享的方法: Windows中最常用的是“网上邻居”.网上邻居使用的文件系统是CIFS(通用互联网文件系统)协议进行数据共享,不能跨网段,跨路由. Linux中最常用的是NFS服务 由来: 在1991年Andrew Tridgell为了实现Unix和Windows之间文件共享,开发了SMB(Server Message Block,服务消息块)文件系统 Samba与NetBIOS协议 IBM开发的NetBIOS协议是为了

cifs协议与samba服务

1.基本概念: CIFS是实现文件共享服务的一种文件系统,主要用于实现windows系统中的文件共享,linux系统中用的比较少linux系统中利用CIFS文件系统实现文件共享,需要安装samba服务.它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务.CIFS 使用客户/服务器模式.客户程序请求远在服务器上的服务器程序为它提供服务.服务器获得请求并返回响应.CIFS是公共的或开放的SMB协议版本,并由Microsoft使用.SMB协议在局域网上用于服务器文件访问和打印的协

Samba服务详解

Windows客户端和linux服务端实现共享文件的方式是运用samba服务器,用的是SMB和CIFS协议以及NETBIOS协议,可以实现不同的系统之间互相共享文件.Linux/Unix之间用的是NFS协议. 服务 nmb :提供NETBIOS域名解析,将计算机的netbios名称解析成ip地址,并提供浏览服务显示网络上的共享资源列表. smb : 提供目录和打印机共享,支持认证,权限设置,管理网络共享资源. 监听端口 1.NETBIOS协议对于windows来讲监听TCP的139端口和UDP的

Samba 服务的搭建

一.服务概述 SMB/CIFS SMB(Server Message Block,服务消息块) CIFS(CommonInternet FIle System,通用互联网文件系统) Samba服务通常用来做文件服务器,它可以实现 windows 与类 Unix 实现共享打印机,共享文件等功能,samba 底层也是 CIFS 协议. 二.安装需要的软件包 samba                服务端软件 samba-client        客户端软件 samba-common       

samba服务的用法

samba是架起windows和linux的桥梁,并且提供不同系统间的共享服务! samba的工作原理 samba服务功能十分强大,这与其通信基于smb协议有关.smb不仅提供目录和打印机的共享,还支持认证,权限设置.在早期,smb运行于nbt协议上使用udp协议上的137,138端口及tcp协议的139端口.后期smb经过开发,可以直接运行tcp/ip协议,没有额外的nbt层,使用tcp协议的445端口! samba工作流程: 当客户达端访问服务器时,信息通过smb协议进行传输,其工作过程可以