小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- ...
随机推荐
- Android实现登录小demo
安卓,在小编实习之前的那段岁月里面,小编都没有玩儿过,如果说玩儿过,那就是安卓手机了,咳咳,敲登录的时候有种特别久违的熟悉,这种熟悉的感觉就和当时敲机房收费系统一样,那叫一个艰难啊,不过小编相信,在小 ...
- 编译GDAL使用最新的HDF库配置文件
HDF库最新版本中的动态库以及目录结构都发生了变化,导致按照之前的博客进行编译GDAL时,会出问题.使用HDF4版本为HDF4-4.2.10,HDF5的版本为HDF5-1.8.12.两个库的目录结构如 ...
- Mpg123源代码详解
Mpg123与libmad一样,支持mpeg1,2,2.5音频解码.目前来看mpg123比libmad支持了网络播放功能.而且libmad基本上开源社区在2005年左右,基本停止更新,mpg123至今 ...
- 如何在Cocos2D游戏中实现A*寻路算法(三)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- java同步synchronized
java同步synchronized volatile仅仅用来保证该变量对所有线程的可见性,但不保证原子性. 看下面的这段代码: /** * * @author InJavaWeTrust * */ ...
- HTML5 预加载
原文地址: HTML5 Link Prefetching 原文日期: 2010年07月07日 翻译日期: 2013年08月13日 浏览器厂商和开发者之间共同努力的一个方向就是让网站更快.现在已有很多广 ...
- 开始ITGEGE教育社区的视频录制----嵌入式基础知识讲解
从8月份开始,陆陆续续要对我的第一份兼职工作ITGEGE讲师做教学视频录制了,本人水平有限,我只讲一些开发在工作中的应用,其它细节的东西不做深究,毕竟本人工作经验和精力也有限,白天要上班,特别是最近又 ...
- tomcat的realm域
Realm域,其实可以看成是一个包含了用户及密码的数据库,而且每个用户还会包含了若干角色.也就是包含了用户名.密码.角色三个列的数据记录集合,如下图,最下面椭圆内的包含的整块即可以看成realm域.它 ...
- JAVA应用程序转换为Applet
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41673295 将一个图形的JAVA应用程序转换为能够嵌入在 ...
- 《java入门第一季》之Arrays类
前面介绍了排序问题(见博客http://blog.csdn.net/qq_32059827/article/details/51362390):二分查找问题(见博客http://blog.csdn.n ...