为什么网络协议要层层校验啊?在最层底做一次校验和纠错不就行了么?

来源:百度知道 编辑:UC知道 时间:2024/05/24 15:53:58
7层模型里:
链路层是要做校验的
网络层的IP报文头部也有一个头部校验和字段
再上去传输层udp,tcp都有校验字段

累不累啊,最底层(比如就在链路层做一次性的校验和纠错)保证传到上层的全部数据都是正确性不就好了么?

为什么还要网络层、传输层,层层校验啊?

别告诉我说:怕从传输层到网络层这个过程,或者IP包解到udp包的时候出错啊!这除非是程序写错了,否则决不会出错的啊!

看ISO模型时,不理解这个!

请高人为我解答啊!

谢谢啦!

原因很简单,其实就是为了一个发,一个接的问题,要像你那样说的话网络不都乱套了,你发的东西任何人都可以接收了。就拿路由表来举个例子,在一个局域网中,每台电脑都有自己的MAC地址,局域网中数据的传输就是通过MAC地址来传输的,而且不是通过IP,就是为了接收地址的唯一性,你想某台电脑发出数据请求的时,他会先经过你本机上的路由表进行查询,你所需要的地址的IP以其响应的的MAC地址。但是有的电脑是用路由的DHCP分配(有的是本机设置自动获取)的地址所有相对与他的IP是改动的,当他会发出个信息进行MAC地址确认,如果不是的话会想整个网络的机子发送一个数据请求然后别人电脑在会应他的数据请求,从而将本机的路由表刷新 在从新发送的准确的目的地。如果按你说的省略那个程序的话,那你将发送的数据有可能不是你所期望的目的地。UDP丢包,其实也就是因为这个跟原地址有别才会出现的情况。