认识一下网络

本文介绍了网络从独立模式到网络互联的发展,详细讲解了局域网和广域网的概念,以及网络通信中的IP地址、端口号和协议的重要性。还阐述了TCP/IP协议分层模型和封装分用的过程,帮助理解网络数据传输的基本原理。
摘要由CSDN通过智能技术生成

                                                               目录:

         一.网络发展史

         1.独立模式

         2.网络互联

      局域网LAN

    1基于网线直连

    2基于集线器组建

    3基于交换机组建

    4基于交换机和路由器组建

     广域网WAN

  二.网络通信

  1认识IP

  2认识端口号

  3认识协议

  4协议分层

  5协议图

  6协议图讲解

  7封装分用

  8客户端和服务器

  9两台主机的网络通信

10.拓展群聊的实现

大家好,今天为大家带来网络部分的相关知识,学完多线程,又来到了一个新的阶段,这部分的难度不比多线程低,可以说更加难,希望大家慢慢理解吧,我们一起加油!!!

一.网络发展史

既然要学网络,那就得先了解网络发展史

主要分为独立模式网络互联

下面就来具体看一看

独立模式是指计算机之间相互独立

假如现在有三台电脑ABC,A电脑用来处理姓名,B用来处理身份证号,C用来处理家庭住址

现在一位滑稽老铁来办理业务,要输入姓名必须到A机,输入身份证号必须到B机,输入家庭地址必须到C机前

 总的来说就是无法在一台机器上进行多个业务的实现

并且,如果此时来了其他的人,要等待滑稽老铁办理完以后,再办理,要一个一个来

经过时间的推移,到了网络互联模式

局域网,即 Local Area Network,简称LAN。Local 即标识了局域网是本地,局部组建的一种私有网络

局域网就是两台计算机通过一根网线连接,这两台电脑形成的网络叫做局域网,这个就是基于网线直连的局域网

后来,需要连接的电脑越来越多,就开始使用集线器,这个就是基于集线器组建的局域网

后来又用到交换机,就是基于交换机组建的局域网,最后是基于交换机和路由器的局域网

广域网

广域网,即 Wide Area Network,简称WAN。
通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网

所以广域网就是很多个局域网组建起来

二.网络通信

1.认识IP

要进行网络通信,我们得需要从一台主机发送到另一台主机,那么我们怎么知道主机的位置呢,这时就需要IP了

IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。

比如点外卖,填的外卖地址就是你的IP

输入cmd,打开命令行窗口,输入ipconfig,就可以查到自己电脑的IP了

 10.128.116.35就是一个IP地址

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:
01100100.00000100.00000101.00000110
通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数),比如10.101.61.200

还有一个很特别的IP地址,叫做环回IP,一般是127开头的,这里我们就记住127.0.0.1就好了

我们现在知道了目的主机的位置,但是一台电脑上有那么多进程,我们如何正确的发送呢?

2认识端口

这个时候就要用到端口了

端口就是用来区分进程的,比如主机A给主机B发了个QQ消息,不能跑到微信上面.那么就是通过端口来解决的

端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据.

两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号.

3.认识协议

有了IP,有了端口号,就可以通信了,但是通信内容也需要让双方都认识,那么就作出约定,规定发送数据的格式,这个约定就叫做协议

4.认识协议分层

类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。

上层协议调用下层协议,下层协议为上层协议提供服务,不能跨层调用

协议分层好处

拿吃饭来说

滑稽老铁可以用筷子吃面条,也可以用勺子吃米饭

这样并不冲突,替换起来也很灵活

那么协议分层有啥好处

1.分层之后做到层次之间耦合程度较低

2.方便对某一层协议进行替换

下面我们看来认识一下真实的网络协议

OSI七层网络模型(教科书上)

TCP/IP五层网络模型(使用最广泛)

我们重点介绍TCP/IP协议

分为五层

从上到到下依次为

应用层   关心的是传输过来的数据是干啥的

传输层 不考虑传输的中间路径,只关注起点和终点

网络层 主要负责两个遥远结点之间的路径规划

数据链路层 主要关注的是两个相邻结点的传输

物理层  网络通信的基础设施  例如网线,光纤,网络接口等

相当于网络上的高速公路

这样说比较抽象,我们来举一个具体的例子

滑稽老哥在淘宝,买了一双鞋

我不管咋传,我买那双鞋是来穿的,这就是应用层

我和卖家不关心咋传输,我只关心起点是啥,终点是啥,这就是传输层

收获地址是北京,发货地址是广州,从北京到广州有很多条路可以走,在很多路径中选择最好的,这就是网络层

从广州到北京的中途,有从广州到杭州,放到船里从杭州到西安,放到火车从西安到北京,放到火车上

这就是数据链路层,也就是网络上相邻结点,就是通过网线/光纤/无线直接连接的设备

5.协议图

 

6.协议图讲解

除应用层以外的其他四层都是被操作系统内核封装好的,所以我们重点关注应用层,而传射层要被应用层调用,所以我们现在重点来讲解一下传输层

7.封装和分用

在协议分层下,数据是咋样传输的?

