zoukankan      html  css  js  c++  java
  • 趣谈网络协议

    第一讲

    协议三要素:语法、语义、顺序。

    语法,就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。

    语义,就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本就没有意义。

    顺序,就是先干啥,后干啥。例如可以先加上某个数值,然后再减去某个数值。

    只有通过网络协议,才能使一大片机器互相协作、共同完成一件事

    第二讲

    Q:网络为什么要分层?

    A:复杂的程序都要分层,这是程序设计的要求。

    Q:TCP在三次握手的时候,IP层和MAC层在做什么?

    A:TCP发送每个消息,都会带着IP层和MAC层。因为TCP每发送一个消息,IP层和MAC层的所有机制都要运行一遍。而你只看到了TCP三次握手,其实,IP层和MAC层也忙活好久了。

    这里需记住:只要是在网络上跑的包,都是完整的。可以有下层没上层,绝对不可能有上层没下层。

    所以,对TCP协议来说,三次握手也好,重试也好,只要想发出去包,就要有IP层和MAC层,不然是发不出去的。

    Q:什么叫二层设备?什么叫三层设备?

    A:所谓的二层设备、三层设备,都是这些设备上跑的程序不同而已。一个HTTP协议的包经过一个二层设备,二层设备收进去的是整个网络包。这里面HTTP、TCP、IP、MAC都有。而二层设备就是只把MAC头摘下来,看看到底是丢弃、转发还是自己留着。那什么叫三层设备呢?三层设备就是把MAC头摘下来之后,再把IP头摘下来,看看到底是丢弃、转发还是自己留着。

    Q:为啥有了IP还需要MAC地址?

    A:a.信息传递时候,需要知道的其实是两个地址:终点地址、下一跳的地址。IP地址本质上是终点地址,它在跳过路由器的时候不会改变,而MAC地址则是下一跳的地址,每跳过一次路由器都会改变。这就是为什么还要用MAC地址的原因之一,它起到了记录下一跳的信息的作用。
    b.网络体系结构的分层模型:用MAC地址和IP地址两个地址,用于分别表示物理地址和逻辑地址是有好处的。这样分层可以使网络层与数据链路层的协议更灵活地替换。
    c.历史原因:早期的以太网只有集线器,没有交换机,所以发出去的包能被以太网内的所有机器监听到,因此要附带上MAC地址,每个机器只需要接受与自己MAC地址相匹配的包。

    (IP地址不唯一,MAC地址唯一)

    Q:为啥有了MAC地址还需要IP地址?

    A:IP是地址,有定位功能;MAC是身份证,无定位功能;

    注:如果一个HTTP协议的包跑在网络上,它一定是完整的。无论这个包经过哪些设备,他都是完整的。

    第三讲

    IP是地址,有定位功能;MAC是身份证,无定位功能;

    CIDR可以用来判断是不是本地人;

    IP分公有的IP和私有的IP。与是否“出国门”有关

    无类型域间选路(CIDR)

    于是有了一个折中的方式叫作无类型域间选路,简称CIDR。这种方式打破了原来设计的几类地址的做法,将 32 位的 IP 地址一分为二,前面是网络号,后面是主机号。从哪里分呢?你如果注意观察的话可以看到,10.100.122.2/24,这个 IP 地址中有一个斜杠,斜杠后面有个数字 24。这种地址表示形式,就是 CIDR。后面 24 的意思是,32 位中,前 24位是网络号,后 8 位是主机号。伴随着 CIDR 存在的,一个是广播地址,10.100.122.255。如果发送这个地址,所有10.100.122 网络里面的机器都可以收到。另一个是子网掩码,255.255.255.0。将子网掩码和 IP 地址进行 AND 计算。前面三个 255,转成二进制都是 1。1 和任何数值取 AND,都是原来数值,因而前三个数不变,为 10.100.122。后面一个 0,转换成二进制是 0,0 和任何数值取 AND,都是 0,因而最后一个数变为 0,合起来就是10.100.122.0。这就是网络号。将子网掩码和 IP 地址按位计算 AND,就可得到网络号。

    举例:一个容易“犯错”的CIDR

    Q:我们来看16.158.165.91/22这个CIDR。求一个这个网络的第一个地址、子网掩码和广播地址。

    A:由于22不是8的整数倍,于是将165转成二进制位10100101。16.158占了16位,因此22-16=6;取前面六位, 网络号为16.158.<101001>,而<01>.91是机器号

    则:网络中第一个地址为: 16.158.<101001><00>.1,即16.158.164.1

    ​ 子网掩码为:255.255.<111111><00>.0,即255.255.252.0

    ​ 广播地址为:16.158.<101001><11>.255,即16.158.167.255

    第四讲

    动态主机配置协议(DHCP)

    DHCP协议主要是用来给客户租用IP地址,和房产中介很像,要商谈,签约,续租,广播还不能“抢单”。DHCP 协议能给客户推荐“装修队”PXE,能够安装操作系统,这个在云计算领域大有用处。

    正确分配IP地址:

    CIDR、子网掩码、广播地址和网关地址

    第五讲

    第一,MAC 层是用来解决多路访问的堵车问题的;

    第二,ARP 是通过吼的方式来寻找目标 MAC 地址的,吼完之后记住一段时间,这个叫作

    缓存;

    第三,交换机是有 MAC 地址学习能力的,学完了它就知道谁在哪儿了,不用广播了。

    -------------------------------------后续继续补充----------------------------------

  • 相关阅读:
    windows中dos命令指南
    HDU 2084 数塔 (dp)
    HDU 1176 免费馅饼 (dp)
    HDU 1004 Let the Balloon Rise (map)
    变态杀人狂 (数学)
    HDU 2717 Catch That Cow (深搜)
    HDU 1234 开门人和关门人 (模拟)
    HDU 1070 Milk (模拟)
    HDU 1175 连连看 (深搜+剪枝)
    HDU 1159 Common Subsequence (dp)
  • 原文地址:https://www.cnblogs.com/zppsakura/p/13685656.html
Copyright © 2011-2022 走看看