意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

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

来源:恒创科技 编辑:恒创科技编辑部
2024-02-06 09:48:59
在实际应用中,我们有时候会遇到“端口和进程关系是怎样的,如何理解传输层”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“端口和进程关系是怎样的,如何理解传输层”文章能帮助大家解决问题。


进程间通信

传输层又称为运输层,它是比较特殊的一层。一方面,它属于通信部分的最高层,另一方面,又是用户功能中的最底层。传输层是为不同主机的进程之间进行通信,对于进行分组转发的路由器来说,它只有下三层的功能,用不到传输层及以上层。


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

进程,即运行的程序。在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则像发短信,短信发出去前不需要知道对方的主机的状态,短信发没发出去也是不知道的。


上述内容具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多"端口和进程关系是怎样的,如何理解传输层"的内容,大家可以关注恒创科技的其它相关文章。
上一篇: Linux中的文件默认权限怎么理解,如何修改默认权限 下一篇: 手机怎么远程登录云服务器?