网络基础
Posted Moua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络基础相关的知识,希望对你有一定的参考价值。
目录
一、计算机网络的背景和发展
1、网络的发展历程
- 独立模式:计算机之间是相互独立的,每个终端独自拥有客户数据。
- 网络互联:多台计算机连接在一起,完成数据的共享。各个终端之间可以自由切换,共享数据由服务器集中管理。
- 局域网LAN:通过交换机和路由器将更多的计算机终端连接在一起。局域网并没有明确地定义,它是一个相对的概念,例如一个学校的校园网络就可以看做是一个局域网。
- 广域网WAN:将更大更大的计算机相连,比广域网覆盖的范围更大。也是一个相对概念。
二、初识网络协议
1、什么是协议?
协议是一种“约定”,是为进行网络中的数交换而建立的规则、标准或约定。网络通过光信号和电信号进行传播,通过频率和强弱来表示二进制数0和1。也就是说,数据通过网络传输首先要将信息转化成计算机能够识别的二进制机器码,然后在转化为不同频率和强弱的光信号和电信号在进行传输。图片是数据,需要通过网络进行传播、语音也是数据也需要通过网络传播,那么该如何知道传输的数据是图片还是语音或其他数据呢?这就要求通信双方约定好数据格式,实现不同数据的传输。
2、计算机网络体系结构
1)协议分层
对于非常复杂的计算机网络协议,其结构应该是层次的。
例如:在主机1和主机2之间通过一个通信网络传输文件,有很多的工作要做,因此是一个比较复杂的工作。我们可以将要做的工作划分为三类:
- 文件传送模块:与传输文件有关
- 通信服务模块:用来保证文件和文件传送命令可靠的在两个系统之间交换。
- 网络接入模块:负责做与网络接口细节有关的工作,并向上层提供服务,使上面的通信服务模块能够完成可靠通信任务。
这样做有什么好处:
- 各层之间是独立的:某一层并不需要知道它的下一层是如何实现的,仅仅需要知道该层通过层间的接口所提供的服务。
- 灵活性好:当任何一层发生变化时,只要层间接口关系保持不变,则在这层以上或者以下均不受影响。
- 结构上可以分割开:每一层可以使用合适的技术实现。
- 易于实现和维护:整个系统被分解为若干个子系统,使得复杂的系统变得易于处理。
2)OSI七层协议模型
3)TCP/IP五层(四层)协议模型
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。由于物理层属于硬件,考虑的比较少,因此也成为TCP/IP四层协议模型。
- 负责光/电信号的传递方式,在物理层上传输的数据的单位是比特。
- 数据链路层:负责设备之间数据帧 的传送和识别。
- 网络层:负责地址管理和路由选择
- 传输层:负责两台主机之间数据的传输。
- 应用层:负责应用程序间的沟通。
三、网络传输(TCP/IP通信过程)
1、同一网段内两台主机间的文件传输
同一网段内的主机之间可以直接进行通信,不需要路由器等中间设备。具体传输过程如下:
用户数据在应用层加上Appl首部--->传输层加上TCP首部--->网络层加上IP首部(包含IP地址)-->数据链路层加上以太网首部(包括Mac地址)--->接收端在对各层协议进行解析得到发送端发送的数据。
局域网中的数据冲突
当局域网中的多个主机同时发送数据可能会产生干扰,这种干扰就称作碰撞。
一个局域网就可以认为是一个碰撞域
为了降低局域网中的数据干扰,在发送数据时会对网络中进行检测,判断是否有其他主机也在发送数据,从而进行碰撞避免
局域网中的广播传输
发送在一个局域网中的数据,所有主机在链路层都可以接收到该数据(对MAC地址进行解析,判断是否发送给自己的数据)。同一个局域网中,将数据从源地址发送到目的地址,这里的目的地址可以是该局于网中的某一台主机,也可以是该局域网中的所有主机,当目标主机是局域网中的所有主机时,称为广播。
发送数据时,将MAC地址设置为全F时表示广播发送。
2、跨网段的主机文件传输
不同网段上的主机之间发送数据需要经过中间设备路由器进行转发。具体发送过程如下:
用户数据在应用层加上Appl首部--->传输层加上TCP首部--->网络层加上IP首部(包含IP地址)-->数据链路层加上以太网首部(包括Mac地址)--->以太网驱动程序对数据包进行解析通过Mac地址找到相应的路由器--->该路由器对数据重新封装在转发到下一个局域网中--->该网段中的主机对从路由器发送过来的数据进行解析,通过MAC地址判断是否是属于自己的信息--->目标主机收到数据并进行解析得到发送端发送的数据。
注意:在跨网络通信中,路由器连接了至少两个局域网,对于使用该路由器连接的所有局域网来说,路由器也属于这些局域网中的一个主机。对于发送方来说,在数据链路层给数据加上MAC地址,这个Mac地址是发送端所在的局域网中的某一主机的物理地址,也就是某一个路由器的物理地址。路由器收到该数据后,在根据要发送的目标主机对数据重新使用新的Mac地址进行封装转发到下一个局域网中,最终到达目标局域网(到达目标局域网后就相当于同一网段的通信)。
3、数据报的封装和分用
- 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
- 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation).
- 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.
- 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理.
注意:对于下一层的载荷应该是上一层的载荷+上一层的首部,例如:网络层的载荷应该为TCP首部+应用数据。
1)封装
发送端将用户数据发送到网络的过程称为封装。经过每一层时,会给应用数据加上相应的协议首部。
2)分用
分用和封装是两个相反的过程,传送到网络中的数据对首部进行解析,从而找到目的主机。
4、网络中的地址管理
1)IP地址
- IP协议有两个版本, IPv4和IPv6.
- IP地址是在IP协议中, 用来标识网络中不同主机的地址;
- 对于IPv4来说, IP地址是一个4字节, 32位的整数;
- 我们通常也使用 "点分十进制" 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255
2)MAC地址
- MAC地址(硬件地址或网卡地址,具有唯一性)用来识别数据链路层中相连的节点;
- 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
- 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).
在跨网络数据传输中,MAC地址是动态变化的,而IP地址是不变的。发送段发送数据会在网络层会对数据进行IP封装,其中包含了数据的源IP地址和目的IP地址,源IP地址表明了该数据来自哪一个主机,目的IP地址表明该数据需要发送到那个主机。发送到网络中的数据,会为其指定特定的传输路径,在数据链路层主要就是将来自目的IP的数据通过路由器转发到目的网络中,在转发的过程中使用MAC地址表明下一跳的路由地址,当传输到目标网络中在通过IP地址找到对应的接收端主机即可。
以上是关于网络基础的主要内容,如果未能解决你的问题,请参考以下文章