计网笔记(二)

news/2024/7/24 10:12:02

3.1分组交换

当主机H1要向另一主机H2发送数据(报文)时,首先将数据划分成若干个等长的分组,然后将这些分组一个接一个地发往里与H1相联的路由A ,当A接到分组后,先放入缓冲区,再按一定的路由算法确定该分组下一步将发注哪个结点,如此一个结点一个结点传递,直到最终目的H2。

3.2数据报

数据报是通过网络传输的数据的基本单元,包含一个报头(header)和数据本身。

3.3IP分片

链路层数据帧封装的数据大小是有限制的。

3.4ip地址分类

在这里插入图片描述
ip地址有5种
A类:1.0.0.0~126.255.255.255
B类:128.0.0.0~191.255.255.255
C类:192.0.0.0~223.255.255.255
D类:224.0.0.0~239.255.255.255
E类:240.0.0.0~254.255.255.255
其中127.0.0.0~127.255.255.255用于环回测试,D类地址用于组播,E类地址用于科研

3.5如何根据掩码来确定ip地址网段

上面我们已经举例了解了子网掩码的作用,接下来我们再来了解如何确定子网掩码和判断ip地址的网段。

通常我们在划分vlan的时候会使用以下例子:

例1:

创建vlan1:ip地址:192.168.1.1 子网掩码:255.255.255.0

创建vlan2: ip地址:192.168.2.1 子网掩码:255.255.255.0

那么他们是不是在同一个网段呢?平时配置ip地址较多的朋友,可以直观的判断,他们并不是属于同一个网段,那么如何计算呢?要想判断两个ip地址是不是在同一个网段,只需将ip地址与子网掩码做与运算,如果得出的结果一样,则这两个ip地址是同一个子网当中。

详细计算

将ip地址192.168.1.1转换为二进制

11000000 10101000 00000001 00000001

将子网掩码255.255.255.0转换成二进制

11111111.11111111.11111111.00000000

然后将两者相“与(and)"运算:

11000000 10101000 00000001 00000001

11111111.11111111.11111111.00000000

然后得到:

11000000 10101000 00000001 00000000

转换成网络号就是:192.168.1.0

将ip地址192.168.2.1转换为二进制

11000000 10101000 00000010 00000001

将子网掩码255.255.255.0转换成二进制

11111111.11111111.11111111.00000000

然后将两者相“与(and)"运算:

11000000 10101000 00000010 00000001

11111111.11111111.11111111.00000000

然后得到:

11000000 10101000 00000010 00000000

转换成网络号就是:192.168.2.0

很明显,二者的结果是不一样的,一个是网段192.168.1.0,一个是网段192.168.2.0,所以不是一个网段。

例2

ip地址1:192.168.1.1 子网掩码:255.255.252.0

ip地址2:192.168.2.1 子网掩码:255.255.252.0

很明显,我们这个和上面例1的ip地址是一样的,只是子网掩码不一样,如果不看子网掩码,首先可能就判断他们不是同一个网段。

这里面和上面例1中***变化就是子网掩码从255.255.255.0换成了255.255.252.0了,那我们来看下,他们是否属于同一个网段。

详细计算

将ip地址192.168.1.1转换为二进制

11000000 10101000 00000001 00000001

将子网掩码255.255.252.0转换成二进制

11111111.11111111.11111100.00000000

然后将两者相“与(and)"运算:

11000000 10101000 00000001 00000001

11111111.11111111.11111100.00000000

然后得到:

11000000 10101000 00000000 00000000

转换成网络号就是:192.168.0.0

将ip地址192.168.2.1转换为二进制

11000000 10101000 00000010 00000001

将子网掩码255.255.252.0转换成二进制

11111111.11111111.11111100.00000000

然后将两者相“与(and)"运算:

11000000 10101000 00000010 00000001

11111111.11111111.11111100.00000000

然后得到:

11000000 10101000 00000000 00000000

转换成网络号就是:192.168.0.0

很明显,二者的结果是一样的,都是属于192.168.0.0网段,所以他们是同属于一个网段。

