IP数据包在网络中的传输过程
1. 获取目的IP
2. 判断源IP与目的IP是否在同一网段 --> 比较 IP & Genmask 是否相同
2.1 若在同一网段,则先查询arp缓存中是否有目的ip的mac地址,如果arp缓存中有则封装mac包,将ip数据发送给目的主机;如果arp缓存中没有则发送arp请求得到目的主机的mac地址
2.2 若不在同一网段,则将数据包发送给默认路由(或者是网关),通过多个路由(或者是网关)的转发,找到目标子网。重复2.1的操作。
MAC头部
mac头部是以太网使用的头部。在数据包的传输过程中,IP包中的源IP地址和目的IP地址始终不变,通过改变mac头部的接收方mac地址和发送方mac地址达到两点之间的传输。
接收方MAC地址(48位) |
发送方MAC地址(48位) |
协议类型(16位) |
- 0800:ip协议
- 0806:ARP协议
ARP(地址解析协议)
在传输一个IP数据报的时候,确定了源IP地址和目标IP地址之后,就会通过主机的路由表来确定数据包的下一跳,网络层的下一层是数据链路层,所以是通过ARP协议得到下一跳的MAC地址。
ARP是通过ARP请求和ARP相应两种包来确定下一跳MAC地址的。
获取下一跳的MAC地址过程
- 主机先通过广播发送ARP请求,这个请求中包含着想知道的MAC地址的主机IP地址
- 当同一个链路中的所有设备收到ARP请求时,会去拆开ARP请求包中的内容,如果其中的目标IP地址和自己主机的IP地址一致,那这个设备就将自己的MAC地址塞入ARP响应包返回给主机
操作系统一般会把第一次通过ARP请求得到的MAC缓存起来,但是这个缓存是有一个期限,超出期限的,缓存的内容将会被清除。
IP与路由转发
route -n : 查看当前系统的路由表
参数 | 含义 |
destination | 目的IP |
Gateway | 网关IP |
Genmask | 子网掩码 |
Flags | U--活动路由,G--网关,H--主机 |
Iface | 网卡 |
IP数据包在网络中的传输过程相关推荐
- 数据包在网络中的传输过程详解
我们当今使用电子设备都离不开网络,通过网络我们可以聊天.玩游戏.看电影都操作. 网络的本质就是交换数据. 本文我们就来看下数据是如何在网络中传输的. 计算机网络模型 现在有两种计算机网络模型,分别为O ...
- 探究!一个数据包在网络中的心路历程
来自:小林coding 前言 想必不少小伙伴面试过程中,会遇到「当键入网址后,到网页显示,其间发生了什么」的面试题. 还别说,这真是挺常问的这题,前几天坐在我旁边的主管电话面试应聘者的时候,也问了这个 ...
- 图解数据在网络中的传输过程
数据在网络中的传输过程 在计算机网络当中,数据是怎么样保证准确的从客户端发送到服务器端的,这是本文探究的重点. 下图是本文中使用的网络拓扑图,数据从客户端发送给服务器端. 客户端各层对数据的封装 ja ...
- 一个数据包在网络中的心路历程
1. 浏览器做的第一步工作是解析 URL 首先浏览器做的第一步工作就是要对 URL 进行解析,从而生发送给 Web 服务器的请求信息. PS :上图中的蓝色部分 URL 元素都省略了,哪应该是请求哪个 ...
- 消息在网络中的传输过程
PC-A向PC-B传输消息,首先是用户打开消息应用例如QQ,然后给小黑发消息(你吃了吗), 1)在应用层生成数据"你吃了吗(小黑IP)",然后数据传入表示层节点-表示层, 2)在表 ...
- 探究 | 一个数据包在网络中的心路历程
目录
- IP数据包传输的完整过程
主机A与主机B通信,A Ping B,图1:A-交换机-B,AB同一子网 (1)ping数据包用的是ICMP协议,IP协议的一个子协议,位于三层,包含A的IP,B的IP,三层进行IP封装成包,进入二层 ...
- 读书笔记(随笔2)数据在网络中的传输
2 数据在网络中的传输 所有的数据对于网络来说都是业务,不同的业务数据对传输的要求不一样, 就需要有不同的 信令协议 来满足它,不同的信令协议对数据的封装和标识提出 了不同的要求,从而又产生了各种 封 ...
- IP数据包(详解版)
1.IP数据包详解图 2,使用Wireshark抓包 (1)版本--占4位,指IP协议的版本目前的IP协议版本号为4(即IPv4). (2)首部长度--占4位,这里的值为20Bytes. (3)总长度 ...
最新文章
- Windows7在Eclipse中配置Python+OpenCV
- 开发路上踩过的坑要一个个填起来————持续更新······(7月30日)
- vim之好用插件-ctrlp.vim
- C++:Static修饰变量 vs Static修饰函数
- 太阳能计算机作文500字,自制太阳能热水器
- 一文教你用java实现儿时的超级玛丽游戏
- springboot 整合 kafka demo 顺便看一下源码
- Spring Cloud构建微服务架构:服务容错保护(Hystrix依赖隔离)【Dalston版】
- Spring 框架基础(01):核心组件总结,基础环境搭建
- Restful 表述性状态传递
- 微信小程序获取上一页路由 获取从哪个页面跳转进来的
- 推荐21个顶级的Vue UI库!
- POJ3664 Election Time【排序】
- Iframe背景透明
- SAP在采购和销售中的税务处理-增值税
- 范围求和 II-c语言解决
- 20180504_android传感器入门之光线传感器
- 360漏洞响应平台(SRC)为白帽子挑选的10本互联网安全好书
- linux运行jar文件Invalid or corrupt jarfile错误
- MYSQL窗口函数用法
热门文章
- 如何设计一个风控实验?以度小满风控实验平台架构设计为例
- 海航重组当当,航机飘上书香
- 小程序头像和昵称填写能力用底部弹框界面实现
- CDA Level2建模备考心得
- 获取淘宝价格区间l-r的商品a的详细信息(商品名等)
- python for x in range(0,10) 例如使用python打印9*9乘法表
- Xilinx FPGA DDR3设计(一)DDR3基础扫盲
- 银河麒麟V10-桌面版 用户登录密码遗忘解决过程
- 我也写写致青春观后感
- windowxp网络无法发现其他计算机,几个步骤轻松解决win7无法访问XP系统共享问题...