美文网首页
网络原理概述

网络原理概述

作者: LoveBugs_King | 来源:发表于2019-06-29 17:05 被阅读0次

全世界几十亿台电脑/手机,能够通过网络一起进行通讯,这么神奇的事情是怎么做到的?

先从简单的开始分析,两台电脑要进行通讯,需要怎么做?

我们需要通过“物理媒介”(光缆/电缆/无线电波)把两者连接起来。而物理媒介可以传输“物理信号”(电压/振幅等)。

物理信号传递什么信息呢?
比如电压,高压表示1,低压表示0。那么高/低压代表1/0,这也就是基础物理信号所代表的意义,需要制定协议。

这就是实体层,它就是把电脑连接起来的物理手段,主要规定了一些物理特性,作用负责传递0和1的电信号。
物理信号—(协议)—>电信号

0/1电信号,没有任何意义,怎么传递信息?
单纯的0/1的确没有意义,我们需要制定规则来赋予它意义。
比如,我们制定电信号的基本数据结构为“帧”(Frame),以帧为单位进行数据传输。
我们规定0/1的某种组合代表,帧的开始和结束、帧的标头Head(包含发送者/接受者/数据类型 信息)、帧的数据Body,这也就形成了一个有基本结构的数据包。

这就是 连接层,它把电信号的基本数据结构进行了规则制定。发送者和接受者都按照规定来解读固定结构的电信号。
电信号—(以太网协议)—>有基本结构的数据包

image

数据包基本结构中标头Head内包含的“发送者/接受者”信息是怎么确定的?
每台电脑要上网都需要“网卡”,数据包就是通过网卡接入/传出的。每一块网卡,都有一个独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示。网卡就像是我们的门牌号。

我的网卡只知道接收者网卡的MAC地址,怎么知道接收者的位置信息,把数据包传给它呢?
我的网卡会向本网络所有计算机发送数据包(广播),让每台计算机自己判断,是否为接收方,它们读取这个数据包的“标头”,把MAC地址进行对比,来选择接受/丢弃 数据包。

连接层通过“网卡MAC地址”与“广播方式”发送数据包,这样效率太低了。为了效率更高,我们又规定了一个新的地址系统,以网络地址表示门牌号。
IP协议:该地址系统就是IP协议,他所定义的地址就是IP地址。目前广泛应用的是IP协议第四版,简称IPv4,这个版本规定,网络地址由32个二进制位组成。
IP协议功能简单理解:
1、互联网上的每台计算机都会被分配一个IP地址
2、确定哪些地址在同一网络。通过IP地址和子网掩码可以计算出网络地址和主机号。若两个IP的网络地址相同,主机号不同,则处于同一子网中。

IP数据包:根据IP协议发送的数据包,叫IP数据包。IP数据包是在“以太网数据包”的Body数据部分内进行定义(因此完全不用修改以太网的规格。这就是互联网分层的好处,上层的变动不涉及下层的结构),其标头Head内的发送者/接收者是IP地址了,不是MAC地址了。

这就是 网络层他制定了新的地址系统(IP地址系统)。IP地址是由路由网关分配的,我发送数据包,不再是给每一台计算机发送了。而是给网关发送,网关X确定是发送给自己网内计算机的,再分发给该IP计算机,提高了效率。

image.png

有了MAC地址和IP地址,我们已经可以让网络上任意两台主机建立通信。接下来的问题是,同一台主机上有许多程序都需要用到网络,比如一边浏览网页,一边qq聊天,当一个数据包,从互联网发来的时候,我们需要一个参数来确定这个数据包到底供哪个程序(进程)使用,这个参数就叫“端口”,他其实是每一个使用网卡的程序的编号,每一个数据包发送到主机特定端口,所以不同的程序就能取到自己所需的数据。

端口:是0~65535之间的一个整数,正好16个二进制位。0~1023的端口被系统占用,用户只能选用大于1023的端口。不管聊天还是浏览网页,应用程序会随机选用一个端口,然后与服务器的响应端口联系。

这就是传输层,建立“端口”到“端口”的通信。相比之下,“网络层”的功能是建立主机到主机的通信。只要确定“主机”和“端口”,我们就能实现程序之间的交流。因此,Uinx系统就把主机和端口叫做“套接字”(socket)。有了它就可以进行网络应用开发了。

UDP协议:我们现在必须在数据包中加入端口信息,这就需要新的协。UDP协议,标头部分主要定义了“发出端口/接受端口”,数据部分就是具体的内容,让后把整个UDP数据包放入IP数据包的数据Body部分。

