前言
网络协议的学习知识主要来自于小码哥的网络协议从入门到底层原理,以及极客时间的趣谈网络协议,如果有什么理解错误的地方,还希望各位读者提出,希望大家能共同学习好网络协议。
一、为什么要学网络协议?
- 打好基础,大学里学过计网的同学都知道这是一门非常枯燥的课程,但确是计算机专业中的核心课程。就像盖一栋大楼要打好地基一样,学好任何编程语言同样需要学好网络协议。可能在平时的开发过程中我们并不需要了解太多底层的网络协议,只需要关注于业务代码,但是当系统逐渐变得庞大起来,应用集群的规模上来之后,就必须要考虑网络互通的问题。很多情况下,只要搞定了网络问题,一个大型的系统基本上就搞定了一半。
- 互联网、移动互联网、物联网,都离不开网络协议,比如常见的HTTP。
- 网络协议也是平时面试必问的一个重点,特别是像HTTP,HTTPS,TCP/UDP,这些知识都是热门问题。
二、基本概念
1.什么是协议
协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。以上摘自于百度百科。
2.协议的三要素
1.语法:一段内容要符合一定的规则和格式,例如括号要成对,结束要加分号。 2.语义:一段内容要代表某种意义,例如数字减数字是有意义的,数字减文本没有意义。 3.顺序:就是先做什么,再做什么。例如,可以先加上某个数值,然后再减去某个数值。
3.常用的网络协议
三、计算机之间的通信基础
首先,我们思考一个问题,将数据发送到另一台计算机需要哪些条件?
我们可以参考寄快递的例子,通常我们寄一个快递的时候需要填写收件人的哪些信息? 1,收件人地址 2,收件人的姓名手机号。这样我们就可以将快递准确无误的送到收件人的家里。 这两个信息缺一个我们都无法将快递精准的送到对方的手里。而对于上面那个问题,我们同样需要知道对方的IP和MAC地址,才能将数据发送到另一台计算机,我们可以先这么理解:IP 是地址,有定位功能;MAC 是身份证,无定位功能; 后面会详细介绍IP和MAC地址。
四、计算机之间的连接方式
1.网线直连
我们可以用交叉线直接连接两台计算机之间,然后设置IP 192.168.10,192.168.11。这样它们就可以进行通讯了。
2.同轴电缆
- 半双工通信:同一时间只有一个设备在发送数据
- 容易冲突
- 不安全
- 中间断了,整个都瘫了
3.集线器
4.网桥
- 能够通过自学习得知每个接口那侧的MAC地址
- 有隔绝冲突域的作用
5.交换机
6.路由器
- 可以在不同网段转发数据
- 隔绝广播域
总结
- 网线直连、同轴电缆、集线器、网桥、交换机连接的设备必须处于同一个网段
- 网线直连、同轴电缆、集线器、网桥、交换机连接的设备处于同一个广播域
- 路由器可以在不同网段之间传播数据
- 路由器能够隔绝广播域
四、计算机之间如何发送数据
上面我们已经知道计算机之间连接可以用网线直连、同轴电缆、集线器、网桥、交换机,路由器,其中路由器是连接不同的网段的。那么计算机之间是怎么通过这些设备来发送数据的呢?我们举两个例子,分别是现在常用的交换机和路由器。
通过交换机发送数据
1,计算机0通过交换机0第一次发送数据包到计算机1,计算机0和计算机1处于同一个网段。 2,首先我们知道发送数据包需要知道对方的IP地址和MAC地址,但是这时候计算机0只知道计算机1的IP地址,并不知道对方的MAC地址。所以计算机0会先发送一个ARP广播,用于获取计算机1的MAC地址。 3,ARP广播协议经过交换机0,发送到连接交换机0其它计算机,到计算机2的时候,计算机2发现这个数据并不是发送给自己的,所以计算机2会直接把这个数据包给丢到。同理,发送到计算机3的时候,也会直接把数据包给丢到。但是发送到计算机1的时候,计算机1发现这个数据就是发给自己的,此时计算机1会返回一个数据包到交换机0。 4,此时交换机0已经学习了连接它的计算机,它知道数据包是发送给计算机0的,所以数据包只会发送给计算机0。 5,通过ARP广播协议和获取到计算机1的MAC地址之后,计算机0会再发送ICMP协议将数据包发送给交换机0。 6,交换机0直接将数据包精准的发送给计算机1。 7,计算机1接收到数据后,给予响应,再将数据包返回给交换机0,交换机0将数据包返回给计算机0。
通过路由器发送数据
我们已经知道同一个网段内发送数据是怎么发送的了,现在要发送数据到另一个网段的计算机,需要用到路由器。 路由器两端连接着不同的网段,用于网段之间的数据传输。 1,计算机0发送数据包到计算机1 2,首先计算机0发现计算机1和自己不在同一个网段,这个时候计算机0依然会先发送ARP广播协议,此时寻找的目标MAC地址是网关192.168.1.1的MAC地址。 3,然后发送ICMP协议到网关,这个过程就不赘述了。 4,数据到网关192.168.1.1之后,网关会通过路由表来找到下一跳的网关地址 5,数据到网关192.168.2.1之后,会同样发送ARP协议,再发送ICMP协议到计算机1。
总结
上面我们知识简单的说了下计算机之间数据的传输,包括同一个网段和不同网段的。 在整个数据的传输过程中,源IP地址和目标IP地址是不会变的,源MAC地址和目标MAC地址有可能会变。
|