第四天 ICMP、ARP、TCP、UDP协议

这篇具有很好参考价值的文章主要介绍了第四天 ICMP、ARP、TCP、UDP协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ICMP

  • ICMP用来传递差错、控制、查询等信息。
  • ICMP是TCP/IP协议簇的核心协议之一,它用于在IP网络设备之间发送控制报文,传递差错、控制、查询等信息。

ICMP差错检测

icmp tcp udp,华为HCIA,网络,服务器,运维

  • ICMP Echo Request和ICMP Echo Reply分别用来查询和响应某些信息,进行差错检测。
  • ICMP Echo消息常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如报文往返时间等。

ICMP数据包格式

icmp tcp udp,华为HCIA,网络,服务器,运维

  • Type表示ICMP消息类型,Code表示同一消息类型中的不同信息。
  • ICMP消息封装在IP报文中。ICMP消息的格式取决于Type和Code字段,其中Type字段为消息类型,Code字段包含该消息类型的具体参数。后面的校验和字段用于检查消息是否完整。消息中包含32比特的可变参数,这个字段一般不使用,通常设置为0。在ICMP Redirect消息中,这个字段用来指定网关IP地址,主机根据这个地址将报文重定向到指定网关。在Echo请求消息中,这个字段包含标识符和序号,源端根据这两个参数将收到的回复消息与本端发送的Echo请求消息进行关联。尤其是当源端向目的端发送了多个Echo请求消息时,需要根据标识符和序号将Echo请求和回复消息进行一一对应。

ICMP消息类型和编码类型

icmp tcp udp,华为HCIA,网络,服务器,运维
ICMP定义了多种消息类型,并用于不同的场景。有些消息不需要Code字段来描述具体类型参数,仅用Type字段表示消息类型。比如,ICMP Echo回复消息的Type字段设置为0。
有些ICMP消息使用Type字段定义消息大类,用Code字段表示消息的具体类型。比如,类型为3的消息表示目的不可达,不同的Code值表示不可达的原因,包括目的网络不可达(Code=0)、目的主机不可达(Code=1)、协议不可达(Code=2)、目的TCP/UDP端口不可达(Code=3)等。

ICMP应用-Ping

  • ICMP的一个典型应用是Ping。Ping是检测网络连通性的常用工具,同时也能够收集其他相关信息。用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping测试。
    Ping常用的配置参数说明如下:
  1. -a source-ip-address指定发送ICMP ECHO-REQUEST报文的源IP地址。如果不指定源IP地址,将采用出接口的IP地址作为ICMP ECHO-REQUEST报文发送的源地址。
  2. -c count指定发送ICMP ECHO-REQUEST报文次数。缺省情况下发送5个ICMP ECHO-REQUEST报文。
  3. -h ttl-value指定TTL的值。缺省值是255。
  4. -t timeout指定发送完ICMP ECHO-REQUEST后,等待ICMP ECHO-REPLY的超时时间。

ICMP应用-Tracert

  • ICMP的另一个典型应用是Tracert。Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1。该报文到达第一个节点后,TTL超时,于是该节点向源端发送TTL超时消息,消息中携带时间戳。然后源端将报文的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息,以此类推,直到报文到达目的地。这样,源端根据返回的报文中的信息可以跟踪到报文经过的每一个节点,并根据时间戳信息计算往返时间。Tracert是检测网络丢包及时延的有效手段,同时可以帮助管理员发现网络中的路由环路。
  • Tracert常用的配置参数说明如下:
  • -a source-ip-address指定tracert报文的源地址。
  • -f first-ttl指定初始TTL。缺省值是1。
  • -m max-ttl指定最大TTL。缺省值是30。
  • -name使能显示每一跳的主机名。
  • -p port指定目的主机的UDP端口号。

ARP

ARP的作用

icmp tcp udp,华为HCIA,网络,服务器,运维

  • 数据链路层在进行数据封装时,需要目的MAC地址。
  • 一个网络设备要发送数据给另一个网络设备时,必须要知道对方的IP地址。但是,仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过数据链路进行发送,而数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。每一个网络设备在数据封装前都需要获取下一跳的MAC地址。IP地址由网络层来提供,MAC地址通过ARP协议来获取。ARP协议是TCP/IP协议簇中的重要组成部分,它能够通过目的IP地址获取目标设备的MAC地址,从而实现数据链路层的可达性。

