通信协议(yi)类似于交通规划(hua),就是在规划路上的司机怎(zen)么走。
假(jia)如你在某宝上买了一个东西,商家就(jiu)会把你买的东西发一个快递给你,那(na)么要如何通过网络投递到你的手上?
1. 要有交通道(dao)路或者说交通路线。
2. 要有你家的通信地址。
3. 要有运输工具(货车、飞机) 。
4. 要有快递员 。
这四(si)点满足了不就可以通信了,而这四点不就是(shi)tcp/ip模型(xing)吗?
1. 那么交(jiao)通道路是不是会发生堵车(congestion),是不是就(jiu)会有一些办法去减少堵车:
1). 避开高峰期(CSMA/CD),对于996或(huo)者通宵加班的打工人(ren)来说是不是完全避开。
CSMA/CD 即载波侦听多路访(fang)问/冲突检测。
2). 限行(Token),比如深圳在工作(zuo)日7时至9时、17时30分(fen)至19时30分限(xian)行。
Token通俗点可以叫暗号(hao),在一些数据传输之前,要先进行(xing)暗号的核对,不同的暗号被授权不同的(de)数据操作。
3). 设置专用车道(VPN),比如深圳上下班期间就有公交专(zhuan)用车道,其他车辆不能行驶。
VPN是一种虚拟专(zhuan)用网络,在公用网络上建(jian)立专用网络,比如你去外地出差,然后你可以远程访问公司内网(wang)的服务资源。
4). 上下班乘(cheng)坐公交或者地铁(CDMA),使(shi)更多的人既可以正常上下班,又能减少(shao)车辆出行。
CDMA一般指码分多址,码分(fen)多址是指以不同的伪随(sui)机码来区别基站,各基(ji)站使用同一频率并(bing)在同一时间进行信息传输(shu)。
5). 工厂里面工人比较多(duo),下班时间工厂附(fu)近交通就容易瘫痪(huan),那么就拆迁(Proxy),把厂房和工人都赶到郊区去,在郊区建一个工(gong)厂。
Proxy指的是代理(li)软件或代理服务器,也可以认为是一种(zhong)网络访问方式。
6). 将(jiang)道路扩宽(Frame Relay、ATM)
Frame Relay是(shi)一种有效的数据传输技术(shu),它可以在一对一(yi)或者一对多的应用中(zhong)快速而低廉的传输数(shu)字信息。
ATM为一种交换技术,在发送数据时,先将数字数据切割成多个固(gu)定长度的数据包发送。
2. 通信地址就会比较麻烦了,遇(yu)到有的小区保安不让进,而且有些地(di)方会走错路,甚至有有的收件人重(zhong)名。
1). 小区保安不让进(防火(huo)墙)怎么办?
a. 给保安发支烟(yan),叫保安要称呼靓仔或者帅哥,不要叫(jiao)人叼毛,说不定保(bao)安听着舒服就让你进(jin)去了(ACL)。
ACL指访问控制列表,是一种基于(yu)包过滤的访问控制技术,它可以根据设定的条件对(dui)接口上的数据包进行过滤,允许其通过(guo)或丢弃。
b. 让保(bao)安广播通知或贴出告示快递到了保安(an)室(ARP),让大(da)家来保安室认领(ling)自己的快递,但是容易(yi)发生被别人冒充认(ren)领(ARP欺骗)。
ARP是地址解析协议,主机(ji)发送信息时将包含目标IP地址的(de)ARP请求广播到(dao)局域网络上的所有主机,并接收返回(hui)消息,以此确定目标的物理地(di)址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存(cun)中并保留一定时(shi)间,下次请求时直接查询(xun)ARP缓存以节约资源。
ARP欺骗:主机收(shou)到应答报文时不会检测该报文(wen)的真实性,由此攻击者就会向(xiang)主机发送伪ARP应答报文,这(zhe)就构成了一个ARP欺骗。也就是说有(you)人来冒领快递保安并不会检查(cha)是不是本人来领的,冒(mao)领者就会通过这个方式来冒领(ling),造成真实快递主人的快递被别(bie)人拿走了。
2). 有些地方会走错路(lu)怎么办?
a. 小城市(RIP)要学会(hui)抄近道(OSPF),小地方(fang)交通比较顺畅。
RIP是(shi)一种分布式的基于(yu)距离向量的路由选择协议,主(zhu)要适用于小规模的网络(luo)环境。
OSPF(Open Shortest Path First开放式最短路径优(you)先)是一个内部网关协议。
b. 大城市(比如深圳)要(yao)学会使用地图导航(BGP),因为各种立交桥和(he)高架桥让你找不着北。
BGP是自治系(xi)统间的路由协议,BGP交换的网络可达性信息(xi)提供了足够的信(xin)息来检测路由回路并根据性能(neng)优先和策略约束对路由进行(xing)决策。
3). 收件人重(zhong)名怎么办?
a. 缩小区域确认收件人,将区域(yu)区分到某个街道(subnet mask),确认收件人在哪一(yi)个区域,重名收件人在别(bie)的区域就不管。
Subnet Mask指子网(wang)掩码,它用来指(zhi)明一个IP地址的哪些位(wei)标识的是主机所在的子网,以及(ji)哪些位标识的是主机的位掩码。
b. 给每一位住户门口贴好门(men)牌号(内网IP),每个(ge)人收件人即使重名但是门牌号(hao)是不会重名的。
内(nei)网IP就是局域网网络地址。
3. 运输的货车可能(neng)在路上会发生交通事故,货车运(yun)输时间决定快递几天能够送到收件(jian)人手里。
1). 货车(che)发生交通事故怎么办?
a. 货车发生交通事故,导致(zhi)快递破损,如果快递(di)公司赔付商家,但是商家还(hai)是得重发(TCP),因为收件人并没有收到快递(ACK),只要收件人没有收(shou)到快递,商家就得一直重(zhong)新发货(SYN)。
TCP是一种面向连接(jie)的、可靠的通信(xin)服务,需要经历三次握手(shou)才能建立连接。
ACK是确认(ren)字符,需要收件(jian)人收到快递并且在某宝(bao)上确认收货。
SYN是同步(bu)序列编号,也就是商(shang)家发货的信息。
2). 收件人几天可以收(shou)到快递?
a. 货车(che)运输速度决定快递什么时候可以送(song)达,如果路比较宽阔,红路(lu)灯比较少,不堵车,车速就可以越快,收件人就可以更早收到快递,这(zhe)就是香农定理。
4. 到(dao)了快递这里又会发生一些情况,快递(di)员送快递给收件人,收(shou)件人发现快递包裹已经(jing)破损。
1). 收件(jian)人发现快递包裹已经(jing)破损,收件人在(zai)快递员派送快递给自己的时候当(dang)场验货拒收(CRC校验)。
整个(ge)通信协议利用一个快递的从商家(jia)手里发出到收件人收件的(de)过程进行了非常通俗易懂的描述,应该(gai)是比较好理解了。
觉得文(wen)章不错,收藏的(de)同时,麻烦点个(ge)赞~~~~~
关注微信公众(zhong)号『混说Linux』
你也可以继续阅读 点击 以下文(wen)章,下面是我推荐给大家的几篇(pian)文章:
1.《彻底明(ming)白Linux硬链接和软链接》
2.《浅析Makefile、make、cmake》
3.《常见硬件(jian)通信(SPI、I2C、CAN、USB、UART)协议介绍》
4.《c++中引用作为返(fan)回值》