.IP数据包在从在从源主机出发到达目的主机的过程中,IP首部中的源IP地址和目的地址字段是否发生变化?

如题所述

没有发生变化。

*除非做了nat转换才能改变。不过mac地址是变化的,因为发送端开始不知道目的主机的mac地址,所以每经过一个路由器mac地址是变化的。

当主机A发向主机B的数据流在网络层封装成IP数据包,IP数据包的首部包含了源地址和目标地址。主机A会用本机配置的24位IP网络掩码255.255.255.0与目标地址进行与运算,得出目标网络地址与本机的网络地址是不是在同一个网段中。如果不是将IP数据包转发到网关。

在发往网关前主机A还会通过ARP的请求获得默认网关的MAC地址。在主机A数据链路层IP数据包封装成以太网数据帧,然后才发住到网关……也就是路由器上的一个端口。

扩展资料

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封装的是路由器的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-05-20
没有变化 在数据封装的过程中 是包含协议端口等其他标识应用程序的字段或者协议,以便应用层能够区分,在internet层(OSI中的网络层)完成对IP地址的封装 之后数据 交到数据链路层 打上帧头 帧尾 之后交下一层进行传输 在传输过程中不变化;但是在实际中数据包的传输 还涉及到 MAC地址 其格式为“目的MAC:源MAC:目的IP:源IP :TCP SEQ=xx:数据APP”大致是这么个格式。这主要是TCP 的数据传输本回答被网友采纳