ping过程
premise:
一个局域网内,网段为192.168.0.0 , 有两台主机A(192.168.0.3) 主机B(192.168.0.4)
1. A 机器上执行: ping 192.168.0.4
2. ping程序通知系统创建固定格式的ICMP数据包,然后连同源ip和目标ip交给ip层
3. ip层将数据连同源ip和目标ip封装成ip数据包,然后连同源Mac和目标Mac交给链路层
目标Mac是怎样获取的?
1. 查询本机ARP缓存,如果以前与将要通讯的机器有过连接,则ARP缓存表中有目标主机的Mac地址,如果没有,则会向该网络中发送一条广播信息,目标主机收到广播消息会 回复一条消息,该消息中包括Mac地址。
4. 交给物理层传输
5. 目标主机网卡收到包后先检查Mac地址是否匹配,如果不匹配直接丢弃,如果匹配交上层,上层解包检查ip是否匹配,如果不匹配丢弃,如果匹配则在交由上层对数据进行操作
如果目标主机在不同网段
主要是目标Mac地址的获取
源主机操作系统网络层会先检查目标ip是否在同一网段,如果不在同一网段,则通过上面相同的方式广播获取网关的物理地址,如果ARP缓存中已有网关Mac那么就不用获取了
数据包到达网关是怎么到达目标主机的,现在不清楚,网关中是不是要保存目标主机的Mac地址或者网关需要通过广播的方式获取Mac地址? 明天问老师去~~~~~~
ping过程的更多相关文章
- ping过程详细解读
0. 前言 在讲解ping过程之前,我们需要了解以下概念. 1). 何为ping PING (Packet Internet Groper),因特网包探索器,用于测试网络连通性的程序. Pin ...
- ping过程详解
原出处:http://wanicy.blog.51cto.com/509018/335207/ PS:这里只是给出了ping ip地址的例子,没有给出ping域名的例子. ping 域名还有域名转换成 ...
- Ping过程&ICMP
1.ICMP(Internet控制消息协议) ICMP=Internet Control Message Protocol 它是TCP/IP协议族的一个子协议 作用:用于在IP主机.路由之间传递控制消 ...
- Ping的过程详解
先看拓朴图: 我在这里讲拼的两情况,一种是同一网段内,一种是跨网段的ping …. 首先,如果主机A,要去拼主机B,那么主机A,就要封装二层报文,他会先查自己的MAC地址表,如果没有B的MAC地址,就 ...
- mac ping ip地址
Mac下有个类似于Windows下CMD的模式叫做终端,但是这个模式和Windows下的CMD有着很大的差别. 工具/原料 Mac电脑一台 方法/步骤 首先通过菜单栏的搜索功能找到“终端”,也可以 ...
- tcp/ip 卷一 读书笔记(5)arp和rarp 同网段和不同网段之间的通信过程
arp和rarp 同网段和不同网段之间的通信过程 IPv6中已经没有arp rarp协议,所以这里都是IPv4. 链路层使用以太网地址来确定目的地址,应用则常使用ip地址通信 arp协议是指从ip地址 ...
- Linux下实现ping功能
实现ping功能,就肯定要用到ping命令,那么在Linux下ping命令为: ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面&g ...
- 第7章 Ping程序和traceroute程序
Ping程序 ping程序编写的目的是为了测试另外一台主机是否可达.程序发送的是一份ICMP回显请求报文给目的主机,并等待ICMP回显应答. 一般的TCP/IP实现都在内核中直接支持ping服务器—— ...
- 一步步玩pcDuino3--uboot下的ping,加入命令能够接受来自host的ping
uboot是一个很优秀的开源项目.不只能够学习bootloader.嵌入式,各种总线协议. 还能够了解网络协议栈.在嵌入式开发中,常常使用uboot的tftp和nfs来加快开发的效率.那么在tftp能 ...
随机推荐
- Nginx支持多站点配置小结
如何配置 web 服务器才能在一个 VPS 上放置多个网站/博客呢?如何通过一个 IP 访问多个站点/域名呢?这是大多数 web 服务器支持的 virtual hosting 功能.即一个IP对应多个 ...
- C#插件构架实战 + Visual C#插件构架实战补遗(转)
C#插件构架实战 C# 插件构架实战 Jack H Hansen [ 2004-07-27 ] Keywords C# 插件 反射(System.Reflection) 属性(System.Attri ...
- vsftpd 创建虚拟用户
1.添加一个宿主用户:useradd vsftpd -s /sbin/nologin2.安装db4-utils,通过本底数据文件实现虚拟用户访问yum install db4-utils3.创建ftp ...
- [转]使用 HTML5 IndexedDB API
本地数据持久性提高了 Web 应用程序可访问性和移动应用程序响应能力 索引数据库 (IndexedDB) API(作为 HTML5 的一部分)对创建具有丰富本地存储数据的数据密集型的离线 HTML5 ...
- jquery事件重复绑定解决办法
一$.fn.live 重复绑定 解决:使用die()方法,在live()方法绑定前,将此元素上的前面被绑定的事件统统解除,然后再通过live()方法绑定新的事件. //先通过die()方法解除,再通过 ...
- POJ2472106 miles to Chicago
106 miles to Chicago Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3931 Accepted: 1 ...
- storm源码之storm代码结构【译】【转】
[原]storm源码之storm代码结构[译] 说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正 ...
- 模态视图(modalTrasitionStyle)如何适应不同的版本
随着版本的更新,模态视图对版本也有不同的要求,那如何让模态视图适应多版本的要求呢?下面是小编的个人看法! -(void)presentModalVC { modalViewController *mo ...
- 原生js动画效果(源码解析)
在做页面中,多数情况下都会遇到页面上做动画效果,大部分都是用jquery来实现动画,今天正好看到一篇原生js实现动画效果的代码,特分享在此. 原文地址:http://www.it165.net/pro ...
- 【CodeVS】1204 寻找字串位置
题目描述 Description 给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置. 输入描述 Input Description 仅一行包含两个字符串a和b 输出描述 ...