博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UNIX网络编程读书笔记:端口号、套接口对和套接口
阅读量:6148 次
发布时间:2019-06-21

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

端口号

端口号(port number):16位整数,用来区分不同的进程。

服务器使用的端口号:TCP和UDP定义了一组众所周知的端口(well-known port),用于标识众所周知的服务。

客户端使用的端口号:通常使用短期存活的临时端口(ephemeral port)。这些端口号通常由传输层协议自动赋予客户。客户一般不关心其临时端口的具体值,而只需确信它在所在主机中是唯一的就行。传输层协议的代码确保这种唯一性。

端口号被划分成三段:

(1)众所周知的端口为0-1023. 这些端口由IANA分配和控制。可能的话,相同的端口号就分配给TCP、UDP和SCTP的同一给定服务。例如,端口号80不论是TCP还是UDP都被赋予Web服务器,尽管目前它所有的实现都单纯使用TCP。

(2)已登记的端口(registered port)为1024-49151. 这些端口不受IANA控制,不过由IANA登记并提供它们的使用情况清单,以方便整个群体。可能的话,相同端口号也分配给TCP和UDP的同一给定服务。

(3)动态的(dynamic)或私用的(private)端口:49152-65535. IANA不管这些端口,它们就是我们所称的临时端口。(49152这个魔数是65535的四分之三。)

注意:

  • UNIX系统有保留端口(reserved port)的概念,指的是小于1024的任何端口。这些端口只能赋予超级用户进程的套接口。所有众所周知的端口都是保留端口,因此分配这些端口的服务器启动时必须具有超级用户的特权。
  • 由于历史原因,源自Berkeley的实现(从4.3BSD开始)曾在1-24-5000范围内分配临时端口。
  • 有少数客户(而不是服务器)需要一个保留端口用于客户/服务器的认证:rlogin和rsh客户就是常见的例子。这些客户调用库函数rresvport创建一个TCP套接口,并给它分配513-1023范围内的一个未使用的端口。

 

套接口对和套接口

一个TCP连接的套接口对(socket pair)是一个定义该连接的两个端点的四元组:本地IP地址、本地TCP端口号、远地IP地址、远地TCP端口号。一个套接口对唯一标识互联网上的一个TCP连接。

就SCTP而言,一个关联由一组本地IP地址、一个本地端口、一组远地IP地址、一个远地端口标识。

标识每个端点的两个值(IP地址和端口号)通常称为一个套接口(socket)。

举例来说,应用程序通过bind函数为TCP、UDP或SCTP套接口指定本地IP地址和本地端口号。

转载地址:http://ahlya.baihongyu.com/

你可能感兴趣的文章
系统集成资质培训 - 挣值分析难点题目解析
查看>>
CentOS6 图形界面(gnome)安装
查看>>
myeclipse或者eclipse中建立的web项目下面出现了.classpath、.mymedata、.project处理方式...
查看>>
关于grep正则表达式-1
查看>>
10.15 iptables filter表案例 10.16/10.17/10.18 iptable
查看>>
quota&automount 笔记@2
查看>>
LeetCode:Pow(x, n) - 求指定数字x的整数次幂
查看>>
android混淆代码bug跟踪
查看>>
Lua程序块(chunk)
查看>>
我的友情链接
查看>>
Android.mk文档规范
查看>>
导出excel
查看>>
如何在微信小程序中使用async/await
查看>>
Java 获取当前操作系统信息
查看>>
Linux Centos 7 - 系统安装
查看>>
软件端口
查看>>
Concurrent
查看>>
用Shell脚本监控服务器并发邮件报警
查看>>
这里只是放我的学习笔记
查看>>
saltstack安装
查看>>