TCP/IP 网络支撑协议
ARP
ARP(Address Resolution Protocol,地址解析协议)是一种用于将网络层的IP地址解析为链路层的物理地址的协议。它主要工作在网络层与数据链路层之间,用于解决在同一局域网中,主机或路由器如何将IP地址与物理地址进行映射的问题。
将IP地址转换成MAC地址
ARP封装与报文格式
封装格式及报文格式
1)硬件地址长度:6(MAC地址长度)
2)协议地址长度:4(IP地址长度)
模拟器抓包-请求
1)封装过程中的类型0x0806 是指封装类型是ARP,而报文里面的类型是指的协议类型,一般是0x0800 (IPV 4)
2)封装中目标MAC是未知的,所以是FFFF:FFFF:FFFF 广播形式(报文里面是0000:0000:0000:0000)。但是因为是将IP地址解析成MAC地址,所以报文里面的目标IP地址target IP是已知的。
模拟器抓包-响应
1)这里因为响应者接收了请求者的报文,所以响应者知道请求者IP及MAC地址。值得注意的是这里源IP、MAC与目的IP、MAC和请求报文是相反的。
ARP表
主机、交换机、路由器通过ARP报文查找到IP对应的MAC地址后会生成ARP地址表,后面就不需要广播获得MAC地址了,直接查表就可以了。
1)ARP表一般默认是有时效性的,会主动更新
2)管理员写入的ARP表是永久保存的
ARP工作流程
无故ARP
无故ARP(gratuitious ARP): 使用广播方式主动发送自己IP地址的ARP。
请求型无故APR:请求自己IP的MAC地址表
用于重复IP地址检测。配置IP的时候就会发出请求型无故ARP。
应答型无故ARP:用于刷新其他主机或设备的ARP表。用于刷新交换机的MAC表。
抓包-请求
以广播的格式将自己的IP广播出去,源IP及目的IP都是自己。
未检测到重复IP就没有回应,有重复IP就会产生回应报文。
抓包-回应报文
回应报文与请求报文内容一模一样,当计算机收到回应报文后,就知道这个IP地址被占用了,所以就配置不上该IP。
代理ARP
代理 ARP 是指由一台设备(通常是路由器)代替其他主机来回应 ARP请求的机制。在一个局域网或者跨网段的网络环境中,当主机 A 想要与另一个网段的主机 B 通信时,主机 A 会先通过 ARP 去查找目的 IP 地址对应的 MAC 地址。正常情况下,它应该向自己所在网段的默认网关(路由器接口)发送 ARP 请求,而路由器收到这个 ARP 请求后,如果启用了代理 ARP 功能,它就会代替主机 B 向主机 A 回复 ARP 响应,告知主机 A 自己(路由器对应接口)的 MAC 地址,让主机 A 认为它所请求的主机 B 的 IP 对应的 MAC 地址就是路由器接口的 MAC 地址,后续主机 A 发往主机 B 的数据就会先发送到路由器,再由路由器进行转发。
RARP
知道自己的MAC地址,但不知道自己的IP地址,通过RARP来获取IP地址,早期用于无盘工作站的开机引导,现已经完全淘汰。
ICMP
ICMP 协议概述
ICMP(Internet Control Message Protocol)即 Internet 控制报文协议,它是 TCP/IP 协议族的一个重要组成部分。ICMP 协议主要用于在 IP 主机、路由器之间传递控制消息,提供差错报告以及网络探测等功能,帮助网络设备间进行通信状态的反馈和协调。
工作与网络层
ping
ping命令属于回送请求和回送回答报文,源主机向目的主机发送回送请求报文,目的主机收到后会回复回送回答报文,通过这种方式可以测试目的主机是否可达以及网络的连通性情况。
tracert
TraceRoute 通过向目标主机发送一系列具有不同生存时间(TTL)值的 Internet 控制消息协议(ICMP)数据包来确定路径。
(测试重主机到服务器经过哪些设备)
每个路由器在转发数据包时会将其 TTL 值减 1,当 TTL 值减为 0 时,路由器会向源主机发送一个 ICMP 超时消息,指示该数据包已被丢弃。
TTL是防止各种数据在网络中重复传播的一个限制。以减少网络负荷
通过记录这些超时消息的来源,TraceRoute 可以确定数据包经过的路由器序列。
这里有些设备不回应IP是因为为了保护网络信息安全,有些设备设置了禁止回复了。
原理,利用TTL丢包回复,计算机将数据包的TTL重1开始依次递增,直到目标主机回应为止。
目标不可达
目标不可达常见的分为四种情况:
- 网络不可达
- 主机不可达
- 协议不可达
- 端口不可达
回应报文
ICMP重定向
ICMP 重定向是指当路由器发现某个数据包的发送路径不是最优时,会向源主机发送一个 ICMP 重定向消息,通知源主机使用更优的路径来发送后续数据包,以提高网络传输效率,优化路由选择。
当路由器接收到一个数据包时,它会检查自己的路由表,以确定该数据包的下一跳地址。如果路由器发现数据包的源主机发送数据包的路径不是最优的,即源主机本可以通过另一个更直接的路由器到达目标地址,那么路由器就会向源主机发送一个 ICMP 重定向消息。
这个消息中包含了更优的下一跳路由器的地址信息,源主机收到重定向消息后,会更新自己的路由缓存,将后续发往该目标地址的数据包直接发送到新的下一跳路由器,从而实现路由的优化。
常见TCP应用协议
常见UDP应用协议
DNS
定义与作用
DNS 是一种分布式数据库系统,它将人类可读的域名(如www.example.com)转换为计算机可识别的 IP 地址(如 192.168.1.1)。这就如同电话簿将人名与电话号码对应起来一样,使得用户能够方便地访问互联网资源,而无需记住复杂的 IP 地址。
相当于给IP地址起个外号方便记忆,而DNS服务器一看到这个外号就知道是哪一个主机的IP。
工作原理
- 递归查询:当用户在浏览器中输入一个域名时,本地计算机首先会向本地 DNS 服务器发送查询请求。如果本地 DNS 服务器不知道该域名对应的 IP 地址,它会代表用户向其他 DNS 服务器进行查询,直到找到目标域名的 IP 地址并返回给用户。
计算机本地域名表存储在Hosts文件里面。
- 迭代查询:在迭代查询中,DNS 服务器会根据自己的缓存或配置,给客户端返回一个更接近目标的 DNS 服务器地址,让客户端继续向该服务器发送查询请求,如此反复,直到客户端获取到目标域名的 IP 地址。
FTP
FTP协议简介
FTP(File Transfer Protocol,文件传输协议)采用客户端/服务器架构,基于TCP协议,采用双TCP连接方式:
- 控制连接:使用TCP端口号21,主要用于传输命令和响应,如用户登录验证、文件操作指令等。
- 数据连接:使用TCP端口号20,专门负责实际的文件内容传输 。
FTP支持两种文件传输模式:
- ASCII模式:这是FTP默认的文件传输模式。在此模式下,本地文件会先转换成标准的ASCII码格式再进行传输,适用于传输文本文件,如.txt、.html等。
- Binary模式:也称为二进制流模式或图像文件传输模式,文件按照原始的比特流方式进行传输,适用于传送程序文件、压缩包、图片、音频、视频等非文本文件。
此外,FTP存在两种数据传输方式:
- 主动方式:客户端随机打开一个端口(大于1023)并告知服务器,服务器通过端口20主动连接客户端指定端口进行数据传输。
主动方式也称为PORT方式
• FTP客户端通过向FTP服务器发送PORT命令,告诉服务器该
客户端用于传输数据的临时端口号
• 当需要传送数据时,服务器通过TCP端口号20与客户端的临
时端口建立数据传输通道,完成数据传输
- 被动方式:服务器随机开启一个端口(大于1023)并将端口号告知客户端,客户端主动连接该端口完成数据传输,此方式更适合存在防火墙的网络环境。
被动方式也称为PASV方式
• FTP客户端通过向FTP服务器发送PASV命令,告诉服务器进
入被动方式。服务器选择临时端口号并告知客户端
• 当需要传送数据时,客户端主动与服务器的临时端口号建立数
据传输通道,完成数据传输
Telnet
定义
Telnet 是基于 TCP/IP 协议族的应用层协议,它允许用户通过网络远程登录到其他计算机系统,并在远程系统上执行命令、运行程序、管理文件等操作,就像直接在远程计算机的终端上进行操作一样。
作用
Telnet 主要用于远程管理计算机设备,如服务器、网络设备等,也可用于访问远程主机上的各种服务和资源,方便用户在不同地点对远程系统进行操作和维护。
Telnet工作过程
Telnet客户端
- 建立连接:与远程服务器建立TCP连接,默认使用端口号23。
- 输入接收:接收从键盘上输入的字符。
- 格式转换与发送:将输入的字符转换为NVT(Network Virtual Terminal,网络虚拟终端)标准格式,并发送给远程服务器。通过NVT格式,Telnet可屏蔽不同终端设备之间的差异,实现跨系统的互操作性。
- 结果展示:从远程服务器接收输出信息,并将这些信息显示在屏幕上。
Telnet服务器
5. 连接接受:接受客户端发起的TCP连接请求。
6. 用户认证:对客户端进行用户身份认证,确认用户是否有权限访问和操作服务器资源。
7. 命令等待:等待客户端输入命令,进入监听状态。
8. 命令执行:解析并执行客户端输入的命令。
9. 结果返回:将命令执行结果送回给客户端,供客户端展示。
SMTP与POP3协议简介
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)
- 定义:SMTP是一种用于发送和传输邮件的标准协议,负责将邮件从发件人的邮件服务器传送到收件人的邮件服务器。
- 端口号:默认使用TCP端口号25,常用于邮件服务器之间的通信以及客户端向服务器发送邮件。
POP3(Post Office Protocol v3,邮局协议版本3)
- 定义:POP3是用于客户端从邮件服务器接收邮件的协议。客户端通过POP3协议连接到邮件服务器,将邮件下载到本地设备进行阅读和管理。
- 端口号:默认使用TCP端口号110,为客户端提供接收邮件的服务 。