加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

端口和进程关系是怎样的,怎样理解传输层

发布时间:2023-04-29 14:41:01 所属栏目:Linux 来源:
导读:在实际应用中,我们有时候会遇到“端口和进程关系是怎样的,如何理解传输层”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“端口和进程关系是怎样的,如何理解传输层”
在实际应用中,我们有时候会遇到“端口和进程关系是怎样的,如何理解传输层”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“端口和进程关系是怎样的,如何理解传输层”文章能帮助大家解决问题。
 
进程间通信
 
传输层又称为运输层,它是比较特殊的一层。一方面,它属于通信部分的最高层,另一方面,又是用户功能中的最底层。传输层是为不同主机的进程之间进行通信,对于进行分组转发的路由器来说,它只有下三层的功能,用不到传输层及以上层。
 
进程,即运行的程序。在linux中,当一个程序运行了,操作系统就会给该进程分配一个进程号。可以用命令ps aux来查看所有进程。
 
# ps aux
 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
 
root         1  0.0  0.1  51744  2808 ?        Ss   Jul31  16:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
 
……
 
端口
 
TCP/IP的运输层用16位端口号来标志一个端口,所以一个主机可以有65535个端口。做过web开放的肯定知道一些常用的端口号,比如:web服务器的80、mysql服务的3306等端口。两个主机之间的进程是通过各自的端口号来进行通信的,所以,进程还必须具有监听端口的功能。在linux中,查看监听的端口的命令是netstat -tlunp
 
# netstat -tulnp
 
Active Internet connections (only servers)
 
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2449/nginx: worker  
 
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      1010/pure-ftpd (SER
 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1819/sshd           
 
……
 
端口还具有复用和分用的功能,复用的指主机的多个应用进程可以使用同一个端口号进行通信,而分用时指从IP层拿到的数据报又可以通过端口号交给不同的应用进程。
 
TCP和UDP
 
传输层只有两个协议:传输控制协议TCP以及用户数据报协议UDP。这两个协议有各自的特点,和自己应用的一些场景。
 
TCP是面向连接的协议,在传递数据之前必须先建立连接,不需要进行数据传输的话就需要断开连接。TCP是一种比较复杂的协议,需要考虑许多因素。它可以提供端对端的可靠传输,但不支持一对多以及多对多的通信。常见的使用TCP协议的有HTTP协议、ftp协议、telnet协议等。
 
UDP是面对报文的,它比较简单,是尽最大努力而不是可靠的传输。它可以进行一对一、一对多以及多对多的通信。常见的使用UDP协议的协议有DHCP、DNS、RIP协议。
 
有一个例子是用来说明它们的特点的:TCP像是打电话,通话前必须先建立连接。而UDP则像发短信,短信发出去前不需要知道对方的主机的状态,短信发没发出去也是不知道的。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!