初步认识网络

一:组建网络

(1)局域网LAN

1.概念

局域网,即 Local Area Network,简称LAN


①Local 即标识了局域网是本地、局部组建的一种私有网络


②局域网内的主机之间能方便的进行网络通信,又称为内网

2.局域网组建网络的方式

①基于网线直连


②基于集线器组建


③基于交换机组建


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

(2)广域网WAN

1.概念

广域网,即 Wide Area Network,简称WAN

(局域网和广域网其实没有明确的界限,当局域网中设备数量非常多,局域网空间跨度特别大,就可以称为广域网)


①通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网


②广域网内部的局域网都属于其子网

2.许多路由器和交换机连接形成广域网

路由器上一般有4个LAN口和1个WAN口


💙①LAN口:连接电脑/交换机/集线器,一般都是连接交换机,因为通过交换机就可以连接到更多的终端设备

(终端设备:电脑、手机....)

(原因:路由器一般只有4个LAN口,要是想连接更多的终端设备就可以通过交换机)


💜②WAN口:连接运营商(移动、联通...)的宽带;运营商会从他们的机房拉出一条线,机房也包含很多路由器,这条线就插到路由器的WAN口,运营商相当于用他们机房路由器的LAN口连接你路由器的WAN口,这样运营商那边就能把外面的网络传输给你


 二:IP地址

(1)概念

IP地址用来描述网络上一个设备所在的位置,通过IP地址就可以查找到你的主机位置


🌟举例:就像快递一样,快递员需要知道你家的地址才能给你送快递,网络通信也是如此,需要知道你的IP地址才能给你传输数据

(2)源IP和目的IP

①源IP:标识源主机

②目的IP:标识目的主机


💚举例:就像上网买东西一样,比如你从网上买件衣服,商家给你发货所在的发货地就相当于源IP,你收货的地址就相当于目的IP

(3)IP格式

💛IP地址是一个4字节,32个比特位的二进制数,通常被分割为4个“8位二进制数”

如: 01100100.00000100.00000101.00000110


💙IP地址我们通常用“点分十进制”的方式来表示

即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)

如: 100.4.5.6

(4)IP组成

🌟IP地址分为两个部分,网络号和主机号

①网络号:标识网段(局域网),保证相互连接的两个网段具有不同的标识

②主机号:标识主机,同一局域网内,主机之间有相同的网络号,但是必须有不同的主机号


💓要点一:同一局域网中设备网络号必须相同,主机号必须不同

💓要点二:两个相邻的局域网,网络号必须不同


🌟问题:如何区分网络号和主机号?

方法一:子网掩码

①概念和格式:子网掩码格式和IP地址一样,也是一个4字节,32个比特位的二进制数

💙子网掩码的左边是网络位,用二进制数字“1”表示,1 的数目等于网络位的长度

💙子网掩码的右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度

💚(左侧必须是连续的1,右侧必须是连续的0,不可以是1和0相互交替)

②家用路由器子网掩码:通常是255.255.255.0


方法二:按照早期安排的分类

(5)特殊IP

①将IP地址中的主机地址全部设为0,就成为了网络号,代表整个局域网


②将IP地址中的主机地址全部设为1,就成为了广播地址

💜作用:当你给这个地址发送数据,此时连接到同一个局域网的所有设备都将接收到数据

💜缺点:这里的广播,在传输层中只能针对UDP,无法使用TCP,就没有“三握四挥”之说


③127.*的IP地址用于本机环回(loop back)测试

💛(通常是127.0.0.1)

💓本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输)

对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信

🌟localhost虽然也可以表示本机,但是它是一个域名,尽管最后会被解析成为127.0.0.1

从使用层面来说,这两者无差别,但还是更推荐使用127.*的IP地址

(6)解决IP地址不够用问题

1.动态分配IP(DHCP)

当前设备不会一直需要上网,需要上网就分配IP,不需要就先不分配

(注意:这种方案只能缓解,不能根治)

2.NAT机制(网络地址转换)

①IP地址分类

(1)内网IP:同一局域网内的设备内网IP不能重复;不同局域网内的设备内网IP可以重复

(此时在其他局域网中的设备就可以使用重复的IP了,大大减少了IP不够用的问题)

(2)外网IP:外网IP不能重复


②局域网内部所有设备之间是可以正常通信的

(因为局域网内部的内网IP都是唯一的,不可重复的)


③A局域网中的设备是不可以直接和B局域网中的设备进行通信的

💚原因:前面说过,不同局域网内的内网IP是可以重复的,如果它们的内网IP是重复的呢?

💙解决办法:需要有一个带有外网IP的设备进行中转


④优点

成本低,"纯软件实现"的解决方案,最大的优点,使得NAT广泛应用

(可以对比下文的IPV6)


⑤缺点

I.效率不高

II.非常繁琐

III.不方便直接访问局域网内的设备

(虽然提高了IP地址的“利用率”,但还是没从根本上解决IP地址不够用的问题)

