(javaEE)网络原理-初识 局域网和广域网 ip地址和端口号 协议 五元组 协议分层 OSI七层模型 网络数据通信的基本流程

目录

局域网和广域网

网络通信基础

ip地址和端口号:

协议

五元组

协议分层

OSI七层模型

网络数据通信的基本流程


局域网和广域网

根据网络互连的规模不同,可以划分为局域⽹和⼴域⽹

局域网和广域网

局域网:路由器,把两个设备连到同一个路由器上,在同一个局域网中了

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

全世界最大的广域网"因特网"The Internet

咱们所使用的广域网,其实就是一个"大一点的局域网

单机时代=>局域网时代=>广域网时代=>移动互联网时代~~

交换机:
交换机可以视为是"对路由器的接口进行了扩展"
家用路由器,一般就是查4个网线(1WAN口连运营商的设备)
交换机不会进行组局域网功能~可以把路由器的接口进行扩展

下面这个图就是路由器和交换机:

很显然交换机的接口更多!!

某个电脑连接到交换机上,等价于连接到路由器上

这个都是处于同一个局域网当中:两者和插排的感觉是一样的

交换机口不够用还可以接更多交换机,引入更多的插口

路由器接的东西太多了,就处理不过来了
家用的路由器,普通的,一般接20个设备,差不多就是极限了~~

贵的路由器会有更高的负荷:但是路由器还有企业级的路由器(动不动几千块钱)带几百个设备,都没啥压力~~

复制代码
局域⽹,即LocalAreaNetwork,简称LAN。
Local 即标识了局域⽹是本地,局部组建的⼀种私有⽹络。
局域⽹内的主机之间能⽅便的进⾏⽹络通信,⼜称为内⽹;局域⽹和局域⽹之间在没有连接的情况
下,是⽆法通信的。
局域⽹组建⽹络的⽅式有很多种:
(1)基于⽹线直连
(2)基于集线器组建
(3)基于交换机组建
(4)基于交换机和路由器组建

⼴域⽹WAN
⼴域⽹,即WideAreaNetwork,简称WAN。
通过路由器,将多个局域⽹连接起来,在物理上组成很⼤范围的⽹络,就形成了⼴域⽹。⼴域⽹内部
的局域⽹都属于其⼦⽹
复制代码
如果有北、中、南等分公司,甚⾄海外分公司,把这些分公司以专线⽅式连接起来,即称为"⼴域
⽹"。
如果属于全球化的公共型⼴域⽹,则称为互联⽹(⼜称公⽹,外⽹),属于⼴域⽹的⼀个⼦集。
有时在不严格的环境下说的⼴域⽹,其实是指互联⽹。
所谓"局域⽹"和"⼴域⽹"只是⼀个相对的概念。⽐如,我们有"天朝特⾊"的⼴域⽹,也可以看做
⼀个⽐较⼤的局域⽹。

网络通信基础

ip地址和端口号:

网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。
那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地址来标识。

复制代码
IP地址
概念:
IP地址主要⽤于标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。简单说,IP地址⽤于定位主
机的⽹络地址。
就像我们发送快递⼀样,需要知道对⽅的收货地址,快递员才能将包裹送到⽬的地。
格式:
IP地址是⼀个32位的⼆进制数,通常被分割为4个"8位⼆进制数"(也就是4个字节),如:
01100100.00000100.00000101.00000110。
通常⽤"点分⼗进制"的⽅式来表⽰,即a.b.c.d的形式(a,b,c,d都是0~255之间的⼗进制整数)。
如:100.4.5.6。

ip地址就是用来标识一台网络设备的 标识网络一台设备所在的位置.

端口号:
一台主机上可能有多个程序,同时使用网络~~
端口号区分一台主机上多个应用程序的~~

网络数据包?网络传输的数据,形象的比喻成"包裹"

通过ip和端口号就成功的找到了所对应的应用程序

复制代码
端口号
概念:
在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。
简单说:端口号用于定位主机中的进程。
类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人(端口号)。
格式:
端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数
据。
协议

认识协议:程序已经收到数据了,程序如何理解数据的含义

网络协议,通信双方对于发送/接受数据格式的约定~~
我的数据怎么发,你收到就得怎么解析~~

复制代码
协议,⽹络协议的简称,⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵
从的⼀组约定、规则。如怎么样建⽴连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能
相互通信交流。
协议(protocol)最终体现为在⽹络上传输的数据包的格式。

作用:
为什么需要协议?
就好比见网友,彼此协商胸口插支玫瑰花见面,这就是一种提前前的约定,也可以称之为协议。

也好比是插头和插座的关系,因为协议的存在,两者总是能匹配 保证规格是一样的

