博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络端口服务(PortsService)介绍
阅读量:4149 次
发布时间:2019-05-25

本文共 1584 字,大约阅读时间需要 5 分钟。


ForeWord


本文介绍了关于网络通信的重要概念:端口号,并调研了网络端口服务的分类。

Key Point:

  1. 端口号概念
  2. 网络端口服务调研

    tips:全文阅读仅需3min ٩(๑❛ᴗ❛๑)۶

这里写图片描述

开车ヾ(◍°∇°◍)ノ゙~


啥是端口号


什么是端口号?

我们知道,在网络数据传输中,目的主机收到数据包后。要经过各层协议栈最后到达应用程序。整个过程可以总结为下图:

2

自底向上的过程描述如下

Step1:以太网驱动程序根据以太网首部中的“上层协议”字段确定该数据帧的有效载荷 (payload,指除去协议首部之外实际传输的数据)是IP、ARP还是RARP协议的数据报,然后交给相应的协议处理。

Step2:若为IP数据报,IP协议再根据IP首部中的“上层协议”字段确定该数据报的有效载荷是TCP、UDP、ICMP还是IGMP,然后交给相应的协议处理。

Step3:若为TCP段或UDP段,TCP或UDP协议再根据TCP首部或UDP首部的“端口号”字段确定应该将应用层数据交给哪个用户进程。从而完成数据传输。

说了这么多,

2

端口号的作用:IP 地址是标识网络中不同主机的地址,而端口号就是同一台主机上标识不同进程的地址,IP 地址和端口号合起来标识网络中唯一的进程。

端口包括物理端口和逻辑端口:

物理端口:用于连接物理设备之间的接口,如ADSL Modem、集线器、交换机、路由器上用于连接其他网络设备的接口。   逻辑端口:逻辑上用于区分服务的端口,如TCP/IP协议。

网络端口服务(PortsService)


背景:网络通信中的端口号

对于一般的网络通信,通信的双方分别是客户端和服务器。客户端主动发起请求,而服务器被动地等待、接收和应答请求。客户端 的IP地址和端口号唯一标识了该主机上的客户端进程,服务器的IP地址和端口号唯一标识了该主机上服务进程。

由于客户端是主动发起请求的⼀方,它必须知道服务器的IP地址和服务进程的端口号,所以,一些常见的网络协议有默认的服务器端口。

165

例如HTTP服务默认TCP协议的80端口、FTP服务默认TCP协议的21端口、TFTP服务默认UDP协议的69端口。。。

在使用客户端程序时,必须指定服务器的主机名或IP地址。如果不明确指定端口号则采用默认端口,/etc/services中列出了所有well-known(众所周知)的服务端口和对应的传输层协议,这是由IANA(InternetAssignedNumbersAuthority)规定的:

45

其中有些服务既可以用TCP也可以用UDP,为了清晰,IANA规定这样的服务采用相同的TCP或UDP默认端口号,而另外一些TCP和UDP的相同端口号却对应不同的服务。

事实上,很多服务有well-known的端口号,然而客户端程序的端口号却不必是well-known的。往往是每次运行客户端程序时由系统自动分配一个空闲的端口号,用完就释放掉。称为ephemeral的端口号。

网络端口分类

一个IP地址的端口通过16bit进行编号,所以最多可以有65536个端口。体现在上图中,端口是通过端口号来标记的,端口号只有整数,范围是从0到65535。

这么多的端口,自然有它的分类:

10

1. 知名端口:端口号范围从0到1023,一般固定分配给一些服务。     2. 动态端口:端口号范围从1024到65535,一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。     3 .保留端口号:介于1~1023之间,一些应用程序(如有名的Rlogin,26.2节)将它作为客户与服务器之间身份认证的一部分。

注:大多数TCP/IP实现给临时端口号分配1024—5000之间的端口号。大于5000的端口号是为其他服务器预留的。


The End


就介绍到这里吧,ヾ( ̄▽ ̄)Bye~Bye~

123

你可能感兴趣的文章
idea添加gradle模块报错The project is already registered
查看>>
在C++中如何实现模板函数的外部调用
查看>>
在C++中,关键字explicit有什么作用
查看>>
C++中异常的处理方法以及使用了哪些关键字
查看>>
如何定义和实现一个类的成员函数为回调函数
查看>>
内存分配的形式有哪些? C++
查看>>
什么是内存泄露,如何避免内存泄露 C++
查看>>
栈和堆的空间大小 C++
查看>>
什么是缓冲区溢出 C++
查看>>
sizeof C++
查看>>
使用指针有哪些好处? C++
查看>>
引用还是指针?
查看>>
checkio-non unique elements
查看>>
checkio-medium
查看>>
checkio-house password
查看>>
checkio-moore neighbourhood
查看>>
checkio-the most wanted letter
查看>>
Redis可视化工具
查看>>
大牛手把手带你!2021新一波程序员跳槽季,全套教学资料
查看>>
Android高级工程师进阶学习,分享PDF高清版
查看>>