12 数据通信过程-两台PC机的故事
作者:互联网
大家好!
我是小黄,很高兴又跟大家见面啦 !
拒绝水文,从我做起 !!!!
今天更新的是:
- 12 数据通信过程-两台PC机的故事 。
- 往期检索:程序设计学习笔记——目录
创建时间:2021年2月1日
软件: eNsp_Client 、SecureCRT 、MindMaster
- 先放一张思维导图,大致知道操作系统的具体功能和目标,然后再一一展开叙述。
数据通信过程:
1. 数据通信过程分类:
- TCP/IP协议簇和底层协议配合,保证了数据能够实现端到端的传输。数据传输过程是一个非常复杂的过程,例如数据在转发的过程中会进行一系列的封装和解封装。对于网络工程师来说,只有深入地理解了数据在各种不同设备上的转发过程,才能够对网络进行正确的分析和检测。
1. 1 相同网段下的数据通信过程?
- 当主机A和主机B通信时-主机A发起对主机B的Ping:
- 主机A封装ICMP 数据包-Ping包、因为不知道目标MAC地址所以封装失败,触发ARP泛洪。
- 主机A到主机B的ARP请求-通过全F的目标MAC地址来回应主机B的MAC。
|原MAC地址|目的MAC地址|目的IP原IP|ICMP数据部分|
与运算:主机A的子网掩码和目标IP的子网掩码进行对比,检查是否在同一网段
- 主机B收到ARP请求回应ARP-把自己的MAC地址回应给主机A、主机B会把主机A的MAC地址,写入到自己的ARP缓存表中。
- 主机A重新封装ICMP,发出。
- 主机B收到ICMP请求,回复Replay。
- 主机A收到主机B ICMP回应。
1. 2 不同网段下的数据通信过程?
- 当由应用层协议产生数据并封装完成后,交给传输层封装
- 交给网路层再次封装—主机A必须拥有到达目的IP的路由
- 通过ARP缓存表找到下一跳的MAC地址。
- 如果表项里面没有下一跳的MAC地址,主机A会发送ARP请求。
- 交给数据链路层再次封装
- 同一个广播域里的设备都会接收到主机A发送的数据帧。
- 只有网关(RTA)会处理数据帧,并继续转发。
- RTB以服务器A的MAC地址作为目的MAC继续转发
- 服务器A接收到该数据帧后,发现目的MAC为自己的MA,于是会继续处理该数据帧。
- 服务器A检查TCP头部的目的端口,然后将数据段发送给应用层的HTTP协议进行处理。
当网关收到数据包时会如何处理?
- 网关检查是否具有到达目的网络的路由条目(有-转发、没有-丢弃)
- 如果存在转发路径,则为数据包添加一个新的二层帧头和帧尾,并继续转发
- 主机A到服务器A:
- 封装HTTP数据,应用层。
- 封装传输层-打上目标端口号80 、目标端口号:大于1027、TCP相关字段封装。
- 封装网络层-目标IP地址,原IP地址 、查找路由,下一跳,我应该把数据下一步发给谁?
- RTA收到-解封装处理,目标MAC地址是我,继续解封装,发现目标IP不是我、启动路由转发,看自己路由表,有没有去往目标网段的路由条目。
- RTA转发-重新封装数据的二层、把发出去数据的原接口MAC地址作为原MAC,把下一跳的目标MAC地址作为目标MAC封装、查找ARP缓存得知,如果没有下一跳的MAC,依然触发ARP请求
- 服务器A收到数据包-解封数据包:
解封数据链路层:看目标MAC地址,是自己继续解封。
解封网络层:目标IP地址,是自己继续解封。
解封传输层:看目标端口号,目标端口号:80、应该把数据交给上层的HTTP协议程序处理。
2. 数据传输错误基本排错思路:
- 故障排除的基本思路1:
- 永远不要忽略或者小看物理层的问题。(线有没有插对、设备有没有正常启动)
- 在逻辑上要时刻把通信过程装在脑子里,数据是有来有回,怎么去的,怎么回的,走两步,没病走两步。(逐级检查)
- 善用 各种协议和工具排错,比如ping和arp。
3. 其他应用层协议 :
各位路过的朋友,如果觉得可以学到些什么的话,点个赞 再走吧,欢迎各位路过的大佬评论,指正错误,也欢迎有问题的小伙伴评论留言,私信。
每个小伙伴的关注都是本人更新博客的动力!!!
请微信搜索【 在下小黄 】文章更新将在第一时间阅读 !
把握现在 ,展望未来 ,加油 !
由于水平有限 ,写的难免会有些不足之处 ,恳请各位大佬不吝赐教 !
标签:PC机,ARP,12,封装,数据通信,主机,地址,MAC 来源: https://blog.csdn.net/weixin_44519789/article/details/113497443