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能 ...
随机推荐
- c#基础系列(转)
转:http://www.cnblogs.com/landeanfen/p/4953025.html C#基础系列——一场风花雪月的邂逅:接口和抽象类 前言:最近一个认识的朋友准备转行做编程,看他自己 ...
- react-基础(2)
表单相关 固定的几个属性和事件 value: <input>,<textarea>; checked: <input> typeof checkbox, radio ...
- HttpHandler与HttpModule的用处与区别
问题1:什么是HttpHandler? 问题2:什么是HttpModule? 问题3:什么时候应该使用HttpHandler什么时候使用HttpModule? 答案1:HttpHandler,Http ...
- wpf ,tooltip的style
<Style x:Key="MyToolTipStyle" TargetType="ToolTip"> <Setter Property=&q ...
- vsftpd 创建虚拟用户
1.添加一个宿主用户:useradd vsftpd -s /sbin/nologin2.安装db4-utils,通过本底数据文件实现虚拟用户访问yum install db4-utils3.创建ftp ...
- 解决ADT升级报错
方法一: 将https://dl-ssl.google.com/android/eclipse/ 改成 http://dl-ssl.google.com/android/eclipse/: 方法二: ...
- BZOJ2434 [Noi2011]阿狸的打字机(AC自动机 + fail树 + DFS序 + 线段树)
题目这么说的: 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母.经阿狸研究发现,这个打字机是这样工作的: 输入小 ...
- RequireJS 循环依赖报 模块undefined 处理方案
RequireJS 循环依赖 开始学习使用RequireJS之后做了几个小例子,之后想着把手头的项目也用RequireJS写一遍试试.感觉胜利就在前方了,忽然发现始终卡在一个问题上: 很常见的一个问题 ...
- ACM 独木舟上的旅行
独木舟上的旅行 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别.一条独木舟最多只能乘坐两个人,且乘客 ...
- Hibernate4Maven
How to create a Maven project with Hibernate libs? This blog will be a demo to describe this issue. ...