3.IPV6

①IPV4:4字节,32个比特位表示IP地址

②IPV6:16字节,128个比特位表示IP地址


③优点:从根本上解决了IP地址不够用的问题

IPV4是2³²个IP地址

IPV6是2³² * 2³² * 2³² * 2³²个IP地址

(注意这个数字足以支持我们把地球上的每一粒沙子都分配一个IP地址,可想而知数量之大)


④缺点:成本高,IPV4和IPV6不兼容,因此若要使用IPV6,则必须换路由器

(对于普通人来说,一个路由器好端端的用着,不需要更换,而且我们需要知道,即使用了IPV6也不会提高网速,那么,换路由器的原因在哪呢,这也是IPV6不能受大众普遍使用的原因,相比于NAT,成本相差很多)

三:MAC地址

(1)概念

MAC地址,即 Media Access Control Address,用于标识网络设备的硬件物理地址

(MAC地址又称为物理地址)


①主机具有一个或多个网卡,路由器具有两个或两个以上网卡;其中每个网卡都有唯一的一个MAC地址


②网络通信,即网络数据传输,本质上是网络硬件设备,将数据发送到网卡上,或从网卡接收数据


③硬件层面,只能基于MAC地址识别网络设备的网络物理地址


④MAC地址在网卡出厂时就确定了,不能修改

(2)MAC的大小与格式

①大小:6个字节,48个比特位


②格式:一般用16进制数字加上冒号的形式来表示MAC地址

(两个十六进制数字来表示一个字节;字节之间用“-”或者“:”来分割)


(3)MAC的重要性

💗MAC地址是设备的物理地址,网卡出厂即确定了,不会随网络变化而变化


💗MAC地址在数据链路层上用于唯一标识和寻址设备

(4)MAC地址与IP地址的区分

1.TCP/IP协议不同层

①IP地址:位于网络层,负责网络层数据的转发

②MAC地址:位于数据链路层,负责数据链路层数据的转发


2.描述含义不同

①IP地址:描述的是网络传输整体路线的起点和终点;是给人使用的网络逻辑地址

②MAC地址:描述的是一个区间节点之间的起点和终点

💜(同样都可以表示主机的地址,只不过地址含义不同)


3.大小不同

①IP地址:4个字节,32个比特位

②MAC地址:6个字节,48个比特位

四:端口号

(1)概念

端口号用来区分一个主机上不同的应用程序,即用于定位主机中的进程


在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据

🌟举例:类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人(端口号)

(💜要知道是哪个程序发送或接收的数据,就像知道发货人或收件人是谁)

(2)端口号分类

①源端口:标识源主机中该次通信发送数据的进程

②目的端口:标识源主机中该次通信接收数据的进程


💚举例:就像上网买东西一样,比如你从网上买一件衣服,商家就相当于源端口,你就相当于目的端口,商家作为发货人,你作为收件人,网络传输也一样,发送数据的进程就是源端口,接收数据的进程就是目的端口

(3)端口号格式

💛端口号是0~65535范围的数字

💖一般0~1023的端口号我们都不推荐使用

这些属于“知名端口”,是预留给服务端程序绑定广泛使用的应用层协议

话虽这么说,但这些端口号绑定的服务器大多数都已经过气了,唯有少部分是知名的

💔其实mysql服务器比很多知名端口都要更广泛应用,但端口号默认只是3306


💙两个不同的进程不能绑定同一个端口号

💙一个进程可以绑定多个端口号,一个端口号只能绑定一个进程

五:网络协议

(1)概念

网络协议是网络通信(网络数据传输)经过的所有网络设备都必须共同遵从的一组约定和规则


如怎么样建立连接、怎么样互相识别等;只有遵守这个约定,计算机之间才能相互通信交流

(2)协议组成

①语法:即数据与控制信息的结构或格式

(类似打电话时,双方要使用同样的语言:普通话)


②语义:即需要发出何种控制信息,完成何种动作以及做出何种响应

(说明通信双方应当怎么做)


③时序:即事件实现顺序的详细说明

(定义了何时进行通信,先讲什么,后讲什么,讲话的速度等)


协议(protocol)最终体现为在网络上传输的数据包的格式!!!(下文说明)

(3)为什么需要协议

问题:

计算机生产厂商有很多

计算机操作系统,也有很多

计算机网络硬件设备,还是有很多

如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?


答案:那就是约定一个共同的标准,大家都来遵守这个标准来生产,这样生产出来的设备就可以一起相互通信,这就是网络协议

六:协议分层

(1)概念

定义不同层次的网络协议

(通过协议分层,用于网络通信)


💜原因:网络通信需要用到网络协议,但是网络通信是一个比较复杂的的工作,如果协议不分层,单靠一个协议解决所有问题,会导致这个协议非常庞大且复杂;我们此时就将协议进行拆分,但是这一拆分出来的协议太多了,就将一些含义或者功能相同的协议归为一类,即归为一层

(2)协议分层的作用

