传输层概述:端口、进程之间的关系

进程间通信

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

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

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...