TCPIP之常用协议
一、TCPIP之网络支撑协议
1.ARP
ARP是网络层协议,在同一广播域内,将IP地址解析成MAC地址.
-
1.1 无故ARP
请求型无故ARP
设备在网络中不管是自动获取ip地址还是手动配置ip地址,设备都会发送请求型无故ARP检查这个ip地址是否有重复的。
应答型无故ARP
--一般是网关设备发。
1.2 代理ARP--已被网关代替
代理ARP(Proxy ARP)工作过程
当主机A(无默认网关配置)尝试与不同子网的主机B通信时,主机A误认为B在同一局域网,遂发起ARP请求查询B的MAC地址。此时,路由器(开启代理ARP功能)拦截该广播请求:
路由器检查目标IP(B的IP)是否属于其直连的其他子网;
若是,路由器以自己的MAC地址单播回复ARP响应给主机A;
主机A将发往B的数据帧封装目的MAC为路由器接口MAC;
路由器收到数据后,按正常路由流程转发至目标子网。
本质:路由器“欺骗”主机A,代理了跨网段主机的ARP响应职责,使无网关配置的主机能与外网通信。
1.3 RARP
抓包分析
2.ARP表
不同设备展示ARP表的命令。
3. ICMP 互联网控制消息协议
ICMP工作在网络层,封装于IP,协议号1,用于发送错误消息和控制消息。
你可以把 ICMP 当成网络里的 “信使” 或 “反馈员”:
- 当网络里的数据包出问题(比如到不了目标、超时、路径不对),ICMP 会发 “报错信” 告诉源主机哪里错了;
- 当需要测试网络通不通(Ping)、查数据包走哪条路(Traceroute),ICMP 会配合发 “探测信” 和 “回应信”。
3.1 ICMP报文类型
分类 | 类型值 | 报文名称 | 功能说明 | 常见细分代码(Code)及含义 |
---|---|---|---|---|
差错报告报文 | 3 | 目的不可达(Destination Unreachable) | 数据包无法送达目标时发送,告知源主机具体原因 | 0:网络不可达 1:主机不可达 3:端口不可达 6:目标网络未知 7:目标主机未知 |
11 | 超时(Time Exceeded) | 数据包因 TTL 过期或分片重组超时而被丢弃 | 0:TTL 过期(跳转次数超过限制) 1:分片重组超时(未收到所有分片) | |
12 | 参数问题(Parameter Problem) | IP 报文头部存在错误(如字段无效),无法处理时发送 | 0:IP 头部参数错误(如版本号不正确) 1:缺少必要的选项字段 | |
4 | 源抑制(Source Quench) | 告知源主机降低发送速率(因接收方缓存已满),现代网络中较少使用 | 无细分代码 | |
5 | 重定向(Redirect) | 路由器告知源主机更优路由,引导调整数据包发送路径 | 0:网络重定向 1:主机重定向 2:网络和端口重定向 3:主机和端口重定向 | |
查询报文 | 8 | 回显请求(Echo Request) | 测试目标主机可达性(Ping 命令核心),包含随机数据 | 无细分代码(需接收方回复类型 0 的报文) |
0 | 回显应答(Echo Reply) | 对回显请求的响应,返回请求中的随机数据 | 无细分代码 | |
13 | 时间戳请求(Timestamp Request) | 用于同步网络时间或测量传输延迟,包含发送时间戳 | 无细分代码(需接收方回复类型 14 的报文) | |
14 | 时间戳应答(Timestamp Reply) | 对时间戳请求的响应,包含接收和发送时间戳 | 无细分代码 | |
10 | 路由请求(Router Solicitation) | 主机启动时发现局域网内的路由器,获取网关信息 | 无细分代码(需路由器回复类型 9 的报文) | |
9 | 路由通告(Router Advertisement) | 对路由请求的响应,包含路由器 IP 地址等信息 | 无细分代码 | |
17 | 地址掩码请求(Address Mask Request) | 主机获取所在网络的子网掩码(无 DHCP 时使用) | 无细分代码(需路由器回复类型 18 的报文) | |
18 | 地址掩码应答(Address Mask Reply) | 对地址掩码请求的响应,返回子网掩码信息 | 无细分代码 |
ICMP协议以及报文讲解(ICMP查询报文、ICMP差错报文)_icmp报文-CSDN博客
3.2 ping命令
3.3Trace Route
1. Traceroute 基本作用与目的
Traceroute 是网络排障、路径分析的常用工具,用于追踪数据包从源主机到目标主机经过的网络路由( hops,跳数 ),帮我们理清 “数据怎么从本地传到目标,中途经过哪些设备”,排查网络延迟、不通等问题。
2. TTL(生存时间)的关键机制
- TTL 本质:IP 数据包头部的一个字段(8 位),初始值由操作系统 / 设备设置(如常见 64、128 等),每经过一个路由器(路由跳),TTL 值减 1 。
- 核心逻辑:若 TTL 减到 0,数据包还未到达目标,路由器会丢弃该包,并向源主机发送 “ICMP TTL 超时” 消息 ,告知 “我是第 X 跳路由器,包在这超时被扔啦” 。
3.此情况涉及两种ICMP类型
- ICMP TTL 超时:路由器收到 TTL=0 的包时发送,用于 “上报” 路径中的路由跳。
- ICMP 回显应答:目标主机收到 TTL 未超时、且是自己的包时(如最终 Traceroute 探测包),回复此消息,标志 “到达终点” 。
4.目标不可达类型
三、TCPIP应用协议
1.常见TCP应用协议
2.常见UDP应用协议
1.1 DNS
Hosts 文件
作用:主机本地的 “小字典”,存主机名和 IP 的对应关系,系统访问网络时,会先查 Hosts 找对应,能实现简单的本地域名解析 。
DNS 域名解析基础
架构与协议:采用客户端 / 服务器(C/S)架构,基于 UDP 协议,服务器默认用 53 端口通信 。客户端发域名查询请求,服务器返回 IP,让域名和 IP “挂钩” 。
域名
1.2 FTP
主动模式是服务器主动发起数据连接,在客户端有严格防火墙时连接失败;
被动模式是客户端主动发起数据连接,解决了客户端防火墙的限制, 当服务器也开启防火墙时,服务器支持动态开放端口支持被动FTP连接。