ip数据包经由路由转发的时候源ip,目的ip是否改变
ip数据包经由路由转发的时候源ip,目的ip是否改变?
最近面试网络方面的经常问到这个问题,答案是不能改变的,*除非做了nat转换才能改变。
不过mac地址是变化的,因为发送端开始不知道目的主机的mac地址,所以每经过一个路由器mac地址是变化的。
目的mac地址是如何得到的?
TCP/IP里面是用的ARP协议。比如新建了一个内网,如果一台机器A找机器B,封装FRAME时(OSI的第二层用的数据格式),要封装对方的MAC,开始时A不知道B的MAC,只知道IP,它就发一个ARP包,源IP是自己的,目的IP是B的,源MAC是自己的,目的MAC是广播的。然后这个请求包在内网内被广播,当其他机器接到这个包时,用目的IP和自己的IP比较,不是的话就丢弃。B接到时,发现IP与自己的一样,就答应这个包的请求,把自己的MAC送给A。如果B是其他子网的机器,那么路由器会判断出B是其他子网,然后路由器把自己的MAC返回给A,A以后再给B发包时,目的MAC封装的是路由器的。
路由转发过程:
当主机A发向主机B的数据流在网络层封装成IP数据包,IP数据包的首部包含了源地址和目标地址。主机A会用本机配置的24位IP网络掩码255.255.255.0与目标地址进行与运算,得出目标网络地址与本机的网络地址是不是在同一个网段中。如果不是将IP数据包转发到网关。
在发往网关前主机A还会通过ARP的请求获得默认网关的MAC地址。在主机A数据链路层IP数据包封装成以太网数据帧,然后才发住到网关……也就是路由器上的一个端口。
当网关路由器接收到以太网数据帧时,发现数据帧中的目标MAC地址是自己的某一个端口的物理地址,这时路由器会把以太网数据帧的封装去掉。路由器认为这个IP数据包是要通过自己进行转发,接着它就在匹配路由表。匹配到路由项后,它就将包发往下一条地址。
路由器转发数据包就是这样,所以它始终是不会改IP地址的。只会改MAC.
当有数据包传到路由器时,路由器首先将其的目的地址与路由表进行对比,如果是本地网络,将不会进行转发到外网络,而是直接转发给本地网内的目的主机;但是如果目的地址经路由表对比,发现不是在本网中,有nat就将改变源地址的IP(原源地址的Ip地址改为了路由器的IP地址),路由器将数据包转发到相应的端口,进行通信。
比如:
如:A访问B,
首先对比是否同一子网,如果是,检查ARP表,有B的MAC就直接发送,没有就发送ARP请求.如果否,发送到默认网关C,源IP为A,源MAC为A,目的IP为B,目的MAC地址为C,
C接收到这个包,检查路由表,发送到下一跳D,源IP为A,源MAC为C,目的IP为B,目的MAC为D…..
如此循环,直到发送到B.
NAT为特殊应用,会修改源IP为网关自己外网IP。
ip数据包经由路由转发的时候源ip,目的ip是否改变相关推荐
- ip数据包经由路由转发的时候源ip MAC,目的ip 目的MAC是否改变
轉載自https://blog.csdn.net/yiluyangguang1234/article/details/56666109 ip数据包经由路由转发的时候源ip,目的ip是否改变? 最近面试 ...
- IP数据包经由路由转发的时候,源ip和目的IP是否改变
IP数据包经由路由转发的时候源IP,目的ip是否改变? 这是个搞网络的基础问题,答案是不能改变的,除非做了nat转换才能改变.否则,数据包在整个传输过程中,源IP和目的IP不会发生改变. 不过MAC地 ...
- 数据包经由路由转发时源、目的IP地址及MAC地址变化情况
IP数据包经由路由转发的时候源ip,目的ip,源MAC,目的mac是否发生改变,如何改变? A-–(B1-B2)-–(C1-C2)---E 如上拓扑图为例,B1和B2是路由器B上的两个接口,C1和C2 ...
- IP数据包的路由转发
IP路由器是连接多个IP网络的设备,其主要的工作就是为经过IP路由器的每个IP数据包寻找一条最佳传输路径. 路由表就是记录了各种传输路径的数据的一张表,分为静态路由表和动态路由表. 静态路由表是事先固 ...
- 网络层协议和IP数据包的格式(详解)
1.网络层的功能 定义了基于IP协议的逻辑地址,就是ip地址 连接不同的媒介类型 选择数据通过网络的最佳路径,完成逻辑地址寻址 2.IP数据包格式 版本号( Version): 4bit 指IP协议版 ...
- 网络技术入门 :HTTP报文和TCP/IP数据包
本章把HTTP报文和TCP/IP数据包放在一起.是因为: 报文是一个完成的有意义的数据. 数据包可以理解为组成报文的传输单元. 应用程序的数据一般都比较大,因此TCP会按照网络包的大小对数据进行拆分. ...
- 计算机网络原理 实验3 《IP数据包捕获及数据分析》
计算机网络原理 实验3 <IP数据包捕获及数据分析> 一.实验目的 JPCAP是一个能够捕获.发送网络数据包的Java类库包.这个包用到了Winpcap/Libpcap和原始套接字API, ...
- IP数据包(详解版)
1.IP数据包详解图 2,使用Wireshark抓包 (1)版本--占4位,指IP协议的版本目前的IP协议版本号为4(即IPv4). (2)首部长度--占4位,这里的值为20Bytes. (3)总长度 ...
- Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径...
Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径. Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其 ...
最新文章
- HTML的标签描述16
- es的分片和副本_Elasticsearch 集群分配多少分片合理
- HTML(5)+CSS(3)--那些不知道但重要的知识!
- python之蓝图blueprint浅析
- 自定义弹框(手机端),定时消失
- Codeforces Round #587 (Div. 3)
- matlab谢尔宾斯三角_城市的公式
- [网络安全提高篇] 一〇六.SQL注入之手工注入和SQLMAP入门案例详解
- SRE(Simple Rule Engine) Document
- 跟一个刚毕业不久的码农聊天后被凡尔赛了
- python 字符串 4位一组_Python基础4- 字符串
- influxdb连续查询CQ和保留策略RP
- php下载数组里的图片,php 读取txt文件中的内容,转换成数组,根据URL将图片下载到本地(curl爬取)...
- python编译成汇编语言_查看C语言/C++编译器生成的汇编语言代码
- Flutter 高级篇-所有知识点架构
- 开源html5游戏-少年行
- MATLAB程序:S-V信道模型
- mmc rescan简析
- 计算机电缆对绞外径怎样算,电线电缆外径计算方法
- 计算机专业英语容易挂科吗,大学英语专业容易挂科吗
热门文章
- 服务拆分和远程调用(微服务)
- 小米怎么和计算机连接网络设置密码,小米手机2S怎么设置无线网络资料
- 2021年亚马逊运营教程(全)
- 带宽日益升级 华硕无线路由开启多维覆盖
- linux php7.2编译安装,Linux下编译安装php7.2
- Excel如何快速全选所有图片?
- 使用paramiko批量向服务器发送文件或文件夹
- ios连不上微软游戏服务器,iOS 设备上已经支持微软的 Xbox 云游戏服务
- 群星巨型计算机事件,群星控制台全事件整理
- Java集合(六): ConcurrentHashMap源码剖析