网络中的一些基本概念

一、IP地址

1.概念:IP地址用于描述一个主机在互联网上的具体地址,定位主机的网络地址。(类似于快递运输时的收货地址)

2.格式:由4组“8位二进制数”组成,如01100100.00000100.00000101.00000110(一组8位二进制数代表1个字节);

由4组“十进制整数”组成,如100.4.5.6(每个部分占1个字节,范围0~255)

二、端口号

1.概念:端口号用于区分一个主机上的应用程序,定位主机上的进程(类似于发送快递填写的收货人电话)

2.格式:是0~65535范围的数字。

3.使用:进程可以绑定端口号,来发送和接受网络数据。一个进程可以绑定两个不同的进程,不能绑定同一个端口号;但若是一个进程有了子进程,可实现多个进程绑定同一个端口号。

三、协议

1.概念:基于网络数据传输时经过所有的网络设备都必须共同遵守一组约定,使用这个约定来规定双方传输的数据格式。

2.举例:发送方约定了他发数据是啥样格式,接收方也得理解这个格式,两边对的上号才能进行正确的通信。

3.标志:协议最终体现为在网络上传输的数据包的格式;数据包的本质为字符串的拼接。

四、协议分层

1.概念:协议分层约定了层级之间的调用关系,上层协议调用下层协议,下层协议给上层协议提供支持,但不能跨层调用。

2.举例:用打电话来说,可分为语言层(上层协议)和通信设备层(下层协议),人可以在语言层(选择通话语言)来调用通信设备(座机/手机)。

3.作用:

①分层之后可以做到,层次之间的耦合程度比较低。上层协议不必了解下层的细节,下层也不必了解上层的细节。

②方便对某一层的协议进行替换。(例如语言层本来选择的是普通话,可替换成四川话)

4.分层方式

网络中的一些基本概念_第1张图片

重点掌握TCP/IP五层模型(注:在考虑没有物理层时为四层模型)。

应用层——负责程序间沟通(只关注传输过来的数据是干啥用的)。这一层,主要进行写代码、网络编程。

传输层——负责两台主机之间的数据传输。(不考虑中间路径,只关注起点和终点)

网络层——负责地址管理和路由选择。(进行两个遥远节点之间的路径规划)

数据链路层——负责设备之间的数据帧的传送和识别。(两个相邻节点之间的传输方式)

物理层——硬件设备负责光/电信号的传递方式。(网络、光纤、网络接口等)

举个例子:

用买衣服来举例,传输层只考虑——起点:发件人地址、电话;终点:收件人地址、电话。

网络层用来路径规划——衣服可以从上海->南京运输、也可以上海->江苏->保定->南京。

数据链路层进行两个相邻节点运输——上海->南京(火车)、上海->江苏(卡车)等。

注释:除了应用层,剩下的四层,是操作系统已经”封装“好的,在实际应用中,我们只关注在应用层,在其上进行写代码、网络编程。

五、封装

1.概念:封装这一步是操作系统来实现的。发送方发送数据,要把数据从上到下依次交给对应层次的协议,进行封装。——类比“包装快递”

2.步骤:

假设有这么一种情况:A想要在QQ发信息,在编辑框中输入消息内容(“你好朋友”)发送给B。

①应用层(QQ应用程序)拿到上述用户数据,进行封装,封装成应用层数据包。

注:我们假设应用层数据包内包含了:发送人的qq号+收件人的qq号+发送时间+消息内容。

②传输层拿到应用层数据包,应用层会调用传输的API,来处理这个数据。传输层有很多协议,最典型的是TCP和UDP,以UDP来举例——UDP会针对应用层数据包再进行封装,封装的形式为UDP数据抱头+载荷(目的是给应用层数据再贴一层标签,标注属性信息)。

注:UDP数据报头内包含了一些关键属性:源端口和目的端口,描述了发送方程序的端口号和接收方程序的端口号。

③接下来到网络层。UDP数据包已经有了,接下来就要把这个数据包交给网络层的协议,网络层最常见的协议,就是IP协议——IP会针对UDP数据包再进行封装,封装的形式为IP协议报头+载荷(整个UDP数据包就成了IP的载荷)

注:IP协议报头内包含了:源Ip和目的Ip,描述了这次传输的起点和终点。

④再下来到数据链路层。最典型的协议,叫做以太网(使用网线上网就是在用以太网)。对网络层数据包进行封装,用到的是“以太网数据帧”——分为“以太网帧头”和“以太网帧尾”。

注:以太网帧头内包含了:源mac地址和目的mac地址,mac地址用来描述两个相邻节点的地址,传输过程中,mac地址随传输进度变化。

⑤最后到链路层。物理层接收到以太网数据帧,把上述拼接完整的字符串(实质为二进制数据)转化成光信号/电信号/电磁波信号,进行传输 。

六、分用

1.概念:接收方拿到数据,把数据从下到上,依次分用,去掉报头(与封装相反)——“类比拆快递”。

①物理层。网卡会收到高低电平的二进制数据,对光信号/电信号/电磁波信号进行解析,还原成0101这样的二进制序列。

②从物理层交给数据链路层 。此时就把上述0101这系列数据当作一个以太网数据包,把帧头和帧尾去掉,去除中间的载荷,再交给网络层。

③网络层。由网络层的IP协议进行解析数据包(也就是去掉IP报头),同时取出中间的载荷,交给更上层的传输层协议。

④传输层。由UDP协议来解析UDP数据包(去掉UDP报头),去除中间载荷,交给应用层。

⑤应用层。由qq这个应用程序,进行解析应用层数据包(取出字段,放到程序界面,即发送信息)

七、客户端

九、服务器

十、请求

十一、响应

十二、两台主机之间的网络通信流程

举例:假设A要发送消息给B。(过程为从第一行依次往下)

①“A的电脑” 完成从qq应用层封装到物理层的过程
②“交换机1” 第一步:进行分用——从物理层分用到数据链路层,更新新的mac'地址;第二步:再重新封装——从数据链路层封装到物理层,把数据继续传输。
③“交换机2” “重复他的任务”

④“交换机n”

“重复..........”
⑤“路由器” 第一步:进行分用——从物理层拿到数据分用到数据链路层,再分用到网络层(即需要随时更改mac地址,同时还需要根据目的Ip进行路径规划);第二步:再重新封装——从网络层封装到物理层,经过数据链路层时,也会调整mac地址。
⑥“路由器n” “重复.............”
⑦“B的电脑” 完成从物理层分用到应用层,收到A的信息

十三、网络发展背景

单机阶段——局域网阶段——广域网阶段——移动互联网阶段

局域网:把一些设备通过交换机/路由器连接起来。

广域网:把更多的局域网相互连接,当网络规模足够大,构成广域网。

你可能感兴趣的:(网络,服务器,运维)