网络初识(java)

1.网络发展史

国内2000年前后才真正进入网络时代

2000年之前网络是稀罕物,虽然有些家庭已经有电脑了,但是没有网。

2000年之后网络逐渐多了起来(网吧),联机玩游戏只能在同一个机房/网吧(局域网)

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

广域网:把很多的局域网连到一起

全世界最大的因特网(The Internet)

2007年乔布斯发布苹果手机(初代IPhone)标志着移动互联网时代拉开了序幕,当时诺基亚这类传统手机仍然是主流

差不多2011/2012年左右,真身IPhone4 出现,是的诺基亚等传统手机厂商一夜就G了,包括华为、小米、三星等一系列厂商也把安卓推上风口浪尖

单机时代 =》局域网时代 =》广域网时代 =》移动互联网时代 =》???

组件网络的核心装备

路由器

交换机:交换机可以视为"对路由器的接口进行拓展"

家用路由器一般就是可以接4根网线,交换机不会进行组局域网的功能,可以把路由器的接口进行拓展

某个电脑连接到交换机上等价于链接到路由器上,交换机接口不够用可以接更多的交换机,引入更多的接口

路由器接的东西太多了就处理不过来了,家用路由器一般接20个装备差不多就是极限了,但是企业级的路由器带动几百个设备都是没有什么压力的

2.网络通信基础

IP地址

jdbc:mysql://127.0.0.1:3306/java113?characterEncoding=utf8

上述的127.0.0.1就是IP地址

IP地址可以标识网络一台设备所在的位置

端口号

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

认识协议

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

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

五元组

源IP,源端口、目的IP、目的端口、协议类型

西游记的唐僧:

贫僧(源端口)自东土大唐(源IP)而来,到西方(目的IP)拜佛(目的端口)求经去

协议分层

网络通信非常复杂,如果我们设计一个协议完成通信中方方面面的问题,势必会使这个协议非常复杂,非常庞大

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

所以要把这些小的协议归类

分层

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

封装

1.上层协议不需要了解下层协议的细节

2.分层之后,灵活的替换某一层,对于整体工作过程影响很小

真正的互联网怎么分层

OSI其层互联网模型

OSI七层模型既复杂也不实用:所以OSI七层模型没有落地实现

实际组件网络的时候,只是以OSI七层模型设计中的部分分层,也即是一下TCP/IP五层(或四层)模型来实现

RCP/IP五层或四层模型

TCP/IP是一组协议的代名词,还包括许多协议,组成了TCP/IP簇

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

  • 应用层:负责应⽤程序间沟通(负责使用)
  • 传输层:负责两台主机之间的数据传输(两个任意设备之间的通信,不考虑中间过程,只考虑起点和终点)
  • 网络层:负责地址管理和路径选择(两个任意设备之间如何进行通信,这两个设备之间可能隔着很多的交换机和路由器)
  • 数据链路层:负责设备之间的数据帧的传送和识别(完成两个相邻的设备之间如何通信的,通过网线,把地哦啊闹连接到路由器/交换机上)
  • 物理层:负责光/电信号的传递方式(网线/光纤/wifi)物理层的协议就是约定这些硬件设施要符合的要求是怎么样的

叫做四层是将数据链路层和物理层(硬件设备直接相关)看做一个整体

经典面试题

主机 工作过程涉及到 从物理层 =》应用层(通过应用程序满足网络通信的要求)

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

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


真实情况可能不太一样

真实的路由器交换机功能更丰富,更强大

现代的交换机很多都有路由器的功能,路由器也可以开启特殊的模式,就可以起到"交换机"的效果

封装和分用

网路数据通信的基本流程

封装:

通过qq发送hello

1.应用程序获取到用户输入,构造一个应用层的数据包

这个应用层数据包就会遵守应用层协议(往往是开发这个程序的程序员自己定义的)

此处假设这样的协议格式(约定格式)

发送者的qq号,接受者的qq号,消息时间,消息正文

示例的数据本质上就是"字符串拼接"

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

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

TCP报头 =》TCP功能相关的属性(属性很多,当前阶段只需知道这里包含了源端口和目的端口)

3.传输层构造好数据之后,继续调用网络层的api,把传输层的数据包交给网络层,网络层继续进行处理

网络层最主要的协议是IP协议

IP协议继续对上述数据包进行加工 =》拼上IP报头

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

IP报头的信息页很多(源IP和目的IP)

协议类型其实不只是一份数据,有很多层

其中IP报头会记录当前放入传输层使用的是哪个协议

传输层报头中夜壶已记录应用层使用哪个协议(准确来说是数据交给哪个应用程序)

数据链路层报头中也会记录网络层使用哪个协议

4.IP协议继续调用,数据链路的api把IP数据包交给数据链路层,数据链路层中,核心协议"以太网"

以太网这个协议也会在网络层数据包的基础上进一步加工

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

目前为止,数据还在当前手机上转悠没有出门

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

网络数据报包/帧/报/段

段(segment)TCP用的

报(Datagram) UDP用的

包(packet)IP用的

zhen(frame)数据链路层,以太网数据帧

5.以太网继续把这样的数据交给硬件设备(网卡)

网卡会把上述二进制数据,最终以 光信号/电信号/电磁波信号 传播出去

数据终于出门了

从上层到下层数据都要进一步加工(添加报头)

封装(和面向对象的封装不一样)

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


分用

数据达到接受方的主机,逐层进行解析

1.数据到达接受方的网卡,光电信号,网卡把光电信号还原成二进制010101

把二进制数据交给上层的数据链路层

物理层数据信号是咋来的和数据链路层都是直接相关的

2.数据链路按照以太网协议进行解析,把报头和报尾取出来,剩下的载荷往上传递给网络层

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

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

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

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

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

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

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

虽然上述过程听起来挺复杂,对于计算机来说是极快的过程


传输的过程中也会涉及到封装分用

交换机只需要分装到数据链路层即可(二层转发)

主机的数据 =》交换机 交换机收到之后,物理层解析,数据链路解析,重新构造出新的以太网数据帧,交给下一步工作

主机的数据 =》路由器 路由器收到之后物理层、数据链路层、网络层解析,重新构造出新的网络数据包,构造出以太网数据帧,构造出二进制数据(三层转发)

是否有设备工作在传输层:比如防火墙

相关推荐
医工交叉实验工坊2 小时前
七种基因递送编辑工具原理
网络
仍然.2 小时前
网络编程(二)---TCP字节流套接字编程
网络·网络协议·tcp/ip
前端技术2 小时前
03_网络层与IP编址:理解网络寻址的核心逻辑
服务器·网络·php
王大傻09282 小时前
WASC 团队报告的安全威胁分类
网络·安全·web安全
song150265372982 小时前
本安型LCFB-12矿用护套连接器介绍
网络
JS_SWKJ3 小时前
光闸赋能数安防护
网络
雨浓YN3 小时前
GKMLT通讯工具箱(WPF MVVM) - 07-倍福ADS通讯
网络·wpf
Ether IC Verifier3 小时前
OSI网络七层协议详细介绍
服务器·网络·网络协议·计算机网络·php·dpu
其实防守也摸鱼4 小时前
面试常问问题总结--护网蓝队方向
网络·笔记·安全·面试·职场和发展·护网·初级蓝队