计算机网络,请问字节流和报文流的区别是什么?

 我来答
正大百年
2009-03-12 · TA获得超过749个赞
知道小有建树答主
回答量:326
采纳率:0%
帮助的人:367万
展开全部
字节流是由字节组成的,
字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的

字符流和字节流都是什么
流就是stream. 一个连续的字节队列。

流是程序输入或输出的一个连续的字节序列,设备(例如鼠标,键盘,磁盘,屏幕和打印机)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现---不一定是物理磁盘文件,还可以是对应与某个输入/输出源的逻辑文件

流(streams)在I/O系统中是一种I/O机制和功能,或者称为streams子系统。它本身并不是一个物理设备的概念。
引入流的目的:
传统的字符设备驱动程序框架有许多缺点,这表现在:
。内核与字符设备驱动程序间接口的抽象层次太高
。内核没有为字符设备提供可靠的缓冲区分配和管理功能
。许多系统对字符设备的界面是把数据看成是FIFO(先进先出)的字节流,因此没有识别消息边界,区分普通设备和控制信息,以及判定不同消息优先级的能力,也没有字节流流量控制
。在网络数据传输设备中这些问题更突出。网络中数据传输是基于消息或数据分组的。
流的概念:
用通讯中的术语来说,流是全双工的处理过程,它是内核中驱动程序和用户进程之间的数据传输通道。
从流的构造上来说,它由一个流头,一个流驱动程序尾,以及其间的零个或若干个可选模块构成 。流头是一个用户级接口,它允许用户应用程序通过系统调用接口来访问流。驱动程序尾与底层设备通信。在流的中间的模块是处理数据的。

字节流与字符流主要的区别是他们的的处理对象

字节流是由字节组成的,字符流是由字符组成的. Java里字符由两个字节组成.

字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化。在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public String(byte bytes[], String charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统默认的lang

流式传输主要指将整个音频和视频及三维媒体等多媒体文件经过特定的压缩方式解析成一个个压缩包,由视频服务器向用户计算机顺序或实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备对压缩的A/V、3D等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。

报文是网络中交换与传输的数据单元。报文包含了将要发送的完整的数据信息,其长短很不一致。(可分为自由报文和数字报文)
报文也是网络传输的单位,传输过程中会不断的封装成分组、包、帧来传输,封装的方式就是添加一些信息段,那些就是报文头
以一定格式组织起来的数据.
比如里面有报文类型, 报文版本, 报文长度, 报文实体等等信息.
完全与系统定义, 或自定义的数据结构同义.
来几个 TCP/IP 头结构感受一下:
typedef struct _iphdr //定义IP首部
{
unsigned char h_lenver; //4位首部长度+4位IP版本号
unsigned char tos; //8位服务类型TOS
unsigned short total_len; //16位总长度(字节)
unsigned short ident; //16位标识
unsigned short frag_and_flags; //3位标志位
unsigned char ttl; //8位生存时间 TTL
unsigned char proto; //8位协议 (TCP, UDP 或其他)
unsigned short checksum; //16位IP首部校验和
unsigned int sourceIP; //32位源IP地址
unsigned int destIP; //32位目的IP地址
}IP_HEADER;
typedef struct psd_hdr //定义TCP伪首部
{
unsigned long saddr; //源地址
unsigned long daddr; //目的地址
char mbz;
char ptcl; //协议类型
unsigned short tcpl; //TCP长度
}PSD_HEADER;
typedef struct _tcphdr //定义TCP首部
{
USHORT th_sport; //16位源端口
USHORT th_dport; //16位目的端口
unsigned int th_seq; //32位序列号
unsigned int th_ack; //32位确认号
unsigned char th_lenres; //4位首部长度/6位保留字
unsigned char th_flag; //6位标志位
USHORT th_win; //16位窗口大小
USHORT th_sum; //16位校验和
USHORT th_urp; //16位紧急数据偏移量
}TCP_HEADER;
// 这里只是数据头, 但头最能让你看清报文是啥东东
// IP_HEADER::total_len 指明了实体数据(也就是真正的消息内容)长度.
// 其他以此类推
高骏(北京)科技有限公司
2020-04-29 广告
公网传输编解码建议选择高骏(北京)科技有限公司,价格合理,品质高服务好。高骏(北京)科技有限公司简称高骏科技。Cogent(高骏科技)创立于 2011年,始终致力于核心技术和创新性产品的自主研发,目前已成为国际知名的无线视音频传输与通信产品... 点击进入详情页
本回答由高骏(北京)科技有限公司提供
被神虐过了
推荐于2018-03-10 · TA获得超过442个赞
知道小有建树答主
回答量:739
采纳率:0%
帮助的人:0
展开全部
全是扯淡
一句话可搞定此题
字节就是散乱的数据 报文就是添加了标记,封装后的数据
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caiqiupeng
2009-03-12 · TA获得超过5694个赞
知道大有可为答主
回答量:2979
采纳率:33%
帮助的人:835万
展开全部
书本的定义就不知道,
但网络的OSI定义的7层里,最底层的物理层传输的是比特流(bit)、倒数第2数据链路层处理的是以帧(frame)为单位的,再往上就是网络层处理的单位是报文(message),再往上是传输层,还是使用报文,传输层是上三层逻辑层与下三层物理层的一个中间层。
每一层都会把前一层把数据处理打包一次,例如物理层传到数据链路层,数据链路层就会把比特处理打包成帧,网络层就会把帧处理打包成报文。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dd18626
2009-03-12
知道答主
回答量:44
采纳率:0%
帮助的人:0
展开全部
简单的说一般TCP/IP的应用层或者OSI的会话、表示、应用层把数据称为数据或者信息,到了传输层把数据称为报文,到了最底层就是比特流了也就是字节流
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式