目录
重谈端口号
引入
介绍
知名端口
查看
netstat
引入
介绍
第一列
其他列
选项
重谈端口号
引入
我们已经介绍了很多关于网络协议/网络相关知识了,这里,我们重新回过头再来看看端口号
- 之前介绍端口号的博客 -- 网络通信另个角度的认识(进程间通信),端口号(为什么要有,和pid的关系,分类,如何封装,和进程的定位原理+对应关系),客户端如何拿到服务端的port-CSDN博客
介绍
网络通信的过程,如果我们站在主机通信的角度看待:
- 就是两台主机上的两个进程在通信
结合根据之前所说的
- ip地址用于定位主机
- 端口号用于定位主机上的一个服务
其实端口号和pid功能类似
- 因为服务一定是依附于进程的
- 所以,端口号其实就是通过哈希[定位pcb]来找到服务存在的进程,进而通信的
那么,整个通信的流程就可以用源ip,源端口号,目的ip,目的端口号,协议号来标识一个通信
- 其中,源ip,源端口号可以定位源主机上的客户端进程
- 目的ip,目的端口号定位目的主机上的服务端进程
知名端口
查看
可以使用 cat /etc/services 命令查看系统内指明的端口号:
netstat
引入
在基于udp协议的cs网络通信代码(echo版+命令行输入版+执行指令版),netstat指令_udp ehco-CSDN博客里我们简单介绍了使用netstat命令来查看我们自主编写的服务器是否启动成功,这里我们详细介绍一下这个命令
介绍
第一列
- tcp/udp -- 网络套接字
- unix 域间套接字 -- 基于socket的本地通信方案
其他列
选项
-l 只列出处于监听状态的服务
-t 只列出tcp服务
-u 只列出udp服务
-a 列出所有服务
-n 把能显示成数字的全部转化为数字
- 比如服务名->端口号
-p 显示其建立链接的进程名
- 因为这些服务并不是我们启动的,使用超级用户可以看到:
(默认不包含listen状态,除非显式使用-l / -a)