通过封装和分用完成的

发送方发送数据,要把数据从上到下,依次交给对应层次的协议进行封装

接收方收到数据,要把数据从下到上,依次交给对应层次的协议进行分用(解析)

这个过程比较抽象,我们可以理解为包装快递和拆快递

下面我们用发送qq消息为例

发送方:小魏

接收方:王一博

小魏在QQ聊天框输入:一博哥,注意身体

首先,应用层(qq) 拿到上述的数据,进行封装,封装成应用层数据包

这里注意封装的本质其实就是字符串的拼接

1封装成应用层数据包

注意,真实的应用层数据报非常复杂,我们这里只是举个例子

我们在"一博哥,注意身体"这句话前面拼接了发送方和接收方的QQ号,以及发送时间

2.传输层拿到上述数据

应用层要调用传输层的api来处理数据

传输层有很多协议,最典型的是TCP和UDP

这里我们先来说一说UDP的

UDP针对上述数据包再一次封装,就是在最前面加一个UDP数据报头,把上述数据当做UDP数据报的载荷

 

一个典型的数据报就是报头+载荷构成的

这里加的报头是为了再加一层标签,然后在标签上填写必要属性

3.网络层拿到上述数据

网络层最常见的协议是IP协议

将上述UDP数据包进一步封装,添加IP协议报头,整个UDP数据报作为IP数据报的载荷

 源IP和目的IP就是描述了这次传输的起点和终点

4.网络层交给数据链路层

数据链路层最典型的协议就是以太网,以太网其实也包括在物理层内,单词书不做讨论

将上述数据报进行封装,加上以太网数据帧

 

 这里解释一下啥叫mac地址

也叫做物理地址,和IP一样,也是描述一个主机在网络上的位置

它的功能和IP类似,但是这两个地址用于不同的用途

IP用来进行网络层的传输路径的规划

mac用来进行描述数据链路层,两个即将进行传输的相邻结点

一个网卡理论上只有一个mac地址

IP不是,我们后期再来讨论

5.数据链路层把上述以太网数据帧交给物理层

物理层把010101的二进制数据转换成电信号或者光信号,进行传输

刚刚讲的封装过程操作系统给我们封装好了

现在来说一说接收过程

接收过程和发送过程恰好相反

发送是从上到下,依次封装,新增报头

接收是从下到上,依次分用,去掉报头

忽略转发过程,只考虑发送和接收

1.物理层,网卡收到高低电平二进制数据

对电信号/光信号/电磁波进行解析,还原成010101的二进制数据

2.物理层到数据链路层

把上述的0101的数据当做以太网数据帧,这里是从以太网线收到的数据,自然要交给以太网协议处理

 现在把帧头帧尾去掉,取出载荷,上交给网络层

帧头有一个消息类型,根据这个类型就知道网络层是IP协议了

3.网络层

现在将数据从数据链路层上传给网络层

此时由网络层的IP协议进行解析数据报,去掉IP报头

最重要的就是取出载荷,交给上层的传输层

 IP数据报头也有一个字段标识出当前传输层用的是哪个协议

4.传输层

由UDP进行解析

去掉UDP报头,取出载荷交给应用层

 5.应用层

由QQ这个程序,进行解析应用层数据报

取出下列字段,放到聊天界面

 最后在王一博的qq界面上会显示

 发送方,层层封装,就相当于包装快递

 接收方,层层分用,相当于拆快递


8.看看客户端和服务器的交互 

9.两台主机的网络通信

刚才所有的讨论我们都忽略了转发过程

在真实的传输过程中,会有路由器和交换机进行转发

 数据发出,从应用层封装到物理层,到达交换机,交换机会进行分用,从物理层分用到数据链路层,检查mac地址是否正确,然后再重新封装到物理层,将数据继续转发,注意,此时重新封装.源mac和目的mac就变了

继续传输,遇到路由器,从物理层分用到网络层,根据现在得到的源IP和目的IP进行下一阶段的寻路操作

(IP协议是一边传输,一边规划路径)

然后把数据报重新封装到物理层,再经过数据链路层的时候,源mac和目的mac也进行了更新

继续转发,最后到达接收方电脑

网络中每一次消息的传输都会涉及到封装分用

交换机,只需要封装分用到数据链路层,也就是更改源mac和目的mac

路由器,要封装分用到网络层,需要更改mac以及根据源IP 和目的IP进行下一段的路径规划

一般来说,交换机是二层转发,路由器是三层转发

但是在现实中,路由器和交换机界限越来越模糊

路由器可以通过设定,只进行二层转发

交换机也有高端的交换机进行三层转发,

甚至路由器和交换机还能封装分用到应用层,也就是在路由器或者交换机就捕获到消息了


拓展:群聊是咋实现的

群聊不是一个主机发给另一个主机,而是通过QQ服务器中转的

QQ服务器会根据群的编号,找到当前群里在线设备,遍历列表的在线设备,挨个发

这个功能是在应用层面实现,也就是通过代码实现的

今天的讲解到此结束,我们下期再见,886!!!

                        

 

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值