网络通信的进一步理解
两个主机间进行通信,其实是两个主机间的软件进行通信,软件也就是可执行程序,运行时就是进程,所以也为进程间通信。
进程间通信需要共享资源,这里两个主机间的共享资源是网络,利用的是网络协议栈,实现一个主机中的软件(客户端)去访问另一个主机的软件(服务端)
端口号
IP地址:表示唯一的一台主机,
端口号:表示一个主机进程的唯一性的
ip : port 标识全网唯一的进程
我们客户端,如何知道服务器的端口号??
这是我们自己设计过,众所周知,约定俗称的,当我们想要访问相应的服务器,我们的客户端必须知道服务端的端口号,这是内置的,我们不知道而已
传输层是怎样在一群进程中找到属于自己的呢?
传输层有一个哈希表,里面存的是进程pcb, (绑定就是将进程自己将自己的pcb放到哈希表中),当传输层接收到报文时,里面存有端口号,在传输层的哈希表中进行哈希运算,(每一个进程都有自己pcb,pcb中存有自己的端口号)找到对应的端口号,再找到相应的进程
进程pid与端口号
当操作系统端换掉后保证我们网络端不会受影响。
即是保证其耦合度低,进程pid和端口号不会相互影响