前言:本节内容讲解一些网络基础相关的知识点, 不涉及网络代码!同样的本节内容是作为前一篇的补充知识点, 前一篇文章地址:【linux网络编程】 | 网络基础Ⅰ| 认识网络-CSDN博客,本篇文章内容较少, 友友们可以放松观看哦。
ps:本节内容为网络的基础,所以不需要太多系统相关知识。 友友们在看完前一篇文章就可以观看喽
目录
令牌环网
跨网络传输
网络通信的基本脉络示意图
名词
ifconfig
令牌环网
令牌环网不像碰撞检测, 碰撞避免的以太网, 他同样是每一个时刻, 同一个局域网内只有一台主机发送消息, 只不过它是如何保存的, 就相当于每一台主机, 比如a主机, 他要获得一个特定的标识数字。 这个标识数字a主机拿到了,a主机才能发消息。 所以令牌环网的特点就是局域网内只有一个令牌,哪一个主机拿到令牌, 他才能发消息。 (相当于锁, 只是网络中没有锁的概念。)
ps:令牌环网, 以太网其实都属于数据链路层, 只不过底层协议是不一样的。 网络是层状结构的, 将令牌环网替换掉以太网,上层不受到影响。
跨网络传输
我怎么知道我的数据要跨网络交给对方主机呢?这里就要引入一个地址:IP地址。
IP地址的作用:ip地址能够表示特定一台主机在全网中的唯一性。 而mac地址只应用于局域网, 保证的是局域网里面的唯一性(mac地址理论上可以保证全网的唯一性)。
- ip地址是什么:
可以利用两个小故事理解IP地址:
假设张三家在辽宁,然后冬天了,张三觉得辽宁有点冷,他想去云南去玩.他想去云南去玩的时候怎么去呢?
- 他就直接做动车一站一站的转乘一边玩一边走去了辽宁。所以张三就开始做路径规划。张三问了当地的大爷,去云南怎么走。大爷告诉他先去河北,然后张三就去了河北。然后到了河北后张三继续问当地的大爷,大爷告诉他去山西.张三就去山西了。张三就这么一边问一边玩,一边走。经过了河北,山西,陕西,四川。然后终于到了云南。那么问题来了,张三为什么要到河北?为什么要到山西?为什么要到河北?为什么要到四川?其实,张三在路上,张三身上一定有两套地址,第一套地址一从哪来到哪去。第二套地址一一上一站从哪来,下一站到哪去。
在路径当中,我们从哪来,到哪去,也就是第一套地址,一直都是不变的。在路上每一个地方,我们的上一站从哪来,下一站到哪里去一直是变化的。——这里的第一套地址, 就是IP地址。 第二套地址, 就是我们的mac地址。 而ip地址为什么要有呢?不就是因为它要给我们做定位, 让我们一直有一个目标, 这个目标就是我们的目标主机的ip地址。
- ip地址有什么用
由上面的结论我们就知道——ip地址的做用就是引导数据到达目标主机, 进行定位。
- ip VS mac
那么,假如我们想要去辽宁的鞍山。那么张三还会去云南绕一圈再回来吗?是不是就不会了,而是直接在本省内直接动车到鞍山了?
换言之,我们怎么知道我们的客户端要把数据通过路由器发给服务端,原因是目的IP表明我们的目标主机和当前主机不在同一个子网。不在子网就需要跨网络。所以,我们凭什么我们的数据交给路由器,是因为我们的要去的目标不在一个子网内.
所以,在客户端,把数据交给路由器的本质:本质就是局域网通信。假设我们的路由器的IP地址叫IP_R, mac地址叫Mac_R.所以我们对应的路由器自己的mac地址就必须得被我们的用户知道.
假设我们mac桢报头里填的是Mac_c、目标地址就是路由器的mac地址,就是Mac_R。然后呢,我们的主机就将报文放到了以太网当中。
放到以太网之后,所有的主机就都能够接收到这个报文。但是这些主机接收到报文之后,就分离有效载荷,分离后判断mac地址,一看和自己不一样就都丢弃了。但是对于路由器,路由器也接收到报文。它一看和自己的mac地址一样。所以,有效载荷部分就向上交付给了路由器的网络层。然后由路由器的网络层查找对应的IP地址,查到之后,知道了有效载荷内的目标主机的IP地址了。就将有效载荷向下交付!交给令牌环驱动程序。而令牌环驱动程序也是驱动程序,所以他就必须要封装令牌环驱动程序的报文。封装完成之后就找到目标主机,然后向上交付!!
——这, 就是mac地址和ip地址在网络数据流传输的过程中的不同作用。 所以IP地址尤其是目的IP, 一般都不会改变的, 会协助我们进行路径选择。 mac地址出局域网之后, 源头和目的都要被丢弃, 让路由器重新选择。
网络通信的基本脉络示意图
下面是我们网络通信的脉络图, 两边是我们的源头主机和目标主机。 中间是一个一个的子网:
日常中, 我们的主机想要向远端传送数据, 就要经过很多路由器这样的设备。 (每个路由器都有两张网卡),然后我们的源头主机向目标主机传送数据的示意图就是如下:
就是这样从路由器的一端网卡进入, 然后经过路由器转化mac地址, 由另一端网卡送出,反复中转到达目标主机!
名词
- 在传输层的报文我们称为数据段, 数据报。
- 在网络层的报文我们称为数据报。
- 在链路层的报文我们称为数据帧。
ifconfig
上面的eth0就是我们的网卡接口。 另外, inet其实就是ip地址, 这个192.168.3.85其实每一个点之间的数字都是0 ~ 255, 所以这整个的ip地址就是四字节。
这个ether其实就是以太的意思。 后面的这些数字都是16进制数, 所以就可以看到一共6个字节。 每个字节对应的8个比特位。而这个其实就是mac地址。
windows下使用ipconfig也可以查对应的ip地址。
——————以上就是本节全部内容哦, 如果对友友们有帮助的话可以关注博主, 方便学习更多知识哦!!!