关于java中的 报文(个人的理解,有错误希望指导)

版权声明:@徐小冠 https://blog.csdn.net/weixin_42114097/article/details/82822922

报文使用的位置很多:在常用的短信Api接口,提交,可以通过报文查看运行的时间和运行转态.

   我的理解是  报文=数据块. 

想要仔细的了解 报文,先要了解一下:传输层:

    传输层的协议有三种,TCP,UDP和SCTP

TCP是针对于字节流的,也就是说,在它眼里,看到的只是0101这样的字节流,而完全没有分界的概念,比如说,

上层传来的一个消息,到这一层可能会被分割到两个TCP的包里面去,但是TCP是不管这些的,它只管发送流里面

包含的数据。为了保证每个包在流里面的顺序,会有TSN这样的字段来表明这是第几个包。

而UDP的处理方式是,将应用层的数据封装到自己的一个包里面,加上包头,包头里有源IP,目地IP,数据报长

度,检验码这些信息,形成一个独立的数据报,然后就发送出去了。

而SCTP,相当于集合了两种协议的优点而成的。具体的去看规范吧,RFC 4960

IP层的数据包是指IP接收到上层传来的数据以后,加上IP的头,这样就形成了IP的数据包。而有可能有这样的

情形:上层传来的数据对IP层来说太大了,于是在IP这层就会有分片机制,将上层的大数据分割成两或者多部

分,然后分别加上IP的头,形成两个包,然后发出去。你说的那个搬砖头的例子有点类似,但是这样说似乎更

恰当:上层如果传过来的是一堆砖块,那IP就负责一块一块的搬到对端;如果上层扔过来的是个大石块,那IP

就负责把这个大石块砸碎了,然后搬到对端,到对端以后,再重新用混凝土粘起来,重新形成大石块。关于分

片和重组,可以看RFC 791, IPv4的协议

线路噪声是这样的。上层的数据在最最底层,也就是物理层传输上,通常都是通过脉冲产生的信号,信号在物

理链路上传输的过程中,可能受到外部的影响,导致消息内部的数据意外的变化掉,比如静电的干扰。其实我

的感觉,你可以把线路噪声理解成对你的传输正确率有影响的一类因素就行了.

简约版是可以这样想的:

  1、报文就是0和1组成的串(计算机看到的东西其实就是0和1组成的串)
2、数据报也是0和1组成的串,但IP数据报在传输的时候还要封装必要的网络层包头才能在网络上传输
3、网络上的传输是以帧为具体单位,当数IP据报比较大的数据时候,会采用分包的形式进行传输,表现在网络上就是多个帧,在接收的时候会合并同一个IP数据报的不同帧还原为一个IP数据报
4、线路噪声就是干扰网络上正常传输的其他01信息,通常为了标识一个正常的数据报,必须有一些起始标识和类型等信息来区别每一个数据报,表现为一个数据包的描述,如上面END这样的标识,但是当线路噪声出现和这些区别信息同样的串的时候,这时候就会干扰正常数据的接收,所以必须要有一套机制来区别这不是期望的数据报标识,因此需要对这些线路噪声进行处理。

猜你喜欢

转载自blog.csdn.net/weixin_42114097/article/details/82822922