怎么建个人公司网站,厦门网站制作哪里好薇,怎么搭建小程序平台,中国拟在建项目网官网1、当网络包到达一个网关的时候#xff0c;可以通过路由表得到下一个网关的 IP 地址#xff0c;直接通过 IP 地址找就可以了#xff0c;为什么还要通过本地的 MAC 地址呢#xff1f;
答#xff1a;IP报文端到端的传输过程中#xff0c;在没有NAT情况下#xff0c;目的地…1、当网络包到达一个网关的时候可以通过路由表得到下一个网关的 IP 地址直接通过 IP 地址找就可以了为什么还要通过本地的 MAC 地址呢
答IP报文端到端的传输过程中在没有NAT情况下目的地址和源地址是不变的但每通过一个网关源MAC和目的MAC一直在变。所谓的下一跳看起来是 IP 地址其实是要通过 ARP 得到 MAC 地址将下一跳的 MAC 地址放在目标 MAC 地址里面。
2、MAC 地址可以修改吗
答MAC 本来设计为唯一性的但是后来设备越来越多而且还有虚拟化的设备和网卡有很多工具可以修改就很难保证不冲突了。但是至少应该保持一个局域网内是唯一的。
3、TCP 重试有没有可能导致重复下单
答因为 TCP 层收到了重复包之后TCP 层自己会进行去重发给应用层、HTTP 层。还是一个唯一的下单请求所以不会重复下单。
那什么时候会导致重复下单呢因为网络原因或者服务端错误导致 TCP 连接断了这样会重新发送应用层的请求也即 HTTP 的请求会重新发送一遍。
如果服务端设计的是无状态的它记不住上一次已经发送了一次请求。如果处理不好就会导致重复下单这就需要服务端除了实现无状态还需要根据传过来的订单号实现幂等同一个订单只处理一次。
还会有的现象是请求被黑客拦截发送多次这在 HTTPS 层可以有很多种机制例如通过 Timestamp 和 Nonce 随机数联合起来然后做一个不可逆的签名来保证。
4、IP 地址和 MAC 地址的关系
答IP 是有远程定位功能的MAC 是没有远程定位功能的只能通过本地 ARP 的方式找到。
5、如果最后一跳的时候IP 改变了怎么办
答对于 IP 层来讲当包到达最后一跳的时候原来的 IP 不存在了。比如网线拔掉了或者服务器直接宕机了则 ARP 就找不到了所以这个包就会发送失败了。
对于 IP 层的工作就结束了。但是 IP 层之上还有 TCP 层TCP 会重试的包还是会重新发送但是如果服务器没有启动起来超过一定的次数最终放弃。
6、TCP 层报平安怎么确认浏览器收到呢
答TCP 报平安只能保证 TCP 层能够收到不保证浏览器能够收到。但是可以想象如果浏览器是你写的一个程序你也是通过 socket 编程写的你是通过 socket建立一个 TCP 的连接然后从这个连接里面读取数据读取的数据就是 TCP 层确认收到的。
7、ARP 协议属于哪一层
答ARP 属于哪个层一直是有争议的。比如《TCP/IP 详解》把它放在了二层和三层之间但是既然是协议只要大家都遵守相同的格式、流程就可以了在实际应用的时候不会有歧义的。
8、 层级之间真实的调用方式是什么样的
答其实下层的协议知道上层协议的因为在每一层的包头里面都会有上一层是哪个协议的标识所以不是一个回调函数每一层的处理函数都会在操作系统启动的时候注册到内核的一个数据结构里面但是到某一层的时候是通过判断到底是哪一层的哪一个协议然后去找相应的处理函数去调用。 此文章为10月Day10学习笔记内容来源于极客时间《趣谈网络协议》推荐该课程。