小dai浅谈通信网络(一)——引子
说起通信网络,首先来看一个场景:
场景模式:
小明和小刚在闹市碰面。
小明对小刚大声喊道:“小刚,你好啊!”
小刚摇手答到:“你好,小明!”
就这么几句简单的话语里面,从通信角度能看到多少信息勒?
1.两个人: 小刚和小明
2.代表两个人的称呼“小明”“小刚”
3.由于是当面诉说,采用的传播介质是空气;
4.传播的信号是声波
5发生装置是声带、舌头、嘴巴
6.收听装置是耳朵
7.他们说的是中文,比如小明的发声“小刚”,小刚知道是在称呼自己。并且小明招呼完了,理应该小刚打招呼
8.发生了两次通话:
一次是小明对小刚;
另外一次是小刚对小刚
9.在此过程中,小明说话的期间,小刚是可以随时说话的
10.从小刚说话的顺序,不是先称呼,而是先说“你好”,明显有听到小明的招呼,并且因此也告知了小明,我有听到你的招呼。当然这个告知对方我有听到你的招呼,往往可以从肢体语言获知。
11.从小刚明显听到了小明的话来说,并且还在闹市之中,说明小刚的听力是完全没问题
12.由于当时在闹市,为了让对方能够准确听到自己的话,明显小明和小刚都放大了说话的分贝。
以上称述,如有疏忽,欢迎指正,后续再添加上。
对应在通信网络中是什么呢?
1.网络设备,比如路由器;
2.网络识别码,比如以太网的MAC地址
3.光纤、电缆或者空气;
4.一般是采用电磁波
5.发生装置,比如光模块、网卡等;
6.接收装置,一般同5;
7.采用的网络协议族,比如2G的GSM、3G的CDMA系列、WIFI的802..11系列什么的。
里面会包括调制/编码技术,决定能折腾出来多少信号代号,而每个信号代号代表什么意思;
也包括CSMA/CD、CSMA/CA等,指定双方通信规则,就像说话,这不能谁都讲话吧,这不上课老师,总说你有要说的,yes,要举手哦
8.端到端传输,就比如路由器和路由器两两之间直连的通信,或者你的手机和基站这种。
9.当前一般都是采用的异步/双工模式,也就是说端到端的传输可以随时发声,并且任何哪一端都可以随时发声。其他还有单工模式和半双工模式,同步传输模式,此处不再累述。
10/11/12点都属于狭义的QOS(服务质量)范畴,每种网络协议都有自己的QOS机制,由于我最熟悉TCP/IP协议族,在此通过TCP协议做个一一对应
10.TCP中,通过seq序列号来表示,我发送了多少数据;
然后对端再通过ack=seq(准确接受到的最后序列号)+1来告知对端自己准确接收到了哪些数据
11.TCP中,使用WINDOW机制来设定,一次连续传输的最大数据量大小。接收方会告知对方,我本地能接收到的数据块最大是多少,就是使用window这个参数来告知,而能接收数据块的大小,则由向操作系统申请的socket大小决定。发送方收到window后,会连续的一次性发送数个数据包,直到整个发送的有效数据的大小=或者小于window的大小。而何时下次再发送,请听下一文分解。
12.TCP中,使用拥塞窗口cwnd/慢启动等机制,可以控制发送方发送速率,有效适应当前网络环境情况。又如在WLAN里面,会根据网络情况,调整不同的键控技术等,来调整速率。
小dai浅谈通信网络(一)——引子的更多相关文章
- 浅谈通信网络(三)——TCP/IP协议
简介 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.In ...
- 浅谈C#网络编程(一)
阅读目录: 基础 Socket编程 多线程并发 阻塞式同步IO 基础 在现今软件开发中,网络编程是非常重要的一部分,本文简要介绍下网络编程的概念和实践. Socket是一种网络编程接口,它是对传输层T ...
- 浅谈iOS网络编程之一入门
计算机网络,基本上可以抽象是端的通信.实际在通讯中会用到不同的设备,不同的硬件中,为了能友好的传输信息,那么建立一套规范就十分必要了.先来了解一些基本概念 了解网络中传输的都是二进制数据流. 2.了 ...
- [Kubernetes]浅谈容器网络
Veth Pair 这部分内容主要介绍一个设备: Veth Pair . 作为一个容器,它可以声明直接使用宿主机的网络栈,即:不开启 Network Namespace .在这种情况下,这个容器启动后 ...
- 浅谈C#网络编程(二)
阅读目录: 异步IO 非阻塞式同步IO 基于回调的异步IO并发 异步IO 上篇提到用多线程处理多个阻塞同步IO而实现并发服务端,这种模式在连接数量比较小的时候非常适合,一旦连接过多,性能会急速下降. ...
- 前后端差异更小了——浅谈ES(ECMAScript)6
2015年6月,ES6正式发布.至今一年多的时间内,各个浏览器也对支持ES6做出了很大的改善,所以同学们无需顾忌你写代码的浏览器不认识~ 这么久的东西一定早有大神剖析过,今天我们以一个后端菜鸟的视角重 ...
- 小E浅谈丨区块链治理真的是一个设计问题吗?
在2018年6月28日Zcon0论坛上,“区块链治理”这个话题掀起了大神们对未来区块链治理和区块链发展的一系列的畅想. (从左至右,分别为:Valkenburgh,Zooko,Jill, Vitali ...
- Android项目实战(四十四):浅谈Postman (网络请求调试插件)
前言: Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件. 在项目开发中,可以依赖此工具模拟API测试. 使用详解: 各种情况Api的模拟请求的Postman使用方 ...
- 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理
[微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...
随机推荐
- 安卓自定义日期控件(仿QQ,IOS7)续
本篇是在原来的基础上修改了界面效果,使其更加接近ios7,qq等日期选择控件,看图: 源码地址:http://download.csdn.net/detail/baiyuliang2013/87601 ...
- 运用 三种 原生 谷歌 阿里 解析和生成json
三种类生成JSON数据方法 JSON(原生): 第一种 JSONStringer和JSONObject区别在于添加对象时是按顺序添加的比如说 JSONStringer 添加 a:1 b:2 c:3那么 ...
- [Android游戏开发学习笔记]View和SurfaceView
本文为阅读http://blog.csdn.net/xiaominghimi/article/details/6089594的笔记. 在Android游戏中充当主要角色的,除了控制类就是显示类.而在A ...
- Java-IO之FileReader和FileWriter
FileReader是用于读取字符流的类,它继承于InputStreamReader,要读取原始字节流,考虑使用FileInputStream:FileWriter是用于写入字符流的类,继承于Outp ...
- Cocoa触发方法调用的几种方法
每日更新关注:http://weibo.com/hanjunqiang 新浪微博 1.SEL触发 SEL就是selector的缩写,它表示Cocoa中的方法选择器,不明白?那请仔细了解Objecti ...
- eclipse代码恢复(开发程序代码恢复)
如果误操作,让本地代码丢失了不用怕,Eclipse local history可以恢复. 误删除文件后,直接ctrl+z可以恢复. 拉去代码覆盖了本地,也可以一个一个或者整体进行恢复:http://b ...
- Android初级教程理论知识(第二章布局&读写文件)
常见布局 相对布局 RelativeLayout 组件默认左对齐.顶部对齐 设置组件在指定组件的右边 android:layout_toRightOf="@id/tv1" 设置在指 ...
- Java中Integer和String浅谈
Java中的基本数据类型有八种:int.char.boolean.byte.long.double.float.short.Java作为一种面向对象的编程语言,数据在Java中也是一种对象.我们用基本 ...
- Mybatis源码之Statement处理器PreparedStatementHandler(五)
PreparedStatementHandler就是调用PreparedStatement来执行SQL语句,这样在第一次执行sql语句时会进行预编译,在接下来执行相同的SQL语句时会提高数据库性能 源 ...
- 使用C#+socket实现用移动设备控制的虚拟手柄
近期在和同学玩死神vs火影,以怀念小时候,突然觉得用键盘玩的不够畅快,因此萌生了写一个虚拟手柄的念头. 我的思路是在移动设备(iOS.Android)上实现手柄,在电脑上监听,利用socket建立持久 ...