首页编程java编程java链路是什么(数据链路层的主要任务是什么网络层的主要功能有哪些)

java链路是什么(数据链路层的主要任务是什么网络层的主要功能有哪些)

编程之家 2023-10-12 95次浏览

各位老铁们好,相信很多人对java链路是什么都不是特别的了解,因此呢,今天就来为大家分享下关于java链路是什么以及数据链路层的主要任务是什么网络层的主要功能有哪些的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

java链路是什么(数据链路层的主要任务是什么网络层的主要功能有哪些)

java中CRC算法是个什么东东

CRC算法实现有2种方法,一、查表法,二、直接计算,查表法的计算速度相对来说比较快,本人介绍的方法是直接计算法,用了2种方法实现,都是面向对象进行算法的封装。

package com.wms.serial;

/**

java链路是什么(数据链路层的主要任务是什么网络层的主要功能有哪些)

*@author linduo

*@version 2006/08/25

*/

java链路是什么(数据链路层的主要任务是什么网络层的主要功能有哪些)

public class CRC16{

public int value;

public CRC16()

{

value= 0;

}

/** update CRC with byte b*/

public void update(byte aByte)

{

int a, b;

a=(int) aByte;

for(int count= 7; count>=0; count--){

a= a<< 1;

b=(a>>>8)& 1;

if((value& 0x8000)!= 0){

value=((value<< 1)+ b) ^ 0x1021;

} else{

value=(value<< 1)+ b;

}

}

value= value& 0xffff;

return;

}

/** reset CRC value to 0*/

public void reset()

{

value= 0;

}

public int getValue()

{

return value;

}

public static void main(String[] args){

CRC16 crc16= new CRC16();

byte[] b= new byte[]{

//(byte) 0xF0,(byte)0xF0,(byte)0xF0,(byte)0x72

(byte) 0x2C,(byte)0x00,(byte)0xFF,(byte)0xFE

,(byte) 0xFE,(byte)0x04,(byte)0x00,(byte)0x00

,(byte) 0x00,(byte)0x00

};

for(int k= 0; k< b.length; k++)

{

crc16.update(b[k]);

}

System.out.println(Integer.toHexString(crc16.getValue()));

System.out.println(Integer.toHexString(b.length));

}

}

package com.wms.serial;

public class CRC162{

public static final void main(String[] args){

CRC162 crc16= new CRC162();

byte[] b= new byte[]{

//(byte) 0xF0,(byte)0xF0,(byte)0xF0,(byte)0x72

(byte) 0x2C,(byte)0x00,(byte)0xFF,(byte)0xFE

,(byte) 0xFE,(byte)0x04,(byte)0x00,(byte)0x00

,(byte) 0x00,(byte)0x00

};

System.out.println(Integer.toHexString(crc16.encode(b)));

//再把这个2f49替换成b数组的最后两个字节的数组,生成一个新的数组b2

byte[] b2= new byte[]{

//(byte) 0xF0,(byte)0xF0,(byte)0xF0,(byte)0x72

(byte) 0x2C,(byte)0x00,(byte)0xFF,(byte)0xFE

,(byte) 0xFE,(byte)0x04,(byte)0x00,(byte)0x00

,(byte) 0x2f,(byte)0x49

};

System.out.println(Integer.toHexString(crc16.encode(b2)));//算出来是 0

//你可以自已构造一些byte进行加解密试试

}

public short encode(byte[] b){

short CRC_x= 0;

int pp= 65536;// 1<<16;

int pp2= 69665;//(1<<16)+(1<<12)+(1<<5)+ 1

for(int i=0;i<b.length;i++){

for(int j=0;j<8;j++){

CRC_x=(short)((CRC_x<<1)+(((b[i]<<j)&0x80)>>7));

if((CRC_x/pp)== 1){

CRC_x=(short)(CRC_x^pp2);

}

}

}

return CRC_x;

}

}

数据链路层的主要任务是什么网络层的主要功能有哪些

1、数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。

为达到这一目的,数据链路必须具备一系列相应的功能,主要有:

(1)如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;

(2)如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;

(3)以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。

2、网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。如果您想用尽量少的词来记住网络层,那就是“路径选择、路由及逻辑寻址”。

扩展资料

OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是 7应用层6表示层5会话层 4传输层3网络层2数据链路层1物理层

1、应用层

与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。

2、表示层

这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。

如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。

3、会话层

它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。

4、传输层

这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。

5、网络层

这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。

6、数据链路层

它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。

数据链路层:是为了提供功能上和规程上的方法,以便建立、维护和释放网络实体间的数据链路。

物理链路(物理线路):是由传输介质与设备组成的。原始的物理传输线路是指没有采用高层差错控制的基本的物理传输介质与设备。

数据链路(逻辑线路):在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路。从数据发送点到数据接收点(点到点 point to point)所经过的传输途径。

当采用复用技术时,一条物理链路上可以有多条数据链路。

7、物理层

OSI的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。

参考资料来源:百度百科—网络层

参考资料来源:百度百科—数据链路层

java开发应该具备什么能力

一、逻辑思维能力

这一点在学习Java的过程中很重要,可以说这是对程序员最基本的要求。对于理工科成绩比较好的学生来说,学习Java是比较有优势的,这并不是说文科生或者艺术生就完全不适合学习Java,逻辑思维有时也离不开平常的锻炼。当你怀有一腔学习Java的热忱,平时也有积极锻炼自己的逻辑思维能力,那么成功就会离你不远。

二、学习能力

任何一份工作,如果想要进步都是需要不断充电学习的,Java开发的岗位也不例外。科技的发展会带动各种新型技术的发展,学习Java就要及时关注这些新技术并且转化为自己的技能,因此不断接受新事物、不断学习提升自己也非常重要,这需要保持非常高的信息敏感度。

三、表达能力

学习Java,还需要良好的表达能力,这种能力主要体现在具体的面试中。当你回答面试官提出的相关问题时,逻辑清晰,不仅能做出相应的回答,而且能够理论联系实际,提出自己独特的见解,就会给面试官留下良好的第一印象,也会增加成功面试的几率。

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

java中代表什么意思是什么意思,java是什么意思 爱情保卫战涂磊打人(爱情保卫战涂磊说)