复制代码
计算机之间的传输媒介是光信号和电信号。通过"频率"和"强弱"来表示0和1这样的信息。要想传递
各种不同的信息,就需要约定好双方的数据格式。
计算机生产厂商有很多;
计算机操作系统,也有很多;
计算机网络硬件设备,还是有很多;
如何让这些不同厂商之间生产的计算机能够相互顺畅的通信
就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是网络协议;

协议就是一种约定 双方都履行--就是协议

网络通信中协议非常关键
多个主机设备~~
多个主机都能认同并遵守同一套协议,此时通信才是有意义的~~

五元组

在TCP/IP协议中,用五元组来标识一个网络通信:
1.源IP:标识源主机
2.源端口:标识源主机中该次通信发送数据的进程
3.目的IP:标识目的主机
4.目的端口:标识目的主机中该次通信接收数据的进程
5.协议类型:标识发送进程和接收进程双方约定的数据格式 遵循的是哪种协议

协议分层

什么是协议分层
协议分层类似于打电话时,定义不同的层次的协议:

拆分:把一个大的协议,拆成若干个小的,功能单一的协议了.
拆完之后,小的协议,太多了!!!甚至有几十个/上百个......

把这些小的协议归类--- 内聚

分层:只有相邻两层协议之间可以进行交互:
上层协议可以调用下层协议,下层协议可以给上层提供服务.
(协议之间的交互,不能夸层进行)

在这个例子中,我们的协议只有两层;但是实际的网络通信会更加复杂,需要分更多的层次。

分层的作用:
为什么需要网络协议的分层?
分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。
在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用
类(使用方,使用服务):
对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。

OSI七层模型
复制代码
TCP/IP五层(或四层)模型
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络
来完成自己的需求。

应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、
网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。

传输层:负责两台主机之间的数据传输。如传输控制协议(TCP),
能够确保数据可靠的从源主机发送到目标主机。

网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,
并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。

数据链路层:负责设备之间的数据顿的传送和识别。例如网卡设备的驱动、
帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、
数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。

物理层:负责光/电信号的传递方式。比如现在以太网通用的网纱(双绞线)、早期以太网采用的的同
轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理
层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。

物理层规定了网络通信中的一些硬件设施符合的要求~
物理层的协议,就是约定这些硬件设施要符合的要求是怎样的~~

数据链路层
完成两个相邻的设备之间如何进行通信的.通过网线,把电脑连到路由器/交换机上
电脑和路由器/交换机相邻节点/设备
先考虑一小步怎么走

网络层
则是两个任意设备之间如何进行通信,手机/考虑通讯的中间过程是怎样的
这俩设备之间,可能隔着很多的交换机和路由器

传输层
也是两个任意设备之间的通信,不考虑中间过程,只考虑,起点和终点~~

应用层

包裹拿到之后怎样使用~~

物理层我们考虑的比较少。因此很多时候也可以称为TCP/IP四层模型:

主机:工作过程涉及到 从物理层->应用层(通过应用程序满足网络通信的需求~~)

路由器:工作过程涉及到 从物理层-网络层(组建局域网,进行网络数据包的转发)

交换机:工作过程涉及到 从物理层->数据链路层(对路由器的接口的扩展,不需要考虑组网的问题)

复制代码
真实情况,还不太一样.
真实的路由器交换机功能是更丰富,更强大的.
现代的交换机,很多都有路由器的功能.
路由器也可以开启特殊的模式(mesh),就可以起到"交换机"的效果

甚至还有更多的功能

你通过WX发一个数据(数据属于应用层)
数据经过某个运营商的路由器,给你解析出来你发的内容
(此时,路由器相当于工作在应用层)
网络数据通信的基本流程

我通过qq,发送hello给对方~~应用程序获取到用户输入.构造一个应用层的数据包

此处假设这样的协议格式:发送者的qq号,接受者的qq,消息的时间,消息正文
这个应用层数据包就会遵守应用层协议,往往是开发这个程序的程序员自己定义的

应用层数据包往往是"结构化数据"(C的结构体,有很多属性)

发送数据的时候,把结构化数据=>字符串/二进制bit流 序列化
接受数据的时候,字符串/二进制比特流=>结构化数据 反序列化

网络传输的数据,本质上都是"字符串"或者"二进制的bit流"

2.应用程序调用传输层提供的接口(API),把数据交给传输层.
传输层拿到数据之后,构造出"传输层数据包"!!!
传输层的协议,主要是两个TCP,UDP

TCP数据包=TCP报头(header)+TCP载荷(payload)

报头:TCP功能相关的属性

载荷:应用层数据包

复制代码
买一件衣服
卖家发货,把衣服交给快递小哥
一定不是直接把衣服团个球,交给快递小哥,一定是带有包装的!!
有了包装之后,就可以贴标签
贴的这个标签,快递单,包含了这次传输的关键信息!!!
(五元组)
源ip,源端口,目的ip,目的端口,协议类型