①让协议明确层级关系,避免跨层之间的交互和混乱,降低耦合,提高整个系统的可读性


②上层协议调用下层协议,上层从下层接到的数据进行解析并去掉一个报头

③下层协议给上层协议提供服务支持,下层给从上层接收到的数据添加一个报头


④上层协议不需要了解下层协议的细节,只管使用

下层协议隐藏了服务的细节

(类似于封装)

(3)协议分层的方式

①OSI七层模型

💗注意:OSI 七层模型既复杂又不实用;所以 OSI 七层模型没有落地、实现,我们平时实现协议也不会通过OSI模型,而是通过下面提到的TCP/IP五层模型,对于OSI模型我们只需要了解即可!!!


②TCP/IP五层(或四层)模型

💗一般实现协议都是基于TCP/IP模型

(下面详细说)

七:TCP/IP五层(或四层)模型

(1)物理层

描述网络通信中一些基础设施需要遵守的规范和约定


💚比如网线啥样、网口啥样、光/电信号的传递方式


💙作为TCP/IP模型的最底层


💜注意:一般我们算上物理层,就是TCP/IP五层模型

💜注意:如果我们不算物理层,就是TCP/IP四层模型


💓作用就是调制和解调

(有一种东西叫调制解调器,我们一般称之为猫)

(因此我们所说的光猫就是对光信号进行调制和解调) 

(2)数据链路层

描述相邻节点之间,数据如何传输


(负责设备之间的数据帧的传送和识别)


💚比如我从上海到西安,有很多不同的乘坐方式

(我可以先从上海到江苏,我坐高铁;然后从江苏到西安,坐飞机)


💙作为TCP/IP模型的第二层


💜主要协议:以太网

(3)网络层

规划数据传输的路径


(负责地址管理和路由选择)


💚比如我从上海到西安,有很多不同的路线

(我可以先从上海到江苏再从江苏到西安)


💙作为TCP/IP模型的第三层


💜主要协议:IP协议

(协议里面有源IP和目标IP)

(4)传输层

数据从哪里出发,要到哪去

只关注起点和终点,不关注过程


(负责两台主机或者两个节点之间的数据传输)


💚比如我坐飞机从上海到西安,我只需要知道起点是上海终点是西安,至于飞机怎么飞、飞行路线经过哪里我都不管也不用知道


💙作为TCP/IP模型的第四层


💜主要协议:TCP、UDP

(协议里面有源端口和目标端口)

(5)应用层

描述拿到数据后需要干什么


(负责应用程序间沟通)


💚比如我上网买了一个篮球,我拿来自己打或者送别人,具体怎么用,自己定义


💙作为TCP/IP模型的第五层


💜每个应用程序的应用层协议大多数都是不一样的

(6)示例图

 (7)总图分析


 ①我们作为程序猿,和应用层、传输层打交道比较多


②对于应用程序来说,它们的应用层采用的协议大多数都是不一样的

比如qq有qq的应用层协议,微信有微信的应用层协议


③对于一台主机,它的操作系统内核实现了从传输层到物理层

即是TCP/IP五层模型的下四层


④对于一台路由器,它实现了从网络层到物理层

即是TCP/IP五层模型的下三层

(俗称三层路由器)


⑤对于一台交换机,它实现了从数据链路层到物理层

即是TCP/IP五层模型的下两层

(俗称二层交换机)


⑥对于集线器,它只实现了物理层

八:网络通信

(1)概念

网络之间数据的传输


🌟通过上面的知识点,在这里我们理解网络通信就容易很多

(2)五元组

💗在TCP/IP协议中,用五元组来标识一个网络通信


①源IP:标识源主机

②目的IP:标识目的主机

③源端口号:标识源主机中该次通信发送数据的进程

④目的端口号:标识目的主机中该次通信接收数据的进程

⑤协议号:标识发送进程和接收进程双方约定的数据格式


💓类似于快递:

九:封装和分用

(1)封装

发送方,从TCP/IP模型从上到下,依次添加报头的过程


(类似在打包快递)

(2)分用

接收方,从TCP/IP模型从下到上,依次解析报头的过程


(类似在拆开快递)

(3)报头

对于发送方(封装)来说,上层的数据每到下层就往最前面添加当层协议的头

对于接收方(分用)来说,下层的数据每到上层就去除当层协议的头


①传输层:例如传输层的UDP协议的UDP报头就包括源端口和目标端口

②网络层:例如网络层的IP协议的IP报头就包括源IP和目标IP

十:网络传输基本流程

💘通过A给B用QQ发消息为例子进行详细说明数据是如何通过网络传输的!!!

💜①发送方A:从上往下,封装,一层一层包裹

(🌟图有点长,可选择右键图片,点击在新标签页打开图像,然后放大,此时图片就清晰了)


💜②接收方B:从下往上,分用,一层一层解开

(🌟图有点长,可选择右键图片,点击在新标签页打开图像,然后放大,此时图片就清晰了)


③总图:

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值