ARP数据包格式

icmp tcp udp,华为HCIA,网络,服务器,运维

  • 网络设备通过ARP报文来发现目的MAC地址。ARP报文中包含以下字段:
  • Hardware Type表示硬件地址类型,一般为以太网;
  • Protocol Type表示三层协议地址类型,一般为IP;
  • Hardware Length和Protocol Length为MAC地址和IP地址的长度,单位是字节;
  • Operation Code指定了ARP报文的类型,包括ARP Request和ARP Reply;
  • Source Hardware Address指的是发送ARP报文的设备MAC地址;
  • Source Protocol Address指的是发送ARP报文的设备IP地址;
  • Destination Hardware Address指的是接收者MAC地址,在ARP Request报文中,该字段值为0;
  • Destination Protocol Address指的是接收者的IP地址。

ARP请求

icmp tcp udp,华为HCIA,网络,服务器,运维
收到ARP请求后
1.学习ARP (学习的是对方的MAC地址对应的IP地址 并且放到自己的ARP表中)
2.ARP reply 回复

  • 本例中,主机A的ARP缓存表中不存在主机C的MAC地址,所以主机A会发送ARP Request来获取目的MAC地址。ARP Request报文封装在以太帧里。帧头中的源MAC地址为发送端主机A的MAC地址。此时,由于主机A不知道主机C的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。ARP Request报文中包含源IP地址、目的IP地址、源MAC地址、目的MAC地址,其中目的MAC地址的值为0。ARP Request报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此ARP Request报文。网关将会阻止该报文发送到其他网络上。

ARP响应

icmp tcp udp,华为HCIA,网络,服务器,运维
ARP协议
通过对方的IP地址来请求对方的MAC地址的协议(通过对方的IP地址来拿到对方的MAC地址)

  • 所有的主机接收到该ARP Request报文后,都会检查它的目的协议地址字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP Request报文。如果匹配,则该主机会将ARP报文中的源MAC地址和源IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。

ARP代理

icmp tcp udp,华为HCIA,网络,服务器,运维
ARP代理
开启ARP代理:在接口下输入 arp-proxy enable

  • 同一网段、不同物理网络上的计算机之间,可以通过ARP代理实现相互通信。
  • 在上述例子的组网中,主机A需要与主机B通信时,目的IP地址与本机的IP地址在同一个网段,所以A将会以广播形式发送ARP Request报文,请求主机B的MAC地址。但是,广播报文无法被路由器转发,所以主机B无法收到主机A的ARP请求报文,当然也就无法应答。
  • 在路由器上启用代理ARP功能,就可以解决这个问题。启用代理ARP后,路由器收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器将会使用自己的G0/0/0接口的MAC地址来回应该ARP Request。主机A收到ARP Reply后,将以路由器的G0/0/0接口MAC地址作为目的MAC地址进行数据转发。

免费ARP

icmp tcp udp,华为HCIA,网络,服务器,运维
什么时候产生免费ARP
当设备接口上配置IP地址的时候,就会发送免费ARP 来检查网络中有没有冲突的IP地址

  • 免费ARP可以用来探测IP地址是否冲突。
  • 主机被分配了IP地址或者IP地址发生变更后,必须立刻检测其所分配的IP地址在网络上是否是唯一的,以避免地址冲突。主机通过发送ARP Request报文来进行地址冲突检测。
    主机A将ARP Request广播报文中的目的IP地址字段设置为自己的IP地址,且该网络中所有主机包括网关都会接收到此报文。当目的IP地址已经被某一个主机或网关使用时,该主机或网关就会回应ARP Reply报文。通过这种方式,主机A就能探测到IP地址冲突了。

ARP命令查询

ARP -a 查询arp缓存表
ARP -d 删除arp缓存表

TCP

  • TCP是一种面向连接的传输层协议,可提供可靠的传输服务。
  • TCP位于TCP/IP模型的传输层,它是一种面向连接的端到端协议。TCP作为传输控制协议,可以为主机提供可靠的数据传输。

TCP端口号

