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是否改变相关推荐

  1. ip数据包经由路由转发的时候源ip MAC,目的ip 目的MAC是否改变

    轉載自https://blog.csdn.net/yiluyangguang1234/article/details/56666109 ip数据包经由路由转发的时候源ip,目的ip是否改变? 最近面试 ...

  2. IP数据包经由路由转发的时候,源ip和目的IP是否改变

    IP数据包经由路由转发的时候源IP,目的ip是否改变? 这是个搞网络的基础问题,答案是不能改变的,除非做了nat转换才能改变.否则,数据包在整个传输过程中,源IP和目的IP不会发生改变. 不过MAC地 ...

  3. 数据包经由路由转发时源、目的IP地址及MAC地址变化情况

    IP数据包经由路由转发的时候源ip,目的ip,源MAC,目的mac是否发生改变,如何改变? A-–(B1-B2)-–(C1-C2)---E 如上拓扑图为例,B1和B2是路由器B上的两个接口,C1和C2 ...

  4. IP数据包的路由转发

    IP路由器是连接多个IP网络的设备,其主要的工作就是为经过IP路由器的每个IP数据包寻找一条最佳传输路径. 路由表就是记录了各种传输路径的数据的一张表,分为静态路由表和动态路由表. 静态路由表是事先固 ...

  5. 网络层协议和IP数据包的格式(详解)

    1.网络层的功能 定义了基于IP协议的逻辑地址,就是ip地址 连接不同的媒介类型 选择数据通过网络的最佳路径,完成逻辑地址寻址 2.IP数据包格式 版本号( Version): 4bit 指IP协议版 ...

  6. 网络技术入门 :HTTP报文和TCP/IP数据包

    本章把HTTP报文和TCP/IP数据包放在一起.是因为: 报文是一个完成的有意义的数据. 数据包可以理解为组成报文的传输单元. 应用程序的数据一般都比较大,因此TCP会按照网络包的大小对数据进行拆分. ...

  7. 计算机网络原理 实验3 《IP数据包捕获及数据分析》

    计算机网络原理 实验3 <IP数据包捕获及数据分析> 一.实验目的 JPCAP是一个能够捕获.发送网络数据包的Java类库包.这个包用到了Winpcap/Libpcap和原始套接字API, ...

  8. IP数据包(详解版)

    1.IP数据包详解图 2,使用Wireshark抓包 (1)版本--占4位,指IP协议的版本目前的IP协议版本号为4(即IPv4). (2)首部长度--占4位,这里的值为20Bytes. (3)总长度 ...

  9. Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径...

    Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径.   Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其 ...

最新文章

  1. HTML的标签描述16
  2. es的分片和副本_Elasticsearch 集群分配多少分片合理
  3. HTML(5)+CSS(3)--那些不知道但重要的知识!
  4. python之蓝图blueprint浅析
  5. 自定义弹框(手机端),定时消失
  6. Codeforces Round #587 (Div. 3)
  7. matlab谢尔宾斯三角_城市的公式
  8. [网络安全提高篇] 一〇六.SQL注入之手工注入和SQLMAP入门案例详解
  9. SRE(Simple Rule Engine) Document
  10. 跟一个刚毕业不久的码农聊天后被凡尔赛了
  11. python 字符串 4位一组_Python基础4- 字符串
  12. influxdb连续查询CQ和保留策略RP
  13. php下载数组里的图片,php 读取txt文件中的内容,转换成数组,根据URL将图片下载到本地(curl爬取)...
  14. python编译成汇编语言_查看C语言/C++编译器生成的汇编语言代码
  15. Flutter 高级篇-所有知识点架构
  16. 开源html5游戏-少年行
  17. MATLAB程序:S-V信道模型
  18. mmc rescan简析
  19. 计算机电缆对绞外径怎样算,电线电缆外径计算方法
  20. 计算机专业英语容易挂科吗,大学英语专业容易挂科吗

热门文章

  1. 服务拆分和远程调用(微服务)
  2. 小米怎么和计算机连接网络设置密码,小米手机2S怎么设置无线网络资料
  3. 2021年亚马逊运营教程(全)
  4. 带宽日益升级 华硕无线路由开启多维覆盖
  5. linux php7.2编译安装,Linux下编译安装php7.2
  6. Excel如何快速全选所有图片?
  7. 使用paramiko批量向服务器发送文件或文件夹
  8. ios连不上微软游戏服务器,iOS 设备上已经支持微软的 Xbox 云游戏服务
  9. 群星巨型计算机事件,群星控制台全事件整理
  10. Java集合(六): ConcurrentHashMap源码剖析