TCP/IP 卷一 串行线路吞吐量计算的疑惑

2017-04-23 18:01:53 +08:00
 silenceeeee

书上有这么一段:

串行线路吐吐量计算

如果线路速率是 9600 b/s, 而一个字节有 8 bit, 加上一个起始比特和一个停止比特, 那么线路的速率就是 960 B/s (字节 /秒). 
  1. 这里的 960 B/s 是如何计算出来的.
  2. SLIP 帧的起始标识和结束标识不是一个字节吗, 这里怎么怎么说是 "起始比特" 了? (我是从书上前面章节的示意图上和解释得来的这个依据)
2296 次点击
所在节点    问与答
8 条回复
Osk
2017-04-23 18:15:12 +08:00
开始 /结束位一共 2bit (其实这里用 bit 我觉得不太合适) + 1Byte = 10b
9600b/s ÷ 10 = 960b/s

好像这两位在串行通信中用于同步,相当于告诉对方:我开始发送数据了,准备接收吧;我发完了,你处理下吧
具体细节记不清楚了,可能不对哈
billlee
2017-04-23 19:23:28 +08:00
UART 每个字节都需要起始位和停止位。不是 SLIP 的问题。
pagxir
2017-04-23 21:50:06 +08:00
因为没传输时钟信号,所以必须每个字节带停止位 /开始位吧,这个相当于告诉对方同步时间。
silenceeeee
2017-04-23 22:42:10 +08:00
@Osk 为啥书上写的是 SLIP 的帧格式的一头一尾各有一个 END (0xc0) 的特殊字符啊. 两个 END 的中间就是 IP 数据报, 并且每个 END 字符占一个字节
你这里的意思听起来是: 每个字节的前后都加一个位 (开始位 /结束位) ? 或是我哪里理解有误?
pagxir
2017-04-23 23:41:18 +08:00
没毛病呀,帧头帧尾是必须的,而传输字节的起止位也是必须的,这是两个不同的概念。搞通信的估计很清楚。
pagxir
2017-04-23 23:57:32 +08:00
其实 SLIP 通常是用 RS-232 来承载的,而 RS-232 是用 UART 来传输数据, UART 又定义了起止位。
总的来说 SLIP 的帧个是的头尾跟起止位不是一码事,

就如 TCP/IP 网络是分层的:
RS-232 相当于数据链路层,比如以太网。
SLIP 相当于网络层。

所以以太网中定义了报文的源地址 /目标地址 (源目 MAC)
而网络层也定义了报文的源地址 /目标地址 (源目 IP)

其实串口线传输的数据是一个流,必须加入分割符号才能知道那些事 IP 报文。
silenceeeee
2017-04-24 00:03:18 +08:00
@pagxir 然而书上只讲了帧, 没有讲起止位, 然后我就看到了问题描述中的那一段关于速率的计算. 这种书有点不知道怎么看.
谢谢各位了. 如果有关于如何更好的学习这本书的方法推荐就更好了
silenceeeee
2017-04-24 00:04:07 +08:00
@pagxir 我是写后端的, 其实不懂 RS-232 和 UART -_-

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/356813

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX