JAVA跨平台原理
由源文件(.java)—>字节码文件(.class)(二进制文件)-----> 解释---->Unix,Win,Linux等机器。
1.一次编译,到处运行
2.编译器的作用:将源文件编译成class文件
3.虚拟机的作用:将字节码文件解释成对应平台机器码并执行。
4.java可以实现跨所有的平台?只有提供并且安装了相对应的虚拟机就可以跨该平台。
5.虚拟机和解释器的关系:解释器是虚拟机的一个重要的组成部分。
6.Java语言的执行要经过编译和解释两个阶段。
计算机之间的连接方式
基础知识点
- Ping命令用的ICMP协议
- 获取目标MAC地址用的是ARP协议(广播)
- 同种设备用交叉线
- 不同设备用直通线
- 网线直连,同轴电缆,网桥,交换机
- 连接的设备都要在同一个网段
- 连接的设备处在同一广播域
同轴电缆
集线器(hub)
网桥
如图 能够通过自己学习记录每个接口那侧的MAC地址
会记录一张MAC地址表,如果表中有一侧有相同的MAC地址此时会停止传播,从而起到隔绝冲突域的作用
交换机(switch)
全双工通信
比集线器安全
路由器(Router)
MAC地址/IP地址
MAC地址每一个都有一个6个字节(48bit)的mac地址
MAC地址是全球唯一的,是固化到ROM中的,由IEEE 802标准规定的 前三字节:组织唯一标识符由IEEE802的注册管理机构分配给厂商
后三个字节:网络接口标识符由厂商自行分配
MAC地址的表示格式
查看MAC地址–ipconfig /all
可以修改MAC地址,来蹭网
MAC地址的获取
当不知道对方主机的MAC地址时,可以通过发送ARP广播来获取对方的MAC地址
获取成功后会缓存IP地址,MAC地址的映射信息,一半叫ARP缓存
通过ARP广播获取的MAC地址,属于动态(dynamic)缓存
存储时间比较短(默认是2分钟),过期就自动删除
相关命令
arp-a [主机地址]:查询ARP缓存
arp-d [主机地址]:删除ARP缓存
arp-s 主机地址MAC地址:增加一条缓存信息(这是静态的)
IP地址
IP地址:互联网上的每一个主机都有一个ip地址
最初的ipv4版本,32bit(4字节)
后面推出IPV6版本。128bit(16字节)
IP地址的计算/网段计算
子网掩码就是来计算网段的 IP地址和子网掩码进行按位与的计算方式,与1按位与得本身,与0按位与得0
1对应的是网络ID,1对应的是主机ID
同一网段,网络ID是一样的
ip地址全唯一不可以用,全唯0也不可以用,所以求有多少个ip地址可以用的时候要减2
计算机转发判断
计算机和其他计算机通信前,会先判断目标主机和自己是否同一个网段
同一网段:不需要由路由器进行转发
不同网段:交路由器进行转发
IP地址分类
A类IP地址 一个A类IP地址由1字节的网络地址和3字节主机地址组成,它主要为大型网络而设计的,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到127.0.0.0)。可用的A类网络有127个,每个网络能容纳16777214个主机。其中127.0.0.1是一个特殊的IP地址,表示主机本身,用于本地机器的测试。
注: A:0-127,其中0代表任何地址,127为回环测试地址,因此,A类ip地址的实际范围是1-126. 默认子网掩码为255.0.0.0
B类IP地址 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。
注: B:128-191,其中128.0.0.0和191.255.0.0为保留ip,实际范围是128.1.0.0–191.254.0.0。
C类IP地址 一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
注:C:192-223,其中192.0.0.0和223.255.255.0为保留ip,实际范围是192.0.1.0–223.255.254.0
D类地址 用于多点广播(Multicast)。 D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。224.0.0.0到239.255.255.255用于多点广播 。
E类IP地址 以“llll0”开始,为将来使用保留。240.0.0.0到255.255.255.254,255.255.255.255用于广播地址。
全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下: A类地址:10.0.0.0~10.255.255.255 B类地址:172.16.0.0~172.31.255.255 C类地址:192.168.0.0~192.168.255.255
另一种解释方法,道理都一样,供参考:
A类地址的第一组数字为1~126。其中0代表任何地址,127为回环测试地址,注意,数字0和 127不作为A类地址,数字127保留给内部回送函数,而数字0则表示该地址是本地宿主机,不能传送。B类地址的第一组数字为128~191。C类地址的第一组数字为192~223。
A类地址 A类地址的表示范围为:0.0.0.0~126.255.255.255,默认网络掩码为:255.0.0.0;A类地址分配给规模特别大的网络使用。A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。
B类地址 B类地址的表示范围为:128.0.0.0~191.255.255.255,默认网络掩码为:255.255.0.0;B类地址分配给一般的中型网络。B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。
C类地址 C类地址的表示范围为:192.0.0.0~223.255.255.255,默认网络掩码为:255.255.255.0;C类地址分配给小型网络,如一般的局域网和校园网,它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。C类网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址。
D类地址和E类地址 用途比较特殊,D类地址称为广播地址,供特殊协议向选定的节点发送信息时用,E类地址保留给将来使用。
子网掩码的CIDR表示方法
CIDR:无类别域间路由
子网掩码的CIDR表示方法
192.168.1.100/24,代表子网掩码有24个1
,也就是255.255.255.0
子网划分
网络位不动,变主机部分,主机位划分出来的最后要写出来计算的时候划分出来的固定,取后面的主机部分为0或都为1,来算主机
主机地址是:主机号的个数2的多少次方-2 来算主机个数,相当于多少个c类地址就用2的多少次方除以2的8次方
可以划分的子网个数就是多少个1得2的多少次方 思考 这样的两个是没法正常通行的,因为计算机0会和对面的·ip地址和自己的子网掩码来计算网段
超网
超网:跟子网反过来,它是将多个连续的网段合并成一个更大的网段
合并子网,子网掩码向左移动一位,变多500台
这样的一个是可以给计算机使用的,因为网络为借给了一位给主机位,使的主机位不是全为1。
判断一个网段是子网还是超网
- 先看网段的类型,是A,B,C类
- 默认情况下i,A类子网掩码的位数是8位,B类子网掩码的位数是16位,c类子网掩码的位数是24位
- 如果该网段的子网掩码的位数比默认得到子网掩码多零就是子网
- 如果该网段的子网掩码比默认的子网掩码2少,就是超网
路由
串口连接路由器的
在不同网段之间转发数据,需要有看路由器的支持
默认情况下,路由器只知道跟它直连的2网段,非直连的网段需要通过静态路由,动态路由告诉它。
静态路由
动态路由
- 路由器通过路由选择协议(比如RIP,OSPF)自动获取路由器信息
- 适用大规模网络
数据包传输过程
源ip地址和目标IP地址不变,改变MAC地址
ISP
internet服务提供商,比如移动,电信,网通
网络的分类
局域网中使用最广泛的是以太网
1.1广域网(WAN: wide area network) 提供长距离通信,运送主机所发送的数据,覆盖范围一般为几十千米到几千千米的区域,所以也称远程网。 广域网是因特网的核心部分,链接广域网的各个结点交换机的链路一般都是高速链路,具有较大的通信容量
1.2、城域网(MAN: metropolitan area network) 城域网的范围一般为5~50km。城域网大多采用以太网技术(以太网(英语:Ethernet)是一种计算机局域网技术),因此有时也常并入局域网的范围讨论
1.3、局域网(LAN: local area network) 局域网一般用微机或者工作站通过高速线路相连,覆盖范围较小,通常几十米到几千米的区域。传统上局域网使用广播技术,而广域网使用交换技术
1.4、个人区域网(PAN: personal area network ) 个人区域网是指在个人工作的地方将端设备与端设备之间用无线技术连接起来的网络,也称为无线个人区域网(WPAN),覆盖区域的直径约为10m。
2、按传输技术分类 2.1、广播式网络 所以联网计算机都共享一个公共通信信道。当一台计算机利用共享通信信道发送报文分组时,所有其他的计算机都会“收听”到这个分组。接收到该分组的计算机将通过检查目的地址来决定是否接收该分组
2.2、点对点网络 每条物理线路连接一对计算机。如果通信的两台主机之间没有直接连接的线路,那么他们之间的分组传输就要通过中间的结点的接收、存储、转发,直至目的结点
是否采用分组存储转发和路由选择机制是点对点网络和广播式网络的重要区别,广域网基本上都属于点对点网络。
3、按拓扑结构分类 网络的拓扑结构是指网中的结点(路由器、主机等)与通信线路(网线)之间的几何关系。主要指通信子网的拓扑结构
星形、总线形和环形网络多用于局域网。 网状形网络多用于广域网
3.1、星形网络 每个端设备都以单独的线路与中央设备相连。中央设备早期是计算机,现在一般是交换机或者路由器。 星形网络的优点是便于几种控制和管理,因为端用户通信必须经过中央设备。 缺点是成本高、中心结点对故障敏感。
3.2、总线型网络 总线型拓扑结构是指采用单根传输线作为总线,所有工作站都共用一条总线。
优点:建网容易、增减结点方便、节省线路、总线中任一节点发生故障都不会造成整个网络的瘫痪
缺点:重负载是通信效率不高,总线任意一处对故障敏感
3.3、环形网络 所有计算机设备练成一个环。 环形网络最经典的例子是 令牌环网。环可以是单环,也可以是双环,环中信息是单向传输
3.4、网状形网络 一般情况下,每个结点至少有两条路径与其他结点相连,多用于广域网中。有规则型和非规则型两种。
优点:稳定性和可靠性高
缺点:控制复杂、线路成本高
以上四种基本的网络拓扑结构可以互连为更复杂的网络
上网方式
电话线入户:ADSL电话拨号上网
非对称数字用户,提供上,下行不对称的传输带宽
猫(modem),调制解调器,将数据信号和模拟信号的转换
光纤入户
光猫:将光信号和数字信号进行转换
公网IP/私网IP
ip地址分为公网IP/私网IP
internet上的路由器中只有到达公网的路由表,没有到达私网的路由表
公网IP地址由NIC统一分配和管理
ISP需要向inter NIC发送请求
NAT
私网IP访问internet需要进行NAT转换位公网IP
NAT的特点
可以节约公网IP的资源
会隐藏内部真实IP
网络互联模型
为了更好的促进互联网络的研究和发展,ISO在1985年制定了网络互联模型
OSI参考模型,具有7层结果
网络分层
物理层
物理层定义的一些特性
1.机械特性:定义物理连接的特性,规定物理连接时所采用的规格,接口形状,引数条目,引脚数量和排列情况 2.电气特性:规定传输二进制位时,线路上信号的电压范围,阻抗匹配,传输速率和距离限制. 某网络在物理层规定,信号的电平用+10V+15V表示二进制0,用-10V-15V表示二进制的1,电线长度限于15m以内 3.功能特性:指明某条线上出现的某一电平表示何种意义,接口部件的信号线用途 描述一个物理层接口引脚处于高电平时的含义 4.规程特性:(过程特性)定义各条物理线路的工作规格和时序关系
模拟信号:适合长距离
数字信号:适合短距离
三种通信方式:
从通信双方信息的交互方式看,可以有三种基本方式:
- 单工信道:只有一个方向的通信而没有反方向的交互,仅需要一条信道
- 半双工通信:通信的双方都可以发送或接受信息,但任何一方都不能同时发送和接受需要两条信道.
- 全双工通信:通信双方可以同时发送和接受信息,也需要两条信道
数据通信模型
注意:网线不可以超过100米
局域网:
广域网: 信道:信息传输的通道,一条传输介质上(比如网线)上可以有多条信道
数据链路层
链路
链路:从一个节点到相邻节点的一段物理线路(无线或有线),中间没有其他交换节点。
数据链路层:在一条链路上传输数据时,需要对应的通信协议来控制数据的传输。
不同类型的数据链路,所使用的通信协议可能是不同的
广播信道:CSMA/CD协议(同轴电缆)
点对点信道:ppp协议(两个路由器之间的协议)
数据链路层的结构 数据链路层属于第二层。 传输单元:帧。 帧的结构:由帧头、上三层数据、帧尾组成(如图所示)
帧头的结构
帧头结构:由目标MAC、源MAC、类型组成。 每个人的MAC地址是全球唯一的。 类型的两个值:0x0800(IP协议)、0x0806(ARP协议)这都是16进制的。 一段数据帧各处的大小 帧尾大小:占4字节。 帧头大小:目标MAC占6字节,类型占2字节。 中间的那一小段可以叫IP包也可以叫上三层数据它的MTU值 (最大传输单位)为:1500字节 。 所以一段数据帧占:1518字节 工作在数据链路层的设备:路由器和交换机。
MAC地址表的缓存时间是300秒
交换机原理
图看起麻烦的话可以直接看最后的文字。
交换机刚启动时,MAC地址表中什么都没有,如图所示。
接入PC的时候,交换机开始进行学习MAC地址,如下图所示。
PCA发出数据帧时。
交换机把PCA的帧中的源地址MAC_A与接收到此帧的端口E1/0/1关联起来。
交换机把PCA的帧从所有其他端口发送出去(除了接收到帧的端口E1/0/1)。
单播帧的转发:
PCA发出目的到PCD的单播数据帧。
交换机根据帧中的目的地址,从相应的端口E1/0/4发送出去。
交换机不在其他端口上转发此单播数据帧。
广播发送:
交换机会把广播和未知单播帧从所有其他端口发送出去(除了接收到帧的端口)
文字描述交换机原理 上面的可能太绕了,也可以康康文字。
收到一个数据帧。 首先学习帧中的源MAC地址来形成MAC地址表。 检查帧中的目标MAC地址,并匹配MAC地址表。 如表中有匹配项,则单播转发。 如表中没有匹配项,则除接受端口外广播转发。
CSMA/CD协议
- CSMA/CD协议:冲突检测的载波侦听
- 使用了CSMA/CD的网络可以称为以太网,她传输的是以太网帧
- 以太网帧格式有:enhernet V2 ,IEEE802.3标准
- 使用最多的是V2标准
- 为了能够检测正在发送的帧是否产生冲突,以太网的帧至少要64字节
- 用交换机组建的网络,已经支持全双工通信,不在需要CSMA/CD协议,但它传输的帧依然是以太网帧,所以用交换机组建的网络,依然可以叫做以太网
Ethernet V2 格式
网络层
IPv4数据报的首部格式
版本:占4bit表示ip协议的版本。
通信双方使用的ip协议的版本必须一样。目前广泛使用的IP协议版本号为4(即为ipv4)
片偏移(Fragment Offset)
占13位
片偏移乘以8:字节偏移
每一片的长度一定市八的整数倍
标志(flags)
占三位
第一位:保留
第二位:1代表不允许分片;0表示要分片
第三位;代表有没有跟多的片
生存时间(TTL)
ICMP
传输层
传输层两个协议
tcp:传输控制协议
udp:用户数据协议
UDP–数据格式
UDP是无连接的,减少了建立和释放连接的开销
UDP尽最大能力交付,不保存可靠交付
首部只有八字节
UDP–检验和
UDP检验和计算
检验和计算内容:伪首部+首部+数据
伪首部:仅在计算检验和时起作用,并不会传递给网络层
端口(port)
UDP首部中端口是占用2字节
常用命令行
netstat -an:查看被占用的端口
netstat -anb:查看被占用的端口,占用端口的应用程序
TCP数据格式
TCP可靠传输–停止等待
请求头和响应头
RFC7231 section4 Request methods:描述了8种请求方法 GET、 HEAD. POST、PUT、 DELETE、 CONNECT OPTIONS、 TRACE RFC5789 section2; Patch method:描述了 PATCH方法 GET:常用于读取的操作,请求参数直接拼接在∪RL的后面(浏览器对∪RL是有长度限制的) POST:常用于添加、修改、删除的操作,请求参数可以放到请求体中(没有大小限制)
请求头字段
User-Agent :浏览器的身份标识字串
User-Agent:Mozilla/5.0(X11;Linux x86 64: rv: 12.0)Gecko/20100101 Firefox/21. 0 Host 服务器的域名、端口号 Host: localhost: 80 Date 发送该消息的日期和时间 Date:Tue,15Nov199498:12:31GMT Referer:表示浏器所访问的前一个页面,正是那个页面上的某个链接将浏器带到了当前所请求的这个页面
Referer:https://www.baidu.com Content-Type 请求体的类型 Content-Type: multipart/form-data Content-Length 请求体的长度(字节为单位) Content-Length: 348
Accept 能够接受的响应内容类型( Content- Types) Accept-Charset 能够接受的字符集 Accept-Encoding 能够接受的编码方式列表 Accept-Language 能够接受的响应内容的自然语言列表
响应头字段
Rang 仅请求某个实体的一部分。字节偏移以θ开始Range: bytes=500-999 Origin 发起一个针对跨域资源共享的请求 Origin:https://www.baidu.com Cookie之前由服务器通过set-Cookie发送的Cookie Cookie:$VErsion=l;Skin=new; Connection 该浏览器想要优先使用的连接类型 Connection: keep-alive Cache-Contro1用来指定在这次的请求/响应链中的所有缓存机制都必须逍守的指令 Cache-Control: no-cache
Date 发送该消息的日期和时间 Date:Tue,15 Nov 1994 08:12:31GMT
Last-Modified 所请求的对象的最后修改日期 Last-Modified:Tue, 15 Nov 1994 12:45:26GMT Server 服务器的名字 Server: Apache/2.4.1 (Unix) Expires 指定一个时间,超过该时间则认为此响应已经过期 Expires: Thu,01 Dec 1994 16:88:88GMT
Content-Type响应体的类型 Content-Type:text/html; charset=utf-8 Content-Encoding内容所使用的编码类型 Content-Encoding: gzip Content-Length 响应体的长度(字节为单位) Content-Length: 348 Content-Disposition一个可以让客户端下载文件并建议文件名的头部 Content-Disposition: attachment:filename=“fname ext” Accept-Ranges 服务器支持哪些种类的部分内容范围 Accept-Ranges:bytes Content-Range这条部分消息是属于完整消息的哪部分 Content-Range: bytes21018-47821/47022
GET/POST
GET:没有请求体
POST:有请求体叫form data
Form提交-常用属性
action:请求的URI
method:请求方法(GET、POST)
enctype:POST请求时,请求体的编码方式 application/x-www- form-urlencoded(默认值) 用&分隔参数,用=分隔键和值,字符用URL编码方式进行编码
multipart/form-data:文件上传时必须使用这种编码方式
STP协议
STP生成树算法的过程、
1.选举根交换机
2.选举根端口
3.选举指定端口,并阻塞备用端口
这里的选举是指交换机之间发送的数据帧BPDU来进行选举
根交换机的选举条件:网桥ID(BID)最小的优先
网桥ID(BID)的组成:优先级和MAC地址组成
优先级:范围0-61440 步长:4096 默认值:32768
选举根端口:在每一个非根交换机上选举一个根端口
根端口(RP):用来接收根交换机发送过来的BPDU,也用来转发普通流量
1根端口选举的条件:BPDU接收端口到根交换机的最小路经成本
2,如果路径相同,比较对端的 BID的最小
3.如果 BID相同就比较PID(端口ID)
PID由优先级和端口号组成
优先级:范围0-240 步长16 默认号128
选举指定端口
STP报文
STP端口状态 STP定义了三种状态:根端口、指定端口、备用端口。
STP的5种端口状态:去能状态、阻塞状态、侦听状态、学习状态、转发状态。
端口状态 解释与说明 去能(Disabled) 去能转台的端口是无法接受和发送任何帧的,端口处于关闭(Down)状态 阻塞(Blocking) 阻塞状态的端口只能接收STP协议帧,但是不能发送STP协议帧,也不能转发用户数据帧 侦听(Listening) 侦听状态的端口可以接收和发送STP协议帧,但是不能进行MAC地址的学习,也不能转发用户数据帧 学习(Learning) 学习状态的端口可以接收和发送STP协议帧,也可以进行MAC地址的学习,但不能转发用户数据帧 转发(Forwarding) 转发状态的端口可以接收和发送STP协议帧,亦可以进行MAC地址的学习和用户数据帧的转发
stp报文知识点
BPDU报文被封装在以太网数据帧中,目的MAC是组播MAC:01-80-C2-00-00-00,Length/Type字段为MAC数据长度,后面是LLC头,LLC之后是BPDU报文头。
只有根桥主动发送配置BPDU,其他桥在收到上游传来的配置BPDU后,才触发发送自己的配置BPDU。配置BPDU的长度至少要35个字节,包含了桥ID、路径开销和端口ID等参数。 h_result.none-task-blog-2allsobaiduend~default-2-87855123.first_rank_v2_pc_rank_v29&utm_term=stp报文&spm=1018.2226.3001.4187)
STP端口状态 STP定义了三种状态:根端口、指定端口、备用端口。
STP的5种端口状态:去能状态、阻塞状态、侦听状态、学习状态、转发状态。
端口状态 解释与说明 去能(Disabled) 去能转台的端口是无法接受和发送任何帧的,端口处于关闭(Down)状态 阻塞(Blocking) 阻塞状态的端口只能接收STP协议帧,但是不能发送STP协议帧,也不能转发用户数据帧 侦听(Listening) 侦听状态的端口可以接收和发送STP协议帧,但是不能进行MAC地址的学习,也不能转发用户数据帧 学习(Learning) 学习状态的端口可以接收和发送STP协议帧,也可以进行MAC地址的学习,但不能转发用户数据帧 转发(Forwarding) 转发状态的端口可以接收和发送STP协议帧,亦可以进行MAC地址的学习和用户数据帧的转发
stp报文知识点
BPDU报文被封装在以太网数据帧中,目的MAC是组播MAC:01-80-C2-00-00-00,Length/Type字段为MAC数据长度,后面是LLC头,LLC之后是BPDU报文头。
只有根桥主动发送配置BPDU,其他桥在收到上游传来的配置BPDU后,才触发发送自己的配置BPDU。配置BPDU的长度至少要35个字节,包含了桥ID、路径开销和端口ID等参数。
|