Linux网络传输层与防火墙设置详解
1. 传输层协议:TCP、UDP与服务
在互联网上,我们已经了解了数据包如何在主机之间传输,但对于计算机如何将接收到的数据包数据呈现给运行中的进程,却还未涉及。我们通常希望多个应用程序能同时与网络进行通信,比如同时运行电子邮件客户端和多个网页浏览器,并且希望能以比处理数据包更便捷的形式接收数据。
传输层协议和服务就承担了这些任务。其中,最常用的两个传输协议是传输控制协议(TCP)和用户数据报协议(UDP)。这两种协议都会在网络节点上定义端口。当本地机器上的程序想要与远程机器上的服务进行通信时,它会在本地机器上打开一个端口,并请求与远程机器上的某个端口建立连接。这里的连接由两个主机、双方的端口以及一个特殊的数据包序列共同定义。一旦双方的传输层服务建立了连接,主机之间就可以交换数据了。
传输层服务的实现较为复杂,因为它们需要将一系列可能无序到达的数据包转换为可供程序使用的数据流。不过幸运的是,我们无需深入了解这些复杂的细节。
在TCP和UDP中,端口用数字表示。如果一个程序在某个端口上接受连接,就称其在该端口上监听。不同的服务通常有其知名端口,例如,电子邮件服务器监听TCP端口25,大多数Web服务器监听TCP端口80。需要注意的是,只有超级用户才能使用1到1023号端口,而所有用户都可以监听并从1024号及以上的端口创建连接。
在Unix系统中, /etc/services 文件将服务名称映射到端口号和传输层协议。这个纯文本文件包含如下格式的行:
ssh 22/t
超级会员免费看
订阅专栏 解锁全文
2285

被折叠的 条评论
为什么被折叠?



