该如何来理解TCP 是一个面向字节流的协议?又该如何理解 面向连接 和面向无连接?

wangle11111 2004-04-08 12:12:16
在网络编程中,我认为最重要的一点就是对协议的理解,那么请问各位高手:我们该如何理解 面向连接的协议和无面向连接的协议呢?他们之间的差异在什么地方呢?又该如何理解 TCP 是一个面向字节流的协议呢?这个与UDP有什么差异呢?

请高手指教!!!
...全文
1411 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
quanquan626 2004-04-12
  • 打赏
  • 举报
回复
a 学习中
fierygnu 2004-04-09
  • 打赏
  • 举报
回复
字节流跟滑动窗口没直接关系,sliding window只是一种流控技术。
消息(message)和消息边界是针对应用层而言的。TCP的拥塞控制机制、MSS等都决定了数据的发送与应用层提交数据到TCP层没有一一对应的关系。用户读之前从哪里知道有多少字节可读呢?
wangle11111 2004-04-09
  • 打赏
  • 举报
回复
“要理解“TCP 是一个面向字节流的协议”还要看看“滑动窗口”协议,它说明了为什么可以以字节流收发消息;”这个理解的角度不错,说TCP是面向字节流的,根本的问题是由于它的发送和接收是字节流,而发送和接收都要使用滑动窗口协议。我有点理解了。

但是,这位高手说的:“TCP 是一个面向字节流的协议”指的是 数据是作为字节流提交给接受方的,没有什么内在的消息和消息边界的赶来。在读取数据的时候用户也不知道一个给定的的读调用将会返回多少字节。其中 消息和消息边界是什么意思?为什么读取数据的时候用户不知道一个给定的读调用将会返回多少字节呢?

beyondsky00 2004-04-08
  • 打赏
  • 举报
回复
呵呵~~up 接点分~
young_wind 2004-04-08
  • 打赏
  • 举报
回复
前面三位已经说的够多的了
弄本TCP/IP详解看看吧

Asiafly 2004-04-08
  • 打赏
  • 举报
回复
“TCP 是一个面向字节流的协议”指的是 数据是作为字节流提交给接受方的,没有什么内在的消息和消息边界的赶来。在读取数据的时候用户也不知道一个给定的的读调用将会返回多少字节。
面向无连接,是指每一个数据包和另外的数据包都是独立地处理,而面向连接的协议,状态信息是由协议负责维护与实现的。
无连接的每个数据包通常称为 数据报(Datagram),而面向连接的是字节流。
fierygnu 2004-04-08
  • 打赏
  • 举报
回复
面向连接有建立连接、发送、断开连接的过程,数据报的到达是有序的。对数据链路层,属于一个连接的报文经过的网络传递路径是一样的。TCP建立在IP的基础上,逻辑上是面向连接的,但其报文由IP承载,是无连接的,即没有建立和端口连接的过程,各个报文在每个路由节点独立路由、转发,它们的到达顺序是没有保证的。
面向连接的好处是一旦连接建立,每个报文的转发都很快,而且QoS也容易保证,但容易出现单点故障。无连接的好处是没有建立连接的开销,对小数据量传输效率高,且因为每个报文独立路由,一个路由器出现故障不影响通信,但QoS很难保证。
所谓面向字节流就是“字节就是字节”,也就是说对TCP协议而言,字节没有特别含义,一律平等。所有字节的含义只有应用知道,所以TCP里也就没有message边界,收发双方的发送和接收次数也不一定相同。
nanjue98 2004-04-08
  • 打赏
  • 举报
回复
要理解“TCP 是一个面向字节流的协议”还要看看“滑动窗口”协议,它说明了为什么可以以字节流收发消息;
面向连接:是指TCP协议,他对接收的到和发送的数据都要有一个请求或者应答,只有收到了请求或者应答以后才能继续发送或者接收,还有就是协议会维护源地址和目的地址直到协议要求断开连接,这就决定了TCP不能进行广播和多播
面向无连接:是指UDP协议,在协议进行发送或者接收的时候都没有向对方发出请求或者应答,而是直接发送,它并不关心数据是否到达,另外协议并不会维护唯一的目的地址,它可以有目的地址通配,这就决定了UDP能够运用于广播和多播

4,358

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