当前位置:  技术问答>linux和unix

什么是报文?如何理解

    来源: 互联网  发布时间:2016-11-06

    本文导语:  摘 一段书里的: 下面的规则描述了SLIP协议宣言的帧格式: 11) IP数据报以一个称作E N D(0 x c 0)的特殊字符结束。同时,为了防止数据报到来之前 的线路噪声被当成数据报内容,大多数实现在数据报的开始处也...

摘 一段书里的:
下面的规则描述了SLIP协议宣言的帧格式:
11) IP数据报以一个称作E N D(0 x c 0)的特殊字符结束。同时,为了防止数据报到来之前
的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个E N D字符(如果有线
路噪声,那么E N D字符将结束这份错误的报文。这样当前的报文得以正确地传输,而前一个
错误报文交给上层后,会发现其内容毫无意义而被丢弃)。
2) 如果I P报文中某个字符为E N D,那么就要连续传输两个字节0 x d b和0 x d c来取代它。
0 x d b这个特殊字符被称作S L I P的E S C字符,但是它的值与A S C I I码的E S C字符(0 x 1 b)不同。
3) 如果I P报文中某个字符为S L I P的E S C字符,那么就要连续传输两个字节0 x d b和0 x d d来
取代它。

刚学TCP/IP,有些名词我不理解
什么是报文?请说出你们自己的理解,不要复制网上的文章。
什么是数据报?(IP数据报)
我知道数据所是一个传输单元,我的理解是,IP传输过程中,是不是有很多信息,然后会分成很多数据报,一个一个的传输,就像运砖头,一块一块的运输,到达目的地再把这些数据报拼成完整的源信息。
然后是线路噪声,这是什么意思,是如何影响数据报的?

|
传输层的协议有三种,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这样的标识,但是当线路噪声出现和这些区别信息同样的串的时候,这时候就会干扰正常数据的接收,所以必须要有一套机制来区别这不是期望的数据报标识,因此需要对这些线路噪声进行处理。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 报文是不是非要有报文头,报文其他信息才算是报文呢??
  • 请教,linux内核协议栈中,从内核往驱动发送的报文(注意是下行,不是上行),如何从sk_buff判断是组播数据报文还是组播协议报文????
  • 紧急求救各位了:linux下有没有有设置报文最小长度的命令(好像只有设置报文最大长度MTU,通过ifconfig)?
  • 求救:unixware和win2000之间传送报文,报文内的每一个回车后面都被多加了一个^M,(ctrl+M)
  • 发送带vlan的ethernet报文问题
  • 请教ICMP-重定向报文产生路由的生存期?
  • UDP发广播报文的问题?
  • IP报文头的重新封装
  • 关于用Libpcap过滤报文
  • 要修改ip报文的TOS字段请问怎么做呀?
  • 急急急,libpcap库是从内核中的哪里接收数据报文的?
  • http报文里的格式问题
  • 网关可以通过ICMP报文来控制客户机向外界的udp请求吗?
  • 请问哪里有报文截取方法的资料。
  • 求教: 网络环境下,收到报文后socke的server端如何被唤醒?
  • 用C语言如何组装和解析XML报文???
  • Unix系统 用C++怎么写接收SNMP Trap报文的程序?哪位兄弟手上有现成的代码呀?谢谢了
  • 二进制报文格式 FlatMessages
  • linux下硬件或操作系统有什么方法屏蔽特定MAC地址发过来的报文?
  • 那位知道DNS报文格式?谢谢了


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3