【网络层协议】计算机网络基础知识点
文章目录
- 网络层协议的介绍
- 1.IP数据报
- 2.抓包协议学习
- 3.ICMP协议
- 3.1 ICMP协议(Internet控制报文协议)
- 3.2 ICMP协议的封装
- 4.ping命令学习
- 5.广播与广播域
- 6.ARP协议概述
- 6.1 什么是ARP协议
- 6.2 IP地址解析为MAC地址
- 7.ARP欺骗与攻击
- 7.1利用ARP欺骗管理网络
- 7.2 ARP攻击和欺骗
网络层协议的介绍
1.IP数据报
IP数据报的格式说明IP协议都具有什么功能。在协议IP的标准中,描述首部格式的宽度是32位(即4字节)。IP数据报的完整格式如下图所示:
从上图可看出,一个IP数据报由首部和数据两部分组成。首部的前一部分长度是固定的,共20字节,是所有IP数据报必须具有的。在首部固定部分的后面是一些可选字段,其长度是可变的。部各字段的意义。
IP数据报首部固定部分中各字段的意义如下所示:
版本:占4位,指IP协议的版本。通信双方使用IP协议的版本必须一致。
两种版本:IPv4和IPv6。
首部长度:占4位,可表示的最大十进制数值是15(1111)。
请注意,首部长度字段所表示数的单位是32位字长(1个32位字长是4字节)。
由于IP首部的固定部分是20字节,因此首部长度字段的最小值是5,(20/4=5)即二进制表示的首部长度是0101。而当首部长度字段为最大值1111时(即十进制的15),就表明首部长度达到最大值:15个32位字长,即15*4=60字节。IP头部最少20个字节,最多60个字节。
区分服务:占8位,用来获得更好的服务。只有在使用区分服务时,这个字段才起作用。
总长度:总长度指首部和数据之和的长度,单位为字节。
总长度字段为16位,因此数据报的最大长度为2[^16]− 1 = 65535 字节。
在IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。当一个IP数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层所规定的MTU值。
例如,最常用的以太网就规定其MTU值是1500字节。
若所传送的数据报长度超过数据链路层的MTU值,就必须把过长的数据报进行分片处理。
虽然使用尽可能长的IP数据报会使传输效率得到提高,但数据报短些也有好处。IP数据报越短,路由器转发的速度就越快。为此,协议IP规定,在互联网中所有的主机和路由器必须能够接受长度不超过576字节的数据报。当主机需要发送长度超过576字节的数据报时,应当先了解一下,目的主机能否接受所要发送的数据报长度。否则,就要进行分片。
这是假定上层交下来的数据长度有512字节,加上最长的IP首部60字节,再加上4字节的富余量,就得到576字节。
在进行分片时,数据报首部中的“总长度”字段是指分片后的每一个分片的首部长度与该分片的数据长度的总和。
标识(identification):占16位。
IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。
当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。
相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
标志(flag):占3位,但目前只有两位有意义。
标志字段中的最低位记为MF(More Fragment)。
MF=1即表示后面“还有分片”的数据报。
MF=0表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。
只有当DF=0时才允许分片。
**片偏移:**占13位。
片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,除最后一个数据报片外,其他每个分片的长度一定是8字节(64位)的整数倍。
【例】一个数据报的总长度为3820字节,其数据部分为3800字节长(使用固定首部),需要分片为长度不超过1420字节的数据报片。因固定首部长度为20字节,因此每个数据报片的数据部分长度不能超过1400字节。于是分为3个数据报片,其数据部分的长度分别为1400,1400和1000字节。原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。下图给出分片后得出的结果。
下表是本例中数据报首部与分片有关的字段中的数值,其中标识字段的值是任意给定的。具有相同标识的数据报片在目的站就可无误地重装成原来的数据报。
现在假定数据报片2经过某个网络时还需要再进行分片,即划分为数据报片2-1(携带数据800字节)和数据报片2-2(携带数据600字节)。那么这两个数据报片的总长度、标识、MF、DF和片偏移分别为:820,12345,1,0,1400/8=175;620,12345,1,0,(1400+800)/8=275。
生存时间:占8位,生存时间字段常用的英文缩写是TTL(Time To Live)
表明这是数据报在网络中的寿命。
由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在互联网中兜圈子,因而白白消耗网络资源。
TTL的意义是指明数据报在互联网中至多可经过多少个路由器。
路由器在每次转发数据报之前就把TTL值减1。若TTL值减小到零,就丢弃这个数据报,不再转发。因此,TTL的单位是跳数。
数据报能在互联网中经过的路由器的最大数值是255。
若把TTL的初始值设置为1,就表示这个数据报只能在本局域网中传送。
协议:占8位
协议字段指出此数据报携带的数据使用何种协议,以便使目的主机的IP层知道应将数据部分交给哪个协议进行处理。
常用的一些协议和相应的协议字段值如下:
首部检验和:占16 位。
这个字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和,所以首部需要检验。不检验数据部分可减少计算的工作量。
IP数据报格式总结图如下所示:
IP数据报各字段意义总结:
数据报字段 | 位数/bit | 意义 |
---|---|---|
版本(Version) | 4 | IP 的版本号(IPv4 的版本为 4) |
首部长度(Header Length) | 4 | IP数据包头长度,最短为20字节,最长为60字节,但是其长度是可变的,具体长度取决于选项字段的长度 |
优先级与服务类型(Priority & Type of Service) | 8 | 数据包的优先级和服务类型,通过在数据包中划分一定的优先级,用于实现 服务质量的要求 |
总长度(Total Length) | 16 | 指示整个 IP数据包的长度,最长为2[^16]-1=65535字节,包括数据首部和数据 |
标识符(Identification) | 16 | IP数据包的标识符,当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。 |
标志(Flags) | 3 | 标志字段,对当前的包不能进行分片(当该包从一个以太网发送到另一个以太网时),或当一个包被分片后用以指示在一系列的分片中,最后一个分片是否已发出。 |
段偏移量(Fragment Offset) | 13 | 段偏移量中包含的信息是指在一个分片序列中如何将各分片重新连接起来。 |
TTL(Time to Live) | 8 | IP数据包的生命周期,一个数据包每经过一个路由器,TTL将减去 1。当 TTL 的值为 0 时,该数据包将被丢弃。可以防止一个数据包在网络中无限循环地转发下去. |
协议号(Protocol) | 8 | 指示在 IP数据包中封装的是哪一个协议,是 TCP还是 UDP,TCP 的协议号为 6,UDP的协议号为 17。 |
首部校验和(Header Checksum) | 16 | 接收方和网关用来校验数据有没有被改动过。 |
源 IP 地址(Source IP Address | 32 | 数据包的源地址 |
目标 IP地址(Destination IP Address) | 32 | 数据包的目的地址 |
可选项(Options) | 0-40字节 | 选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。 |
2.抓包协议学习
(1)源IP地址为192.168.1.49并且是TCP数据报协议的数据包,抓包结果截图如下所示:
(2)目的IP地址为192.168.1.49并且是UDP数据报协议的数据包,抓包结果截图如下所示:
(3)源主机地址为101.91.22.103,并且目的IP地址为192.168.1.49,且是UDP数据报协议的数据包,抓包结果截图如下所示:
3.ICMP协议
3.1 ICMP协议(Internet控制报文协议)
ICMP是一个”错误侦测与回馈机制“
通过IP数据包封装
用来发送错误和控制信息
在两终端设备之间通信,将通过ICMP协议判断是否可达并发送错误信息,截图如下所示:
3.2 ICMP协议的封装
ICMP协议属于网络层协议
ICMP数据的封装过程
4.ping命令学习
Windows系统中ping命令常用参数汇总,如下所示:
操作步骤 | 功能作用 |
---|---|
- t | 参数会一直不停的执行ping |
- a | 参数可以显示主机名称 |
- l | 参数可以设定ping包的大小 |
- n | 指定发送包的个数 |
- S | 指定源IP去ping |
Linux系统中ping命令常用参数汇总,如下所示:
操作步骤 | 功能作用 |
---|---|
- s | 参数可以设定ping包的大小 |
- c | 指定发送包的个数 |
- I | 指定源IP去ping |
跟踪路由路径命令汇总,如下所示:
系统类别 | 操作步骤 |
---|---|
WIN | tracert IP/域名 |
Linux | traceroute IP/域名 |
Windows系统中ARP命令汇总,如下所示:
操作步骤 | 功能作用 |
---|---|
ARP -a | 查看ARP缓存表 |
ARP -d [IP] | 清除ARP缓存 |
ARP -s [IP] [MAC] | ARP静态绑定 |
ping baidu.com返回信息,如下所示:
指定IP地址192.168.45.136 ping www.baidu.com返回结果信息,如下所示:
5.广播与广播域
- 广播:将广播地址做为目的地址的数据帧
- 广播域:网络中能接收到同一个广播的所有节点的集合
- 广播地址为FF-FF-FF-FF-FF-FF
6.ARP协议概述
6.1 什么是ARP协议
ARP(Address Resolution Protocol),地址解析协议,将一个已知的IP地址解析成MAC地址
局域网中主机的通信——IP地址与MAC地址(IP地址是逻辑寻址,MAC地址是物理寻址)。
6.2 IP地址解析为MAC地址
(1)PC1发送数据给PC2,查看缓存没有PC2的MAC地址
(2)PC1发送ARP请求消息广播
(3)所有主机收到ARP请求消息,只有PC2会回复ARP应答(单播),其他主机将丢弃数据报文
(4)PC1将PC2的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条目在计算机关机或重启后会消失。
7.ARP欺骗与攻击
7.1利用ARP欺骗管理网络
通过长角牛网络监控机软件管理网络
- 设置监控范围
- 进行网络管理
- 验证效果
ARP协议的两种包类型:
(1)ARP request 请求包
(2)ARP reply回应包
7.2 ARP攻击和欺骗
利用ARP协议的漏洞(无分辨接受任何主机的ARP回应包),伪造任何主机的MC地址实现。
- ARP攻击:无法通信、断网
- ARP欺骗:窃取数据,对目标主机的监控和控制
ARP攻击实现方式:
**欺骗其他所有计算机:**制造假的ARP应答,并发送给局域网中除了被攻击主机以外的计算机,应答包中包含被攻击者的ip和虚假mac地址
假如PC1发送信息给PC2,ARP攻击详解如下所示:
欺骗被攻击计算机: 制造假的ARP应答,并发送给被攻击的计算机,应答包中包含其它计算机的IP和虚假的MAC地址
ARP欺骗的实现方式:
**ARP欺骗网关(冒充网关)
【网络层协议】计算机网络基础知识点相关推荐
- 计算机网络基础知识点大纲
计算机网络基础知识点大纲 计算机网络概述 计算机网络定义 计算机网络体系结构 网络协议定义 协议三要素 体系结构 OSI七层模式 TCP/IP的四层模型 五层协议体系 数据包的封装与解封装 分层结构中 ...
- 【Android开发】计算机网络基础知识点,如何完成网络请求过程?
(一)计算机网络基础知识:从一次完整的网络请求过程分析 (1)域名解析 1.1)域名与ip地址 (1)ip地址:ip地址是一个32位(4字节)的二进制数(IPV4),常见格式为:192.168.1.1 ...
- 计算机网络基础知识点快速复习手册
前言 本文快速回顾了计算机网络书本中常考的的知识点,用作面试复习,事半功倍. 主要内容有:计算机网络体系结构,TCP与UDP,UDP/TCP实现DEMO代码 面试知识点复习手册 全复习手册文章导航 全 ...
- 计算机网络基础——知识点总结
计算机网络基础 1 概述 1 什么是互联网 2 互联网的组成 3 网络性能指标 4 计算机 2 物理层 1 物理层的作用 2 常用编码形式 3 信道复用技术 3 数据链路层 1 点对点通信 2 三个基 ...
- 必备的 6 大计算机网络基础知识点!会 3 个以上就很牛逼了
点击关注公众号,回复"1024"获取2TB学习资源! 计算机网络概述 计算机网络的分类 按照网络的作用范围:广域网(WAN).城域网(MAN).局域网(LAN): 按照网络使用者: ...
- 计算机网络基础知识点梳理
计算机网络 计算机网络 一. 计算机分层结构 1.1 TCP/IP四层模型与OSI体系结构对比 二.物理层 三.数据链路层 3.1 **数据链路层的作用**: 3.2 有关数据链路层的重要知识点 3. ...
- 计算机网络基础知识点三
网络层 与网际协议IP配套的协议有: 地址解析协议 ARP(Address Resolution Protocol) 网际控制报文协议 ICMP(Internet Control Message Pr ...
- 计算机网络基础知识点学习(一)(概述)
1.通常所说的网络是指"三网",即电信网络.有线电视网络.计算机网络.发展最快并起到核心作用的是计算机网络. 2.计算机网络向用户提供的最重要的功能:连通性-计算机网络使上网用户之 ...
- 网络协议IPV6基础知识点集锦
由于互联网的快速发展与普及,原有的IPV4地址已不能满足网络用户的需求,虽然NAT可以缓解IPV4地址的耗尽,但NAT破坏了网络环境的开放.透明以及端到端的特性,因此IPV6地址协议应运而生. IPV ...
最新文章
- 用eclipse来运行带参数的命令行程序,配置命令行程序的参数
- c语言练习题及答案)(1),c语言练习题(带详解答案)1.pdf
- boost::polygon模块实现自定义点相关的测试程序
- Serverless 实战 —— ​​​​​​​与微服务一脉相承,Serverless适用何种场景?会带来哪些冲击?
- Python实现中文文档的简体与繁体互相转换
- Qt 发布 Android 自动驾驶技术预览
- 记录一次浏览器主页被劫持的经历
- C++容器(一)——vector
- hanoi塔栈递归算法c语言,c++递归函数,c语言递归算法经典实例
- pygame游戏库如何下载
- 神仙打架!传言阿里 P10 赵海平被 P11 多隆判定 3.25 离职,如何评价阿里 P10 赵海平对王垠的面试?...
- $.ajax %5b%5d,数据传回后台数带有%5B%5D的问题
- jquery 表单验证插件
- cv2 interpolate插值-align_corners
- HP Gen8 MicroServer win7 系统安装手册(usb)
- 第13周 《C语言及程序设计》实践参考——定期存款利息计算器
- 姜小白的python日记Day4 列表和元组
- 奥特曼系列艾斯愿望服务器序号,泽塔奥特曼:泽塔的寓意是最后的勇士,蕴含了艾斯哥哥最大的愿望...
- 2021年安全生产模拟考试(建筑安全员B证-项目负责人模拟考试题库)安考星
- Howland电流源输入输出关系
热门文章
- 一款小众的PHP说说网站源码
- 作为数据分析师的你都有哪些常用工具
- Replace()函数的使用
- 使用Ubuntu与宝塔搭建IT资产管理系统 - Chemex
- 境内上市和境外上市区别
- ADAS HiL系统测试方案
- Windows平台批量移动百万文件
- java语言中定义的字节输出流_Java语言中的输入输出流包括字节流、字符流、文件流、对象流以及线程之间通信的管道流,【 】包中的类...
- 小猪短租完成近3亿美元融资,发力安全与智能服务体系
- 4米乘以12米CAD图_江阴AutoCAD橱柜设计培训 江阴CAD培训 江阴CAD制图_江阴吧