icmp tcp udp,华为HCIA,网络,服务器,运维

  • 端口号用来区分不同的网络服务。
  • TCP允许一个主机同时运行多个应用进程。每台主机可以拥有多个应用端口,每对端口号、源和目标IP地址的组合唯一地标识了一个会话。端口分为知名端口和动态端口。有些网络服务会使用固定的端口,这类端口称为知名端口,端口号范围为0-1023。如FTP、HTTP、Telnet、SNMP服务均使用知名端口。动态端口号范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。

TCP头部

icmp tcp udp,华为HCIA,网络,服务器,运维

  • URG 标记紧急

  • ACK 确认机制

  • PSH 标记被推出去(从TCP缓存中推出去)

  • RST 标记 重置

  • SYN 重要 请求连接(建立TCP连接)

  • FIN 终止会话,表示会话结束

  • Window 用来做流量控制的,并且会自动协商的

  • TCP的三层握手 四次挥手

TCP建立连接的过程

icmp tcp udp,华为HCIA,网络,服务器,运维

  • TCP是一种可靠的,面向连接的全双工传输层协议。
  • TCP连接的建立是一个三次握手的过程。如图所示:
  • 主机A(通常也称为客户端)发送一个标识了SYN的数据段,表示期望与服务器A建立连接,此数据段的序列号(seq)为a。
  • 服务器A回复标识了SYN+ACK的数据段,此数据段的序列号(seq)为b,确认序列号为主机A的序列号加1(a+1),以此作为对主机A的SYN报文的确认。
  • 主机A发送一个标识了ACK的数据段,此数据段的序列号(seq)为a+1,确认序列号为服务器A的序列号加1(b+1),以此作为对服务器A的SYN报文的确认。

TCP关闭连接

icmp tcp udp,华为HCIA,网络,服务器,运维

  • 主机在关闭连接之前,要确认收到来自对方的ACK。
  • TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传- 输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。
  • TCP连接的建立是一个三次握手的过程,而TCP连接的终止则要经过四次握手。
  • 如图所示:主机A想终止连接,于是发送一个标识了FIN,ACK的数据段,序列号为a,确认序列号为b。
  • 服务器A回应一个标识了ACK的数据段,序列号为b,确认序号为a+1,作为对主机A的FIN报文的确认。
  • 服务器A想终止连接,于是向主机A发送一个标识了FIN,ACK的数据段,序列号为b,确认序列号为a+1。
  • 主机A回应一个标识了ACK的数据段,序列号为a+1,确认序号为b+1,作为对服务器A的FIN报文的确认。
  • 以上四次交互便完成了两个方向连接的关闭。

UDP

  • UDP是一种面向无连接的传输层协议,传输可靠性没有保证。
  • 当应用程序对传输的可靠性要求不高,但是对传输速度和延迟要求较高时,可以用UDP协议来替代TCP协议在传输层控制数据的转发。UDP将数据从源端发送到目的端时,无需事先建立连接。UDP采用了简单、易操作的机制在应用程序间传输数据,没有使用TCP中的确认技术或滑动窗口机制,因此UDP不能保证数据传输的可靠性,也无法避免接收到重复数据的情况。

UDP头部

icmp tcp udp,华为HCIA,网络,服务器,运维文章来源地址https://www.toymoban.com/news/detail-853091.html

  • UDP报文分为UDP报文头和UDP数据区域两部分。报头由源端口、目的端口、报文长度以及校验和组成。UDP适合于实时数据传输,如语音和视频通信。相比于TCP,UDP的传输效率更高、开销更小,但是无法保障数据传输的可靠性。UDP头部的标识如下:
  • 16位源端口号:源主机的应用程序使用的端口号。
  • 16位目的端口号:目的主机的应用程序使用的端口号。
  • 16位UDP长度:是指UDP头部和UDP数据的字节长度。因为UDP头部长度为8字节,所以该字段的最小值为8。
  • 16位UDP校验和:该字段提供了与TCP校验字段同样的功能;该字段是可选的。
    icmp tcp udp,华为HCIA,网络,服务器,运维