TCP协议:UDP协议简单,但可靠性差,数据包发出后,无法知道对方是否接收到。于是TCP协议诞生,它发出的每一个数据包,都要求确认,如果有一个数据包丢失,就收不到确认,发出方就知道有必要重发这个数据包。因此TCP协议能确保数据包不会丢失,缺点是过程复杂,实现困难,消耗资源多。

传输层

应用程序收到“传输层的数据”,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。
举例来说,TCP协议可以为各种个样的程序传递数据,比如Email、WWW、FTP等。那么,必须有不同协议规定电子邮件、网页、FTP的数据格式,这些应用程序协议就构成了应用层。

这就是应用层,最高的一层,直接面对用户。它的数据就放在TCP数据包的数据Body部分。因此,现在的以太网的数据包就变成了下面这样。

image.png

小结:

网络上的传递的数据包,基本上就是经过这几个层的包装。

网络通讯就是交换数据包,发送数据包需要知道两个地址:
1、MAC地址。
2、对方IP地址。
若两台电脑在同一个子网中,若接受方确定IP符合,会向对方报告自己的MAC地址。
若两台电脑不在同一个子网中,就无法知道对方的MAC地址,必须把数据包通过网关A(需要知道网关A的MAC地址)转发。路由协议,发现目标IP位于子网络B中,又把数据包发给网关B,网关B再把数据包转发给相应主机。

我们上网需要我们填写4个参数(太专业对用户不友好、如果IP不变其它电脑不能使用这个IP,不够灵活),本机IP地址、子网掩码、网关IP、DNS的IP。大多数用户使用“动态IP地址上网”,计算机开机后自动分配一个IP地址,它使用的协议是DHCP协议。它规定,每一个子网络中,有一台计算机负责管理本网络的所有IP地址,它叫做"DHCP服务器"。新的计算机加入网络,必须向"DHCP服务器"发送一个"DHCP请求"数据包,申请IP地址和相关的网络参数。

我们输入了www.google.com,首先通过DNS协议我们得到域名对应的IP地址,通过子网掩码(计算出该IP的网络地址)判断我们是否在同一子网,如果不在同一子网,我们通过我们子网的网关(得知道网关IP,然后又请求网关IP得到网关MAC,再通过网关转发)。浏览网页用的是HTTP协议。TCP数据包需要设置端口(根据TCP协议),然后TCP数据包嵌入IP数据包(根据IP协议),最后嵌入以太网数据包(根据以太网协议)。经过多个网关转发,谷歌服务器收到以太网数据包。

相关文章

  • 网络原理概述

    全世界几十亿台电脑/手机,能够通过网络一起进行通讯,这么神奇的事情是怎么做到的? 先从简单的开始分析,两台电脑要进...

  • 网络框架和图片加载框架总结

    1. 网络框架 概述:所有网络库的原理是: 网络请求一般是基于HttpURLConnection和HttpClie...

  • Linux学习第8周基础网络知识

    运维基础网络知识概述网络基础通讯原理介绍网络基础设备概念知识a 什么是交换机b 什么是路由器网络基础设备配置过程 ...

  • 网络爬虫

    网络爬虫(web crawler) 聚焦爬虫工作原理以及关键技术概述 网络爬虫是一个自动提取网页的程序,它为搜索引...

  • 网络原理-计算机网络概述

    计算机网络概述 发展过程 计算机网络的发展主要经历了四个阶段,可概括为:第一阶段为面向终端的计算机网络,第二阶段为...

  • Python网络爬虫

    1. 概述 本文主要介绍网络爬虫,采用的实现语言为Python,目的在于阐述网络爬虫的原理和实现,并且对目前常见的...

  • Docker-搭建HA版的Hadoop集群

    Hadoop HA 原理概述: 原理概述部分参考自:https://www.cnblogs.com/qingyun...

  • IP协议

    概述 工作原理 协议的特点 IP地址 IP地址是任何连入网络的设备、用于区分其他设备的标识。

  • 网络概述

    什么是网络? 网络一般分为2种,局域网和广域网。 局域网(local area network,LAN,私...

  • 网络概述

    什么是网络网络一般分2种 局域网和广域网 局域网局部区域网络(local area network)通常简称为"...

网友评论

      本文标题:网络原理概述

      本文链接:https://www.haomeiwen.com/subject/xsfpcctx.html