网络层协议中的IP数据包和LCMP协议

本文介绍了IP数据包的结构,包括版本、首部长度、优先级与服务类型等字段,以及ICMP协议的作用和封装。接着,详细阐述了ARP协议的工作原理,从ARP缓存到广播请求和应答的过程。还提到了Windows系统中的ARP命令和相关网络诊断工具如ping和tracert。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

IP数据包格式

ICMP协议(Internet控制报文协议)

LCMP协议的封装

ARP协议

ARP工作原理

ARP命令

总结 


IP数据包格式

 

版本:该字段包含的是 IP 的版本号,4bit。目前 IP 的版本为 4(即 IPv4)。

首部长度:该字段用于表示IP数据包头长度,4bit。IP数据包头最短为20字节,但是其长度是可变的,具体长度取决于选项字段的长度。

优先级与服务类型:该字段用于表示数据包的优先级和服务类型,8bit。通过在数据包中划分一定的优先级,用于实现 QoS(服务质量)的要求。

总长度:该字段用以指示整个 IP数据包的长度,包括包头和数据。

标识符:该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。

标志:标志字段,。对当前的包不能进行分片(当该包从一个以太网发送到另一个以太网时),或当一个包被分片后用以指示在一系列的分片中,最后一个分片是否已发出。

段偏移量:该字段用于表示段偏移量。段偏移量中包含的信息是指在一个分片序列中如何将各分片重新连接起来。

TTL:该字段用于表示 IP数据包的生命周期。一个数据包每经过一个路由器,TTL将减去 1。当 TTL 的值为 0 时,该数据包将被丢弃。可以防止一个数据包在网络中无限循环地转发下去。

协议号:协议字段。该字段用以指示在 IP数据包中封装的是哪一个协议,是 TCP还是 UDP,TCP 的协议号为 6,UDP的协议号为 17。

首部校验和:该字段用于表示校验和。接收方和网关用来校验数据有没有被改动过。

源 IP 地址:该字段用于表示数据包的源地址。

目标 IP地址:该字段用于表示数据包的目的地址。

可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。

ICMP协议(Internet控制报文协议)

一个“错误侦测与回馈机制”

通过IP数据包封装

用来发送错误和控制消息

探测两个节点间网络连通性是否正常,如图所示:

 

LCMP协议的封装

ICMP协议属于网络层协议

ICMP数据在网络层产生

 

ping命令

 windows系统中ping命令常用参数:
-t 参数会一直不停的执行ping   

如下所示, 按crtl+c退出命令(其他命令一样)

-a 参数可以显示主机名称                
-l 参数可以设定ping包的大小          在Linux系统下为:-s
–n 指定发送包的个数                                                    -c
–S 指定源IP去ping                                                        -I

 

 跟踪路由路径命令:
WIN:    tracert IP/域名
Linux:    traceroute IP/域名

广播与广播域

  • 广播:将广播地址做为目的地址的数据帧
  • 广播域:网络中能接收到同一个广播的所有节点的集合
  • 广播地址为FF-FF-FF-FF-FF-FF

 

ARP协议

ARP(Address Resolution Protocol),地址解析协议,将一个已知的IP地址解析成MAC地址

局域网中主机的通信——IP地址与MAC地址(IP地址是逻辑寻址,MAC地址是物理寻址)。

ARP工作原理

(1) PC1发送数据给PC2前,会先查询自己ARP缓存表中,有没有对方主机的P地址与MAC地址的对应记录,如果有相应记录信息,就直接进行单播通信;
(2)若PC1的ARP缓存表中没有相关记录,则会通过广播的方式发送ARP请求消息(目的MAC地址为广播地址FF-FF-FF-FF-FF-FF),交换机接收到消息后会进行广播泛洪; 

 

 

(3)只有拥有对应的IP地址的主机会接收ARP请求消息,其它主机则会丢弃ARP消息,目的主机会先根据ARP消息将源主机的IP和MAC地址对应信息,保存到自己的ARP缓存表中;

(4)目的主机通过单播的方式回复ARP应答消息,交换机会根据MAC地址表进行转发;
(5)PC1将PC2的IP与MAC地址保存到ARP缓存表中,之后通过单播发送数据给PC2;
注意:动态学习到的ARP老化时间是120s,并且静态绑定的ARP条目在计算机关机或重启后消失

ARP命令

windows系统中ARP命令:

arp -a            ###查看ARP缓存表
arp -d [IP]        ###清除ARP缓存
arp -s IP MAC    ###ARP静态绑定

如图所示

 

总结 

了解 IP数据包格式字段含义

知道ICMP协议

ARP工作原理

相关命令
 

 

LCMP 协议并非 Java 虚拟机或垃圾回收机制中的标准概念,因此无法通过现有的引用材料直接获取相关信息。然而,基于常见的网络通信协议以及分布式系统的实践,可以推测 LCMP 可能是一种自定义的应用层协议或者特定场景下的轻量级消息传递协议。 以下是关于可能的 LCMP 协议的一般性描述及其潜在用途: ### 什么是 LCMP 协议? 假设 LCMP 是一种轻量级的消息传递协议(Lightweight Communication Message Protocol),它通常用于实现高效的客户端与服务器之间的数据交换[^3]。该协议的主要目标可能是减少传输开销并提供快速响应能力,适用于实时性强、资源受限的环境。 #### 特点 - **高效性**:设计上注重性能优化,能够处理大量并发请求而不会显著增加延迟。 - **简单易用**:相比复杂的传统协议栈,LCMP 的结构更加简洁明了,便于开发者理解维护。 - **灵活性强**:支持多种类型的数据包格式转换,满足不同业务需求的同时保持良好的兼容性扩展性。 ### 如何使用 LCMP 协议? 要利用好这种假想中的 LCMP 技术方案,则需遵循以下几个方面来构建完整的解决方案框架: #### 安装配置过程概述 1. 下载官方发布的 SDK 或源代码文件; 2. 修改默认参数设置以适配具体应用场景的要求; 3. 编写初始化逻辑完成基础连接建立工作流程; 4. 实现核心功能模块如序列化反序列化操作等必要环节。 下面给出一段 Python 示例程序展示如何创建基本的服务端监听实例: ```python import socketserver class MyTCPHandler(socketserver.BaseRequestHandler): """ The request handler class for our server. It is instantiated once per connection to the server, and must override the handle() method to implement communication with client using LCMP protocol rules. """ def handle(self): # Receive data from connected peer according to defined format specification under LCMP standard received_data = self.request.recv(1024).strip() print(f"Received message:{received_data}") # Process incoming packet following relevant guidelines set forth by LCMP documentation response_payload="Acknowledged" self.request.sendall(response_payload.encode()) if __name__ == "__main__": HOST, PORT = "localhost", 9999 with socketserver.TCPServer((HOST,PORT),MyTCPHandler) as tcp_server: try: tcp_server.serve_forever() except KeyboardInterrupt : pass ``` 以上脚本展示了怎样借助 SocketServer 库搭建起一个简易版的支持 LCMP 数据交互模式的服务端应用原型。 ### 注意事项 尽管上述内容提供了有关 LCMP 的一些理论探讨技术指导方向,但由于缺乏确切的技术资料支撑,实际开发过程中仍需参照权威文档进一步验证完善细节部分。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值