到了这里,关于第四天 ICMP、ARP、TCP、UDP协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IP、ICMP、TCP和UDP校验和计算

    一. 前言         计算网络数据包的校验和是机器自动完成,不需要手动计算。但是正因为如此,我们往往不会去深究校验和到底是怎么计算的,留下这一块盲区。虽然书上有大致介绍计算的方法,但是,“纸上得来终觉浅,绝知此事要躬行”,本文将详细演示IP、ICMP、TCP、

    2024年02月10日
    浏览(46)
  • 结合wireshark理解tcp、http、dns、icmp、arp等协议

    抓包+各种协议(http、arp、icmp)的过滤或分析 wireShark 抓包分析基础 wireShark抓包分析 分析数据详情 Step1:启动wireshark抓包,打开浏览器输入www.huawei.com。 Step2:使用ping www.huawei.com获取IP。(win+r cmd) Step3:输入过滤条件获取待分析数据包列表 ip.addr == 211.162.2.183。 捕获过滤器

    2024年04月22日
    浏览(67)
  • IP报文解析(TCP、UDP、 ICMP)及代码分享(C++)

    1.1 OSI 7层模型: 应用层: 功能:用户接口,文件传输、电子邮件、虚拟终端、文件服务 设备:网关 协议:HTTP、TFTP、SMTP、FTP、SNMP、DNS、Telnet 表示层: 功能:数据的表示,压缩和加密 设备:网关 协议:无 会话层: 功能:会话的建立和结束 设备:网关 协议:无 传输层:

    2024年02月09日
    浏览(43)
  • LwIP系列(3):以太网帧、IP、TCP、UDP、IGMP、ICMP帧格式详解

    TCP/IP 本质上是软件协议,而LwIP也是对软件协议进行解析处理,所以我们有必要了解下以太网帧、IP、TCP、UDP、IGMP、ICMP帧格式,这样在代码中,才能有的放矢。 以太网帧是最底层的原始数据,帧框架如下图所示: 其中【前同步码】和【以太网尾部】我们在抓包的时候,并不

    2024年02月14日
    浏览(50)
  • HCIA---TCP/UDP协议

      文章目录 目录 前言 一.UDP协议简介 UDP协议的特点:    二.TCP协议简介     TCP协议特点 三.TCP和UDP的区别  四.TCP/IP结构详解 五.TCP运输连接的阶段  ​编辑  TCP连接建立过程---TCP三次握手 TCP三次握手总结:  TCP四次挥手: 思维导图         通过上一篇对OSI七层参考模型的

    2024年02月13日
    浏览(44)
  • 【面试宝典】图解ARP协议、TCP协议、UDP协议

    一、ARP协议 二、TCP协议  三、UDP协议   四、TCP和UDP的区别

    2024年01月16日
    浏览(38)
  • 使用ICMP协议来判断UDP端口的存活状态

            我们使用了原始套接字(socket.SOCK_RAW)来发送和接收ICMP消息,也就是通过模拟ICMP协议来进行UDP端口的探测。我们构造了一个简单的ICMP数据包,并将其发送到目标主机的特定端口。然后,我们等待接收目标主机返回的ICMP消息,并判断其类型和代码是否为端口不可

    2024年02月10日
    浏览(38)
  • Wireshark抓取网卡协议分析(TCP,UDP,ARP,DNS,DHCP,HTTP超详细版本)

    使用wireshark工具抓取ping命令操作 选择本机网卡WLAN,点击开始,开始抓包 在数据列表区中选取TCP协议,在数据详细区中显示出其详细信息 (1)Frame: 物理层的数据帧概况 (2)Ethernet II: 数据链路层以太网帧头部信息 (3)Internet Protocol Version 6: 互联网层IP包头部信息 (4)Tra

    2024年02月08日
    浏览(45)
  • 网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报

    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。 专栏:《网络编程》 传输层及其以下的机制由内

    2024年01月16日
    浏览(69)
  • FPGA 20个例程篇:14.千兆网口实现ICMP、UDP通信协议(上)

           UDP是一种面向无连接的传输层协议,属于TCP/IP协议族的一种,UDP具有消耗资源少、通信效率高等优点,一般性地用来传输音频或者视频等对实时性要求高的场合。         ICMP是TCP/IP协议族的一个IP层子协议,包含在IP数据报里,主要用于IP主机、路由器之间传递控制消

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包