网络原理(1)

本文探讨了如何在应用层自定义协议,以外卖点餐为例说明请求响应格式,介绍了XML、JSON和Protobuf等常用协议格式。同时,详细解释了UDP协议的特点,包括报文结构、校验和的作用及其实现,以及序列化和反序列化的概念在数据传输中的应用。
摘要由CSDN通过智能技术生成

                                                                           路漫漫其修远兮,吾将上下而求索。

目录

一:应用层

1:如何自定义协议 

1:先有某个需求,某个场景

2:根据需求做出设计

     1:明确请求和响应包含哪些信息

      2:明确请求和响应的格式

3:常用的几种协议格式

a:XML

b:json

c:protobuffer   ​编辑

二:传输层

1:UDP的特点

 2:UDP协议报文格式​编辑

1:对于UDP协议报文格式,主要由两部分组成:

2:UDP协议报头

 3:合法的端口号 

    4:校验和

     a:为什么会在UDP数据报的报头出现校验和

     b:校验和的作用

     c:校验和怎样实现的?


 


一:应用层

1:如何自定义协议 


1:先有某个需求,某个场景

   eg:以点外卖为例,当我们打开外卖软件时,显示商家列表,列表中有很多项,每一项包含商家的很多信息(商家的名称,商家的地址,好评率等信息......)

       在此过程中,需要客户端给服务器发送一个请求,`服务器再接收到请求后,给客户端返回一个响应.

2:根据需求做出设计

     1:明确请求和响应包含哪些信息

        请求:用户身份,用户地址......

        响应:包含商家的若干信息


      2:明确请求和响应的格式

        请求: 1234,80 100\n====>(用户的身份,用户的地址等若干信息)

        响应:魏家凉皮,1.jpg,1km,4.7

                 麻辣烫,2.JPG,4km,4.5\n

                (商家的名称,商家的图片,商家的距离,商家的好评率)

      对于上述约定,请求和响应数据是非常灵活的,只要保证,客户端和服务器遵守同一约定!!!


    *我们不难发现,无论是请求还是响应,都是以特定的二进制字符串进行传输的.

    *以请求为例:我们将用户的ID,用户的地址以逗号隔开,按照这样的方式构造成一个字符串,这个字符串后续可以按照UDP/TCP协议的载荷进行传输信息.将此类信息发送给服务器,即特定的二进制字符串.

    *以响应为例:商家的名称,商家的图片,商家距离用户的地址,商家的好评率,这些有关商家的信息都是以逗号隔开,按照这样的格式,作为UDP/TCP载荷传输信息.将上面的信息以特定的二进制字符串通过服务器传递给字符串.


    网络上,传输的数据都是以二进制的字符串进行传输的.

    


   JAVA写代码,都是各种对象,如之前所说,网络上,都是以二进制字符串进行传输的,那么如何传输,下面我们来了解两种新的概念:

   序列化:将JAVA中的各种对象在发送数据的时候转化成二进制字符串.

   反序列化:在接收数据的时候,将二进制字符串转化成Java中的各种对象

3:常用的几种协议格式

a:XML

b:json

c:protobuffer
   

二:传输层

1:UDP的特点

 特点:无连接,不可靠传输,面向数据报传输,全双工

 2:UDP协议报文格式

1:对于UDP协议报文格式,主要由两部分组成:

   UDP协议报头:(源端口,目的端口,16位UDP报文长度,校验和)

   UDP协议载荷:即从应用层传进来的应用层的二进制字符串

2:UDP协议报头

   源端口:发送方的端口号=====占2个字节

   目的端口:接收方的端口号===占2个字节

   16位UDP报文长度:服务器之间传输数据的长度 ==占2个字节

   校验和:检验数据的个数是否一致,和数据的内容是否一致。==占2个字节

 3:合法的端口号 

   由于端口号占2个字节,那么端口号的范围为多少?

    0-65535,在端口号规定中,0可以不用被算做端口号,1-1024被赋予了特定的含义,所以我们在使用的时候,一般不用1-1024这里面的端口号。在1-1024中,我们必须知道的端口号有 http:80 https:443.同时,在前面学习数据库中,数据库默认端口号是3306。我们可以使用1024之后的端口号。

    

    4:校验和

     a:为什么会在UDP数据报的报头出现校验和

         原因:网络传输介质的衰减,电磁干扰; 网络设备:防火墙、路由器等的性能问题等影响,可能会导致数据在传输过程中,导致出现问题,因此,我们需要对从发送方到接收方的通信进行校验。


     b:校验和的作用

         作用:检验数据的个数是否一致,同时检验数据的内容是否正确。


     c:校验和怎样实现的?

          校验和在底部使用了CRC校验算法。

   

------------------------------------------------未完待续-------------------------------------------------------------

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DJ懒羊羊。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值