网络层协议与应用和ICMP与ARP

前言

- 理解IP数据包格式
-理解并应用ICMP协议原理
-理解ARP协议


一、IP数据包格式

 网络层负责定义数据通过网络流动所经过的路径。主要功能总结为如下几点:

  • 定义了基于IP协议的逻辑地址
  • 选择数据通过网络的最近路径
  • 连接不同的媒介类型

 如图是IP数据包头(IP头部)的格式,字段含义如下:

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

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

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

  • 总长度 (Total Length)
    该字段用以指示整个数据包的长度,16bit。最长为65535字节,包括包头和数据。

  • 标识符(Tdentification)
    该字段用于表示TP数据包的标识符,16bit。当IP对上层数据进行分片时,它将给所有的分片分配同一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。
    路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。

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

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

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

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

  • 首部校验和(Header Checksum)
    该字段用于表示校验和,16bit。接收方和网关用来校验数据有没有被改动过。

  • 源IP地址(Source IP Address)
    该字段用于表示数据包的源地址,32bit。

  • 目标IP地址(Destination IPAddress)
    该字段用于表示数据包的目的地址,32bit。

  • 可选项(Options)
    可选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。
    在这里插入图片描述

二、ICMP 协议

ICMP协议的作用 侦测或通知网络设备之间可能发生的各种各样的情况。

2.1 ICMP介绍

 ICMP(Internet Control Message Protocol)全程“ Interner 控制报文协议” ,用来侦测或通知网络设备之间可能发生的各种各样的情况。总结如下:

  • ICMP是一个“ 错误侦测与回馈机制 ”
  • 通过IP数据包封装的
  • 用来发送错误和控制消息
  • ICMP协议属于网络层协议

ICMP的封装过程如下图:
在这里插入图片描述

2.1 ICMP的基本使用

Ping命令

ping [-t][-l 字节数][-a][-i] IP地址|主机名

[]中参数为可选参数

Windows系统中ping命令常用选项:

-t 参数会一直不停的执行ping(默认会发四个包)

-a 参数可以返回对方的主机名

-l 参数可以设定ping包的大小(-s), 如 ping ip -l 1000

-n 指定发送包的个数(-c), 如 ping ip -n 10

-s 指定源IP去ping(-i)

注:
括号内为在Linux系统下命令选项;
Ctrl + C 快捷键关闭命令框;
如果目标计算机启用了防火墙的相关设置,及时网络正常也可能会返回“请求超时”信息,即很久连不上没反应。

跟踪路由路径命令:

Windows系统: tracert IP地址/主机域名
Linux系统:traceroute IP地址/主机域名

三、ARP协议

 APR(Address Resolution Protocol,地址解析协议)的基本功能是负责将一个已知的IP地址解析成MAC地址,以便在交换机上通过MAC地址进行通信。

3.1 ARP工作原理

  1. PC1想发送数据给PC2,会先检查自己的ARP缓存表。

  2. 如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。

    ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)。

  3. 交换机收到广播后做泛洪处理,除PC1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答,并在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,而其他主机则丢弃这个ARP请求消息。

  4. PC1在自己的 ARP表中添加 PC2的 IP地址和MAC地址的对应关系,以单播方式与PC2通信。

交换机在这个过程中,也在学习,将主机AB的MAC地址与端口号对应在交换机的MAC地址表中。

3.2 ARP命令

命令:
arp -a ; #显示ARP缓存列表
arp -d [ip] #清除ARP缓存表 [指定IP]
arp -s IP MAC地址 #ARP静态绑定IP与MAC地址

注:如提示ARP项添加失败,解决方案如下:
a、用管理员模式:电脑左下方“开始”按钮右键,点击“Windows PowerShell(管理员)(A)”;或者进入C盘Windows/system32文件夹找到cmd.exe,右键“以管理员身份运行”再执行arp -s命令。
b、执行命令

1)netsh interface ipv4 show neighbors 
或者 netsh i i show in [查看网卡接口序号/Idx]

2)netsh interface ipv4 set neighbors [接口序号][IP][MAC]
华为系统中的ARP命令
[Huawei]dis mac-address #查看mac地址信息
[Huawei]arp static <IP> <MAC> #绑定ARP
[Huawei]undo arp static <IP> <MAC> #解绑定
<Huawei>reset arp all #清除mac地址表

3.3 ARP攻击与欺骗

维护网络需要处理 各种各样的故障,其中出现最多的就是网络通信问题。除物理问题外,这种问题一般是 由ARP攻击或者ARP欺骗导致
无论是ARP攻击还是ARP欺骗,它们都是通过伪造 ARP 应答来实现。

  • ARP攻击原理
    一般来说,ARP攻击的主要目的 就是使网络无法正常通信
    原理是伪造虚假的MAC地址。
    在这里插入图片描述

  • ARP 欺骗:可以用来 控制流量、得到机密信息。
    在这里插入图片描述

在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。随着网络聊天一类的聊天系统的发展日新月异,因此产生了制作一个类似QQ的网络聊天工具。Java是一种程序设计语言,它具有简单的、完全面向对象以及与平台无关的结构,也具有可移植性、高性能和安全性,并提供了多线程的功能,而Java语言最大的成功之处在于它的平台无关性和具有强大的网络编程功能,基于Java网络编程的强大功能,本人将用Java编写一个网络聊天系统。 论文首先论述了系统的开发背景,并对所用到的开发工具与关键技术做了简单的介绍。接着对系统的研究意义,研究现状及设计目标进行分析,通过对系统需求和可行性进行分析,确定了系统的功能模块,并画出相应的功能结构图、模块图和数据流图。其次按系统总体设计的结果,对系统中的数据库进行结构设计。 一般来说,聊天工具大多数由客户端程序和服务器程序,外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式,通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的,而Java提供的多线程功能,用多线程可完成多点对多点的聊天。数据库管理系统用SQL Server2000,完成并通过JDBC-ODBC桥访问数据库。聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息,传输文件等功能。界面设计细分化,方便使用者操作和理解。服务器实现了查询和修改等功能,程序逻辑联系较紧密。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值