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都不一样,虽然都具有唯一性,但端口号从始至终都是一个样子从不改变的。

相关推荐
速盾cdn2 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
yaoxin5211232 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin2 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
PersistJiao4 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
黑客Ash6 小时前
【D01】网络安全概论
网络·安全·web安全·php
->yjy6 小时前
计算机网络(第一章)
网络·计算机网络·php
朝九晚五ฺ7 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream7 小时前
Linux的桌面
linux
xiaozhiwise7 小时前
Makefile 之 自动化变量
linux
摘星星ʕ•̫͡•ʔ8 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络