3.传输层构造好数据之后,继续调用网络层的api,把传输层的数据包交给网络层
网络层继续进行处理,网络层最主要的协议,IP协议
IP协议继续对上述数据包进行加工=>拼上IP报头

IP数据包=IP报头+IP载荷(整个传输层的数据包)

IP协议本身不关心载荷内容是啥.
TCP协议也不关心载荷内容是啥.

复制代码
协议类型,其实不只是一份数据,有很多层!!!
其中IP报头里就会记录当前的传输层使用的是哪个协议
传输层报头中,也会记录应用层使用哪个协议(准确的
说是数据交给哪个应用程序)
数据链路层报头中也会记录网络层使用哪个协议

4.IP协议继续调用数据链路层的api,把IP数据包交给数据链路层
数据链路层中,核心协议,"以太网"
以太网这个协议,也会在网络层数据包的基础上进一步加工~

目前为止,数据还在当前主机上转悠,还没出门的~~

谈到网络传输的"基本数据单位"涉及到多个术语~~

以太网数据帧=帧头+载荷+帧尾

5.以太网继续这样的数据交给硬件设备(网卡)
网卡会把上述二进制数据,最终以光信号/电信号/电磁波信号传播出去了~~
数据终于出门了~~

从上层到下层,数据都要进一步加工(添加报头封装(和面向对象的封装,不是一个封装)

接受方法是从下到上依次解析,分用~~封装的逆向过程

分用,数据到达接收方主机,逐层进行解析:
1.数据到达接收方的网卡.光电信号.网卡把光电信号还原成二进制0101
把二进制数据交给上层数据链路层
2.数据链路层按照以太网协议进行解析,把报头和报尾取出来,剩下的载荷,往上传递给网络层

以太网的帧头中就有专门的属性,描述了网络层使用哪个协议

3.网络层拿到这个数据之后,按照IP协议的格式解析.再把载荷数据交交给传输层

IP报头中也有专门的属性,描述了传输层使用哪个协议

4.传输层拿到数据之后,也是类似,按照TCP协议来解析,取出载荷,交给应用层

传输层报头中,通过目的端口号,告知我们数据交给哪个应用月程序

5.QQ应用程序,解析应用层数据,拿到关键信息,展示到界面上,给出提示

不同的应用程序,自然使用不同的应用层协议来解析~~

1.数据到达接收方的网卡.光电信号.网卡把光电信号还原成二进制0101
把二进制数据交给上层数据链路层
物理层数据信号是咋来的,和数据链路层是直接相关的~~
网线/光纤来的数据,数据链路层=>以太网.
wifi来的数据,数据链路层=>802.11协议
2.数据链路层按照以太网协议进行解析 把报头和报尾取出来,剩下的载荷,往上传递给网络层

传输的中间过程中,也是涉及到封装分用的.
交换机,只需要封装分用到数据链路层即可.
主机的数据=>交换机,交换机收到之后,物理层解析,数据链路层解析(没有网络层了),重新构造出新的以太网数居帧,发给下一个设备A
数据链路层中,得到的以太网数据顿的帧头,信息就足以支持交换进行下一步工作

交换机是工作在数据链路层(二层转发)

主机的数据=>路由器.路由器收到之后,物理层,数据链路层,网络层解析(没有传输层),重新构造出新的网络数据包,构造出以太网数据帧,构造出二进制数据,进行转发~~
路由器是工作在网络层(三层转发)

无线用的协议是802.11,和以太网是并列的关系,本质是一样的,同样的封装分用
分装分用啥的帧头帧尾不一样的,~~数据格式不一样,功能略有差别.

是否有设备工作在传输层:这样的设备也有.比如防火墙/网关~~封装分用到传输层~~

也有设备,只工作在物理层的,集线器,网线延长线

相关推荐
huaxiu55 分钟前
ubuntu下应用打不开
linux·运维·ubuntu
帐篷Li7 分钟前
【AgenticCPS 】CPS联盟返利系统 - 实施计划
大数据·网络·人工智能
m0_6831247910 分钟前
Ubuntu服务设置开机自启
linux·运维·ubuntu
落叶花开又一年22 分钟前
检验检测机构资质认定远程评审工作程序
linux·运维·服务器
wanhengidc23 分钟前
《三国志异闻录》搬砖新游戏 云手机
运维·服务器·数据库·游戏·智能手机
Fly Wine37 分钟前
IPsec 最简单场景总部和网关之间建立,并且流量不会全部经过总部
网络
i建模44 分钟前
通过命令行使用密钥登录远程SSH主机
运维·ssh
旺仔.2911 小时前
僵死进程及Linux文件操作 详解
linux·运维·服务器
IMPYLH1 小时前
Linux 的 comm 命令
linux·运维·算法
淡泊if1 小时前
1.2GB → 98MB,我的 Docker 镜像瘦身实战记录
运维·docker·容器