计算机网络 小记

        为了便于处理计算机传输文件时识别目的主机、数据通信的通路是否激活、网络状况、目的主机是否准备好接收和差错意外是否可以解决等问题,计算机网络体系进行了分层处理。

1.ISO/OSI参考模型

        OSI参考模型是国际标准化组织ISO提出了一个试图使各种计算机可以在世界范围内互联成网的标准框架,是法定标准的参考模型。

        分为:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

其中,下三层(物理层,数据链路层,网络层)属于通信子网,用于数据通信;上三层(会话层,表示层,应用层)属于资源子网,用于数据处理;传输层属于是中间的桥梁,用于控制传输,传输层的端口号只具有本地意义,长度为16bit(65536个端口),其中0~1023是熟知端口号(给TCP/IP最重要的应用程序),1024~49151位登记端口号(为没有熟知端口号的应用程序使用),49152~65535给客户端使用,仅在客户进程运行时才动态选择。

2.TCP/IP参考模型

        TCP/IP参考模型虽然不是规定的标准,但是由于OSI参考模型的功能划定不合理,因此使用了更为合理的更符合市场使用的TCP/IP模型,成为了事实标准。

        分为:链路层,网络层,传输层,应用层

3.TCP协议和UDP协议

        TCP协议和UDP协议都是用于传输数据。

 TCP协议:面向连接的传输控制协议

        是面向连接(虚连接)的传输层协议,传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务,每一条TCP连接都是点对点的。TCP提供可靠交付的服务,可靠有序不丢不重,其可靠性传输通过确认应答机制和超市重传机制来实现。

由于TCP要提 供可靠的面向连接的传输服务, 因此不可避免增加了许多开销: 确认、流量控制、计时器、拥塞控制及连接管理等。

        特点:可靠,面向连接,时延大,适用于大文件。

UDP协议:无连接的用户数据报协议

        在IP数据报结构上增加少部分功能,是面向报文的,适合一次性传输少量数据的网络应用。传送数据之前不需要建立连接, 收到UDP报文后也不需要给出任何确认,即不保证可靠交付。

        特点:不可靠,无连接,时延小,适用于小文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
Protobuf是一种高效的序列化协议,可以用于数据交换和数据存储。它的主要优势是大小小,速度快,可扩展性强。下面是使用Protobuf的一些小记: 1. 定义消息格式 首先,需要定义消息格式,以便Protobuf可以将数据序列化和反序列化。消息格式定义在.proto文件中,使用protobuf语言编写。例如,下面是一个简单的消息格式定义: ``` syntax = "proto3"; message Person { string name = 1; int32 age = 2; } ``` 这个消息格式定义了一个名为Person的消息,包含两个字段:name和age。 2. 生成代码 一旦消息格式定义好,就可以使用Protobuf编译器生成代码。编译器将根据消息格式定义生成相应的代码,包括消息类、序列化和反序列化方法等。可以使用以下命令生成代码: ``` protoc --java_out=. message.proto ``` 这将生成一个名为message.pb.java的Java类,该类包含Person消息的定义以及相关方法。 3. 序列化和反序列化 一旦生成了代码,就可以使用Protobuf序列化和反序列化数据。例如,下面是一个示例代码,将一个Person对象序列化为字节数组,并将其反序列化为另一个Person对象: ``` Person person = Person.newBuilder() .setName("Alice") .setAge(25) .build(); byte[] bytes = person.toByteArray(); Person deserializedPerson = Person.parseFrom(bytes); ``` 这个示例代码创建了一个Person对象,将其序列化为字节数组,然后将其反序列化为另一个Person对象。在这个过程中,Protobuf使用生成的代码执行序列化和反序列化操作。 以上是使用Protobuf的一些基本步骤和注意事项,希望对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值