第30章 其他的TCP/IP应用程序
所属:TCP/IP详解 卷1:协议 来源:TCP/IP详解 卷1:协议
本章介绍其他的TCP/IP应用程序,包括Finger协议、Whois协议、时间服务等。
30.1 引言
其他应用程序
除了前面讲的,还有很多TCP/IP应用程序:
- Finger:查询用户信息
- Whois:查询域名/IP信息
- 时间服务:同步时间
- 等等
还有很多其他应用层协议。
本章讨论的内容
本章讨论的内容:
- Finger协议
- Whois协议
- 时间服务
- 其他小协议
本章介绍其他应用程序。
30.2 Finger协议
什么是Finger
Finger协议:
- 查询用户信息
- 看看某个人在不在
- 基本信息
- 应用层
- 用TCP
- 端口79
Finger用于查询用户信息。
Finger的作用
Finger的作用:
- 查询用户是否登录
- 用户的基本信息
- 用户名
- 真实姓名
- 登录时间
- 空闲时间
- 邮箱
- 等等
- 也可以查.plan文件
- 用户自己写的
- 留言、计划之类的
Finger查用户信息。
Finger的工作方式
Finger的工作方式:
-
客户端连服务器的79端口
- TCP连接
-
客户端发用户名
- 要查谁
- 一行
- 可以是用户名@主机
-
服务器查询
- 查用户信息
- 查.plan文件
-
服务器返回信息
- 文本格式
- 用户的信息
-
关闭连接
简单的请求响应。
Finger的问题
Finger的问题:
-
安全问题
- 泄露用户信息
- 攻击者可以收集信息
- 不安全
-
隐私问题
- 暴露用户是否在线
- 暴露个人信息
- 隐私不好
-
滥用
- 被用来扫描
- 收集信息
现在:
- 很少用了
- 很多服务器都关了
- 因为安全和隐私
Finger现在很少用了。
30.3 Whois协议
什么是Whois
Whois协议:
- 查询域名、IP、AS等的注册信息
- 谁注册的
- 什么时候注册的
- 联系方式
- 等等
- 应用层
- 用TCP
- 端口43
Whois查注册信息。
Whois的作用
Whois的作用:
- 查域名是谁的
- 查IP段是谁的
- 查注册信息
- 管理员联系方式
- 注册/过期时间
- 等等
用途:
- 查域名有没有被注册
- 找域名管理员
- 排查问题
- 反垃圾邮件
- 等等
Whois查注册信息。
Whois的工作方式
Whois的工作方式:
-
客户端连Whois服务器的43端口
- TCP连接
-
客户端发查询
- 要查什么
- 域名、IP等
- 一行
-
服务器查询
- 查数据库
-
服务器返回结果
- 文本格式
- 注册信息
-
关闭连接
简单的请求响应。
Whois服务器
Whois服务器:
- 不同的后缀有不同的Whois服务器
- .com:whois.verisign-grs.com
- .cn:whois.cnnic.cn
- 等等
- IP段也有不同的Whois服务器
- ARIN, RIPE, APNIC等
分级:
- 顶层的Whois服务器
- 指向下一级的
- 一级一级找
不同的后缀有不同的服务器。
Whois的问题
Whois的问题:
-
隐私问题
- 暴露注册人信息
- 个人信息泄露
- 垃圾邮件
-
准确性
- 信息可能不准
- 假信息
-
格式不统一
- 不同服务器格式不一样
- 解析麻烦
现在:
- 有GDPR等隐私法规
- 很多信息不公开了
- 隐藏注册人信息
Whois也有隐私问题。
30.4 时间服务
什么是时间服务
时间服务:
- 同步时间
- 让计算机的时间准确
- 很多应用需要准确的时间
- 日志
- 加密
- 认证
- 等等
时间服务同步时间。
几种时间协议
几种时间协议:
| 协议 | 端口 | 传输层 | 说明 |
|---|---|---|---|
| Time | 37 | TCP/UDP | 简单时间协议,返回32位时间 |
| Daytime | 13 | TCP/UDP | 白天协议,返回人可读的时间字符串 |
| NTP | 123 | UDP | 网络时间协议,更精确 |
有好几种时间协议。
Time协议
Time协议:
- 端口37
- TCP或UDP
- 返回从1900年1月1日到现在的秒数
- 32位
- 简单
特点:
- 简单
- 精度不高
- 秒级
- 现在用得少了
Time协议很简单。
Daytime协议
Daytime协议:
- 端口13
- TCP或UDP
- 返回人可读的时间字符串
- 比如:“Monday, July 17, 2026 12:34:56-PDT”
特点:
- 人能直接看
- 方便
- 但程序不好解析
- 精度不高
Daytime返回字符串。
NTP
NTP(Network Time Protocol):
- 网络时间协议
- 端口123
- UDP
- 更精确
- 毫秒级甚至微秒级
- 复杂得多
- 有层级结构
- 有同步算法
特点:
- 精度高
- 复杂
- 现在最常用
- 互联网时间同步的标准
NTP是最常用的时间协议。
30.5 其他小协议
Echo协议
Echo协议:
- 端口7
- TCP或UDP
- 你发什么它回什么
- 测试用
- 测试网络通不通
- 测试能不能收发数据
Echo协议用于测试。
Discard协议
Discard协议:
- 端口9
- TCP或UDP
- 你发什么它都扔掉
- 不回应
- 测试用
- 测试发送
Discard协议扔掉所有数据。
Chargen协议
Chargen协议:
- Character Generator
- 端口19
- TCP或UDP
- 不断产生字符
- 测试用
- 测试接收能力
- 测试带宽
Chargen不断产生字符。
这些小协议的用途
这些小协议的用途:
- 测试网络
- 测试协议栈
- 调试
- 很简单
- 标准的测试服务
现在:
- 很多都关了
- 安全考虑
- 容易被滥用
- 比如反射攻击
这些小协议主要用于测试。
30.6 小结
其他应用程序概述
-
Finger
- 查询用户信息
- 端口79
- 现在很少用了
-
Whois
- 查询域名/IP注册信息
- 端口43
- 还在用
-
时间服务
- 同步时间
- Time, Daytime, NTP
-
其他小协议
- Echo, Discard, Chargen等
- 测试用
Finger协议
-
作用
- 查询用户信息
- 是否登录,基本信息
-
工作方式
- TCP 79
- 发用户名,回信息
-
问题
- 安全
- 隐私
- 现在很少用
Whois协议
-
作用
- 查询注册信息
- 域名、IP等
-
工作方式
- TCP 43
- 发查询,回结果
-
服务器
- 不同后缀不同服务器
- 分级
-
问题
- 隐私
- 准确性
- 格式不统一
时间服务
-
Time协议
- 端口37
- 32位秒数
- 简单
-
Daytime协议
- 端口13
- 人可读字符串
- 方便看
-
NTP
- 端口123
- UDP
- 精度高
- 最常用
其他小协议
-
Echo
- 端口7
- 发什么回什么
- 测试
-
Discard
- 端口9
- 扔掉所有
- 测试发送
-
Chargen
- 端口19
- 不断产生字符
- 测试接收
-
用途
- 测试网络
- 调试
- 现在很多关了
关键概念
-
Finger
- 用户信息查询
- 端口79
-
Whois
- 注册信息查询
- 端口43
-
时间服务
- Time, Daytime, NTP
- 同步时间
-
小协议
- Echo, Discard, Chargen
- 测试用