tcpip协议中主机与主机通信三要素

tcpip协议中主机与主机通信三要素,第1张

两台主机分别为a和b,a主机中如果使用名称访问b主机必须先使用dns,将b的名称解析为ip,然后a主机一以自己的ip为源地址,b的ip为目标地址封装ip数据包,同时使用a自己的网卡接口的子网掩码和b的ip进行与运算,如果b和自己在相同网络机载接口直接发送出去。但接口在发送时还需要将ip数据包封装成数据帧,这需要两台主机的mac地址。如果a知道b的mac,则直接使用b

的mac作为数据帧中的目的地址,如果不知道则向网络中发送arp广播,将b的ip解析为mac。

得到b的mac地址后完成数据帧的封装,将数据帧用高低不同的电平值表示发送到物理线路中就可以了。这是同一子网中a向b的单向通信过程。

不同子网的通信过程中,dns的名称解析是一样的。在数据包当中封装的源ip是a,目标ip是b,这个也一样。但是当a主机使用接口掩码和b的ip进行与运算后会发现两个ip不在同一子网,这是a会将这个数据包发送给本网络的网关(通常是本网的路由器),由网关来转发。另外,在封装数据帧时,主机需要知道b的mac地址,向外广播要求解析b的mac,但b不在本网络,所以只能有网关的arp代理功能实现,但a主机得到的并不是b的mac地址,而是网关的mac地址,所以a在数据帧中封装目的地址为本地网关。接下来从接口发送出去,当数据到达网关,网关会读取数据包中的目的ip,并根据目的ip进行转发,在转发时数据包中的目的ip不变,但数据帧中的源mac地址和目的mac地址都会发生变化。源mac地址变为网关的发送接口的mac地址,而目的地址可能是b主机的mac或是下一个路由器的接口mac。这就是不同子网的单向通信过程。b向a的通信和此过程是一样的。

主机A与主机B通信,A Ping B,图:A-交换机-B,AB同一子网

(1)ping数据包用的是ICMP协议,IP协议的一个子协议,位于三层,包含A的IP,B的IP,三层进行IP封装成包,进入二层

(2)A,B处于相同子网,查看缓存中对与目的对应得B第2层mac地址,如果存在,直接进行第2层封装成帧,经物理层信号编码,以0101010010这样的bits流传输在网络介质上。

(3)如果不存在B的MAC,则发送ARP广播请求B的MAC,ARP数据包经物理层进入交换机端口,需要进行源端口号学习,目的端口查找,B响应ARP请求,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。B通过ARP单播把B的MAC响应给A,此时再返回(2)的处理过程。

(4)当再进行A与B之间数据包转发,将直接用B的MAC地址封装,数据转发得以高速交换

主机A与主机C通信,A Ping C,图:A-交换机-路由器M-路由器N-交换机-C,AC不同子网

(1)两个机器不在同一子网内,A要与目的C通信,A要向“缺省网关”发出ARP包,而“缺省网关”的IP地址已经在A系统软件中设置。这个IP地址实际上对应路由器M的E0的IP地址。所以A对“缺省网关”的IP地址广播出一个ARP请求时,路由器M的E0口的MAC回复给A,此时A数据包的目的MAC替换为M的E0口MAC。

(2)MAC替换后,经物理层,传输到交换机物理层,再传到交换机数据链路层,再经数据数据链路层到物理层。

(3)经bit流传到路由器M的物理层,然后传到数据链路层,二层解封装,目的IP与路由器M三层IP路由表比较,若匹配正确,交给上层处理,否则会缓存数据包内容,然后根据目标地址查找路由表找到相关表项,得到NEXT HOP及出接口的MAC地址,用这两个地址作为新的目的及源MAC地址封装事先缓存的数据包,然后转发,这个过程称为帧的重写(REWRITE)。

(4)重复进行MAC替换后, 在路由器N中,找到与目的IP匹配表项,若N中存在C对应的MAC表项,则数据传输到C网络层,否则N发送ARP广播请求C的MAC。

(5)当C收到A的数据包后,再从A到C进行一次反向MAC替换过程。反向过程中,每一步省略掉ARP请求NEXT HOP的MAC,因为MAC表已经建立起来。

总结:

IP报文传输过程包括:

1. Host sends packet to default gateway(主机将数据包发送到默认网关)

2. Packet placed in frame(数据包被封装入帧)

3. Router receives frame(路由器接到帧)

4. Router finds destination network in route table(路由器在路由表中发现目标网络)

5. Router chooses next hop toward destination(路由器选择一个更接近目标的下一跳)

6. MAC address of next hop determined(下一跳的MAC地址被确定)

7. Packet placed in frame(数据包被封装入帧)

8. Repeats steps 2 through 7 as necessary(如果需要的话,重复步骤2~7)

9. Router receives frame(路由器接到帧)

10. Router finds network directly connected(路由器发现直连网络)

11. MAC address of end host determined(最终主机的MAC地址被确定)

12. Packet placed in frame to final destination(帧中的数据包被发送到最终主机)


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/97807.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-08
下一篇2023-03-08

发表评论

登录后才能评论

评论列表(0条)

    保存