3.6私有IP地址

这里需要注意的是,你发没发现,为什么我们前端启动webpack测试环境的时候,一般地址都是192.168..(* 是指0-255的数字); 在公司和家里都是这个网段,不是很奇怪吗,你家里的网段怎么和公司一样呢?

其实是因为有一部分叫私有IP地址,是不能拿到网络上跟别的计算机通信的。只能是局域网自己内部用。比如说有:
在这里插入图片描述
还有一些特殊地址,需要了解
在这里插入图片描述
第一行,全一,代表是255.255.255.255,在本网络的目的地址写这个的话,就会内网广播

第二行,网络号特定值,主机号是全0,比如,192.169.10.1,这是c类网络,所以网络号是192.169.10,主机号是1,当主机号全0时,就是0,表示192.169.10.0这个网段

第三行,还是192.169.10.1这个c类地址,主机号都是1,也就是8个1,代表255,所以192.169.10.255表示本网段的广播地址

第四行,大家最熟悉不过了,127作为网络号,主机号非全0或1,比如说127.0.0.1代表本机,称为环回地址。

3.7网络地址转换(NAT)

在这里插入图片描述
如上图所示,192.168.0.3,192.168.0.4都是私有网段上的,它们无法跟外网通信,这个时候由于路由器安装了NAT软件,就可以将自己的ip地址,即路由器的ip地址172.38.1.5作为内网的代理,去访问外网,外网返回来的数据,经过路由转换,转换成内网的192.168网段的私有地址。

3.8ARP协议

每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的映射关系

当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该IP地址对应的MAC地址

如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址

此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致

如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中

如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址

源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输

如果源主机一直没有收到ARP响应数据包,表示ARP查询失败


http://www.niftyadmin.cn/n/861512.html

相关文章

elementUI的自定义主题

elementUI的自定义主题的设置 一、安装elementUI以及sass-loader,node-sass(项目中使用scss编写需要依赖的插件) npm i element-ui -S npm i sass-loader -D npm i sass-loader -D有时候安装sass的时候会安装失败,可以直接安装固定的版本号。直接复制到到package.…

计网笔记(三)

1传输层知识 传输层是只有计算机才有的层次,主要提供是进程间逻辑通信 可靠传输或者不可靠的功能。 这里简单说一下可靠传输协议TCP 不可靠传输协议UDP。 TCP面向连接,可靠,不提供广播和多播,而且时间延迟比较大,…

JS数组的常用方法

1.splice() !注意:splice函数会改变原数组。 由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组 例子 1 在本例中,我们将创建一…

Avoid using non-primitive value as key, use string/number value instead.

在使用v-for的时候,控制台报错,Avoid using non-primitive value as key, use string/number value instead. 主要是原因是key用的不对, key是要唯一性的,所以应该用循环的数据里面唯一的来做,比如id,如下,…

Sorry, name can no longer contain capital letters.

在使用vue-cli脚手架,vue命令创建项目的时候,报这个错,Sorry, name can no longer contain capital letters.,原因是因为创建的项目名称里面包含了,大写的字母,所以需要把大写字母改成小写的就可以了

手写JS深拷贝

1.使用JSON.stringify,JSON.parse 该方法只能拷贝Object对象,而无法拷贝undefined,function,RegExp等。 function deepCopy1(obj) {// 使用JSON.stringify,JSON.parselet objString JSON.stringify(obj);return JSO…

npm 安装 chromedriver@2.46.0失败

在创建vue项目的时候提示chromedriver2.46.0安装失败 这个时候我们应该,单独安装一次 npm install chromedriver --chromedriver_cdnurlhttp://cdn.npm.taobao.org/dist/chromedriver

小红书2020前端

1.薯队长写了一篇笔记草稿&#xff0c;请你帮忙输出最后内容。 1.输入字符包括&#xff0c;"(" , “)” 和 "<“和其他字符。 2.其他字符表示笔记内容。 3.()之间表示注释内容&#xff0c;任何字符都无效。 括号保证成对出现。 4.”<“表示退格, 删去前面…