小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- ...
随机推荐
- ios7内购、Game Center 实现 in-App Purchases & Game Center
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=514 昨天使用ios7SDK b ...
- Java在linux下调用C/C++生成的so文件
1.CplusUtil.java是java web工程中的一个工具类内容如下:CplusUtil.java package cn.undoner.utils; /** * Created by ${& ...
- [Android游戏开发学习笔记]View和SurfaceView
本文为阅读http://blog.csdn.net/xiaominghimi/article/details/6089594的笔记. 在Android游戏中充当主要角色的,除了控制类就是显示类.而在A ...
- 学习笔记-JS公开课一
JS公开课笔记 没特别说明就是和Java语言一样. JS变量:弱类型语言 1.在JS中,true表示1,false表示0.和Java不一样. 2. var y: 提示undefined: 3.如果al ...
- 牛腩新闻发布系统--学习Web的小技巧汇总
2014年11月10日,是个难忘的日子,这一天,小编的BS学习开始了,BS的开头,从牛腩新闻发布系统开始,之前学习的内容都是CS方面的知识,软考过后,开始学习BS,接触BS有几天的时间了,跟着牛腩老师 ...
- 关于Class文件
什么是Class文件 Java人对class文件肯定很熟悉了,它是Java源码编译后的产物.JVM运行时负责加载class文件,并根据class定义的执行逻辑运行.java为了将硬件底层的差异屏蔽掉, ...
- jsoup详解
json相信大家都用的多,jsonp我就一直没有机会用到,但也经常看到,只知道是"用来跨域的",一直不知道具体是个什么东西.今天总算搞明白了.下面一步步来搞清楚jsonp是个什么玩 ...
- 在ROS(indigo)中读取手机GPS用于机器人定位~GPS2BT在ubuntu和window系统下的使用方法~
在ROS(indigo)中读取手机GPS用于机器人定位~GPS2BT在ubuntu和window系统下的使用方法~ 不需要额外购买GPS设备. 将手机GPS数据通过蓝牙传输给计算机使用,当然通过类似方 ...
- 推荐一本不错的书《Sencha Ext JS 5 Bootcamp in a Book》
原文:https://www.createspace.com/5425618 看了一下该书目录,感觉不错,Ext JS 5的重点内容都提及了,确实是一本学习Ext JS 5的好书,唯一遗憾的地方就是太 ...
- STL:deque用法详解
deque函数: deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素.但它又与vector不同,deque支持高效插入和 ...