端口的概念

系统、进程、服务、通信

地址名称拥有者:系统(ip地址)、进程;

端口拥有者:进程、服务。

端口是通信数据进出的通道:缓存+IO+服务标示;

谁拥有、干什么。

端口是通过软件的方式,定义的数据通信的接口,是逻辑上的概念,与硬件无关。

应用程序或者服务的标识,标识数据包的拥有者。

https://bbs.csdn.net/topics/70481881

计算机 “端口”可以认为是计算机与外界通讯交流的出口。

其中硬件领域的端口又称接口,如: USB 端口,串行端口等。

软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和 I / O (基本输入输出)缓冲区。

https://blog.csdn.net/qq_38791687/article/details/80763674

一种服务对应一个端口

问题出在哪里呢?我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程中的哪一个呢?

端口其实就是队,操作系统为各个进程分配了不同的队,数据包按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。
  
不光接受数据包的进程需要开启它自己的端口,发送数据包的进程也需要开启端口,这样,数据包中将会标识有源端口,以便接受方能顺利的回传数据包到这个端口。
————————————————
版权声明:本文为CSDN博主「鱼sama」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42724467/article/details/88533582

IO端口和IO内存的区别及分别使用的函数接口 

         每个外设都是通过读写其寄存器来控制的。外设寄存器也称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式,可以把CPU分成两大类。一类CPU(如M68K,Power PC等)把这些寄存器看作内存的一部分,寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令进行,所以,这种CPU没有专门用于设备I/O的指令。这就是所谓的“I/O内存”方式。另一类CPU(典型的如X86),将外设的寄存器看成一个独立的地址空间,所以访问内存的指令不能用来访问这些寄存器,而要为对外设寄存器的读/写设置专用指令,如IN和OUT指令。这就是所谓的“ I/O端口”方式。

https://www.cnblogs.com/zengkefu/p/5452698.html

 

原文地址:https://www.cnblogs.com/feng9exe/p/12517628.html