IP与进程

数据进入主机的内部是目的还是手段?

如上图所示,一个数据从主机A到主机B后,这个数据进入主机内部后,是如何让主机B进行运行和识别该数据,这个数据传输到主机B是手段还是目的?

举个例子,聊天是人在聊天,下载文件是人在使用计算机进行下载,浏览网页是人在浏览,那么人是如何知晓聊天记录以及送达,下载的文件是何时下载完毕,网页信息是如何让人查看到的。

同时,聊天包括聊天的过程,聊天软件的启动,下载文件的下载进度,网页信息的信息传达和网页的运行,都是一种进程的表现,所以换句话说,聊天是进程在维持聊天传输和接收聊天信息,下载的文件是进程在进行下载和保存,网页的打开和关闭是进程的开启和关闭。

所以数据的传输实质上是从主机A的某一个进程,将数据传输到主机B的某一个进程中,数据传输的本质就是进程和进程之间的数据传输。

所以,一个数据从主机A传输到主机B中,这个数据需要进入的是主机B的某一个接收该数据的进程中。

数据传输到主机并不是目的,而是一种手段,是让数据传输到 进程的手段。

如何标识主机的唯一性,和数据的唯一性?

如上所述,数据是进入到主机的某个进程中,那么在一个主机当中,进程有许多个,如何判断哪一个进程是该数据需要进入的呢?

其中,在之前的文章中已经说明过,IP地址是用来标识主机的唯一性

所以,也可以用一组数据来表示某个进程的唯一性!

端口号:

  • 端口号是一个 2 字节 16 位的整数。
  • 端口号用来标识一个进程,告诉操作系统,当前的这个数据要交给哪一个进程来处理。
  • IP 地址+端口号能够标识网络上的某一台主机的某一个进程。
  • 一个端口号只能被一个进程占用。

为了标识主机内部的进程,使用了端口号,端口号是传输层协议的内容;在传输层中,传输层的报头中会写上目的端口号,表示去哪一个端口,每一个进程都会绑定一个端口号,当数据报文抵达目标主机后,会把数据交给对应的端口 ,也就是对应的进程。

端口号范围划分:

  • 0-1023:知名端口号, HTTP,FTP,SSH 等这些广为使用的应用层协议,他们的端口号都是固定的。
  • 1024-65535: 操作系统动态分配的端口号,客户端程序的端口号,就是由操作系统从这个范围分配的。

为什么不用pid来表示进程的唯一性呢?

在之前的学习中,我们可以知晓,用来标识进程的不只是端口号,还有pid,那么为什么不适用pid来表示进程的唯一性,或者说,为什么不在网络传输中使用pid进行数据传输呢?

1、 如果使用pid表示唯一性是可以的,pid本身就有唯一性,但是pid在网络协议栈中充当进程唯一性也可以,但是pid是一个系统级别的概念,而端口号、传输等是网络级的概念,但是如果使用pid进行标识标识网络传输时,进程的唯一性,那么这就是系统级和网络级的强耦合。

强耦合也就是耦合度过高,就会给双方带来巨大的问题隐患,所以需要做到解耦!系统就是系统的,网络就是网络的,这样便于管理。

2、同时在系统当中,并不是每一个进程都想要进行网络通信,所以只有需要进行网络通信的进程才需要端口号,如果是使用pid作为进程进行网络通信的唯一性,那么就会导致根本分不清谁需要进行网络通信,而且pid是会发生变化的,一个进程在重启数次后,它每次的pid都不一样,虽然都具有唯一性,但端口号从始至终都是一个样子从不改变的。

相关推荐
努力努力再努力wz1 小时前
【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!
java·linux·运维·服务器·c语言·数据结构·c++
物理与数学9 小时前
linux 内存分布
linux·linux内核
东城绝神9 小时前
《Linux运维总结:基于ARM64+X86_64架构使用docker-compose一键离线部署MySQL8.0.43 NDB Cluster容器版集群》
linux·运维·mysql·架构·高可用·ndb cluster
creator_Li10 小时前
即时通讯项目--(1)环境搭建
linux·运维·ubuntu
一条咸鱼_SaltyFish10 小时前
远程鉴权中心设计:HTTP 与 gRPC 的技术决策与实践
开发语言·网络·网络协议·程序人生·http·开源软件·个人开发
Mr'liu11 小时前
MongoDB 7.0 副本集高可用部署
linux·mongodb
文静小土豆11 小时前
Rocky Linux 二进制 安装K8S-1.35.0高可用集群
linux·运维·kubernetes
暮云星影12 小时前
二、linux系统 应用开发:整体Pipeline流程
linux·arm开发
weixin_4307509313 小时前
OpenMediaVault debian Linux安装配置企业私有网盘(三) 静态ip地址配置
linux·服务器·debian·nas·网络存储系统
4032407313 小时前
[Jetson/Ubuntu 22.04] 解决挂载 exFAT 硬盘报错 “unknown filesystem type“ 及只读权限问题的终极指南
linux·运维·ubuntu