《互联网设计与演化》阅读笔记
从因特网到交际
沙漏模型
还是第一次看见这样子描述因特网的。
因特网的基本通信模型
两大部分:地址(who+where)+传输协议(what+how+when)
尽力而为 or 补偿
网络将其收到的,要传送的数据尽力传送到目的节点,但不保证数据率、传输延迟、丢包率
“尽力而为”并不是很好,因为有服务总比没有服务好。我们可以舍弃一些获取将就的数据传输业务
路由器的ROLE
实现包的“跳传”
应用不可知:路由等设备不关心我的应用本身是什么,应用遵循着相同的通信协议,网络设备只需要遵从协议收发。 应用不可知的实现方式是:路由器不提供具体应用服务,而是根据包头转发数据包
深度数据包检查:路由器试图窥视数据包里的内容,总而改变他们的行为
跟踪、记忆
关于“状态”
定义:设备基于存储的信息来处于不同的状态,这些信息可以反映过于发生过的事情(和SS中的因果系统/记忆性系统很像)。
对于路由器,如果不记录其转发日志,则被视为无记忆的/无状态的
端节点上的应用支撑:数据包乱传怎么办
因特网协议中运行在基本因特网服务之上的传输服务,试图监测校正错误。——TCP的由来
服务内容:Sender将数据给TCP,TCP将数据有序、准确地送达Receiver一次。TCP软件负责将数据拆分成数据包,对其编号以检测丢失、重排序、重传丢失的数据包,直到其最终送达。
TCP与IP的责任划分
TCP运行在端节点上,而非路由器内。原则上,路由器在转发的时候只能看到IP信息,只有终端节点会查看包中的TCP信息。
“端到端”的观点:因特网的设计原则是尽可能简化网络承担的功能,把那些功能放到终端节点实现。其优势在于不需要修改路由器的情况下,可以根据自己的需求创建新应用挥着新的支撑服务。这种观点也催化了因特网的迅猛发展。
路由转发技术
路由表的构建:不断计算最佳路径。
SDN:使用集中的控制器,为该区域的路由器计算正确的路由信息。(进一步简化了路由器的功能)
因特网的区域
自治系统(AS): 边界网关协议(BGP):
嵌套结构:BGP->AS->端节点
域名系统(DNS)
背景:因特网路由器的地址用户记不住,用起来太麻烦了。
分层命名: - 顶级名字:组织类型(.edu) - 二级名字:各个机构(mit.edu) - ...
DNS通过服务器实现,服务器分层与DNS命名分层一一对应。
例子1:万维网协议
CS架构:Web客户端、Web服务器 Web服务器存储网页,这些页面具有的名字称为URL(统一资源定位器)
依赖的主要协议: 1.HTTP:提供请求Web页面的报文规则(与页面本身的格式没有关系,可以是图片、文字、视频等等) 2.TCP 3.IP
例子2:email
不是每个时间点两个人都同时在线,所以利用服务器储存邮件。 sender->send.server->receiver.server->receiver
因特网发展史
1960s:发明与憧憬
1.分组交换技术提出,但是目的不同。
2.ARPAnet广域分组交换网(DARPA) 将计算机和人连接在一起的应用:人与人的通信 广泛获取信息
(前途一片大好啊)
???
1970s:证明与探索
ARPAnet->SATnet->PRnet 怎么将不同网络连接在一起? TCP、IP标准的提出
1980s:成长与标准制定
ICCB组建(现为IAB):解决如何将因特网的路由方案扩展到万亿级别的规模
IETF成立。 DNS开发:终端节点扩展更加便捷。
NSFnet的开发:淘汰掉了旧日的ARPAnet,运行成本过高。
其他协议套件的竞争:XNS、OSI。(OSI工作在竞争期之后就慢慢消逝了)
异步传输模式(ATM)产生
Email的产生
1990s:商业化&万维网&光纤技术
nSFnet退役,取而代之的是商业网络提供商的网路。存储式音乐网站、亚马逊的崛起。
寻址结构的改进:提出IPv6
网络地址变换(NAT)设备:很多设备接入一个链路,这条链路连接到因特网。然后为这些节点分配本地地址。每个NAT设备会被赋予一个或者少数可全局路由的因特网地址,当数据包离开机群就重写包的地址。
多播概念的提出
2000s:享受宽带的十年
宽带服务:
两种计算机病毒的释放:Melissa、ILOVEYOU
移动智能手机
电子商务
2010s:流媒体视频和社交媒体
网络的实质?
Categories | Express System | Metro Network | Computer Network | Social Network |
---|---|---|---|---|
Hierarchy | Y | N | Y | Y |
Desicion | Human | Human | Gateway | Human |
Multi-Media | Y | N | Y | Y |
Packet switching | Y | N? | Y | Y |
Countable Resources | Y | Y | Y | Y |
Security/Stability/Robustness | Y | Y | Y | Y |
Emergency Plans | Y | N | Y | Y |
Extension flexibility | N? | N? | Y | Y? |
通信网络分析与设计
电信网络如何路由/转发
手机会通过基站系统(BSS)接入到网络子系统(NSS)。网络子系统的一个重要部件是移动通信交换中心(MSC),它建立了移动呼叫路由,连接到另外一个MSC。由此以上述相反的方式往下通讯,就找到了拨打号码的终端。
IP网络如何路由/转发
PC1向PC2发送一个源IP地址为11.1.1.2、目的IP地址为12.1.1.2的数据包。 Router R1收到报文,查看路由表,发现路由到12.1.1.0/24网段,下一跳到172.16.0.2,所以报文从Router R1的接口GE 0/0/0发送到路由器 R2;路由器R2收到后查看路由表,发现有到12.1.1.0/24网段的路由,下一跳到172.16.1.2,所以从接口GE 0/0/1发出路由器 R2 到路由器 R3;路由器R3收到报文后,查看路由表,发现路由到12.1.1.0/24网段,下一跳为12.1.1.1,也就是路由器R3的接口GE 0/0/1的地址,所以数据包从GE 0/0/1发出,最后到达PC2。 PC2向PC1发送数据包时,也需要沿途的路由器查询路由表,以确定转发路径。
需要说明的是,如果路由表项的下一跳IP地址是出接口的IP地址,则表示该接口直连路由表项所指示的目的网络。另外需要注意的是,下一跳IP地址对应的主机接口必须和出接口在同一个二层网络(二层广播域)。
Exp1: 明月湖MiniCamp
如何发言让主办方舒服?与其说“可能我不会走向创业这条路……”,不如这样开头“无论我是否走向创业……”。
对比entrepreneurship和intrapreneurship:
前者是外向的牵头创业,后者则是企业内部或者组织内部的创业。从entre到intra,是对创业理解的改变,换言之,也就是一种成长。视角从外部转向内部之后,能够得到一样的在这个组织内的资源。
快递系统的设计
如果主营高校之间的小包裹快递,怎么利用现有的快递系统赚钱?
人联网如何实现路由/转发
Android 蓝牙聊天室:仅支持一对一实时通信、文件传输、好友添加、好友分组、好友在线状态更新等功能,其中消息发送支持文本、表情等方式。
将传统的蓝牙聊天室改造成可以一对多的会话形式
大部分手机与移动装置所使用的是 Class B(Class2),标准传输距离10米;而高功率的Class A(Class1)则是将传输距离提升到100-300米,两种版本都支持A2DP立体声传输协议,可与立体声耳机互联。一般而言,手机与蓝牙耳机的距离不会太远,如果中间没有大的障碍物,在7米之内传输质量都很好,超过8米将出现断点!超过10米将蓝牙设备之间将失去连接。
一台手机仅支持5-7台不同类型的设备同时连接。
场景假设
通信双方彼此知道对方的姓名、学院。
每2个教室/每3个寝室为一个聊天室,教室外区域根据相邻教室的最近距离归并到同一个聊天室。让聊天室的概念与物理上的空间一一对应。 (学校其他区域的聊天室划分有待商讨)
人员不流动下,在通信过程中,收发双方位置固定且在可蓝牙通信的聊天室内(可以是不同的聊天室)。
人员流动下,通信过程中,发送方位置固定(确保能发出去信息),且不需要知道接收方是否收到信息。
发现的问题
如果人员流动时,发送方不能广播信息,只能一个一个发(发了就断,断了再换节点发),该功能是否下放到代码层面实现未知。
聊天室和聊天室之间的通信,是否需要一个中间节点来转发信息?
A:中间节点只能用人代替。
已知的知识
连接设备
沿袭计算机网络最经典的C-S(客户端——服务端)模型
Android 开发的一些基础
Socket
A socket is an endpoint for communication between two machines.
BluetoothSocket
REF:https://developer.android.google.cn/guide/topics/connectivity/bluetooth?hl=zh-cn#java
利用 BluetoothAdapter,通过设备发现或查询配对设备的列表来查找远程蓝牙设备。
Android 应用可通过 Bluetooth API 执行以下操作:
- 扫描其他蓝牙设备
- 查询本地蓝牙适配器的配对蓝牙设备
- 建立 RFCOMM 通道
- 通过服务发现连接到其他设备
- 与其他设备进行双向数据传输
- 管理多个连接
请注意,被配对与被连接之间存在区别:
- 被配对是指两台设备知晓彼此的存在,具有可用于身份验证的共享链路密钥,并且能够与彼此建立加密连接。
- 被连接是指设备当前共享一个 RFCOMM 通道,并且能够向彼此传输数据。当前的 Android Bluetooth API 要求规定,只有先对设备进行配对,然后才能建立 RFCOMM 连接。在使用 Bluetooth API 发起加密连接时,系统会自动执行配对。
RFCOMM
一个以连接为导向的,通过蓝牙的流媒体传输。also known as the Serial Port Profile 串口协议(SPP)。
endpoint ID
学院+姓名
新方法:蓝牙PAN技术构建Ad Hoc
概述
蓝牙网络功能要求
- 定义/引用基于 IP 的动态临时个人网络
- 必须独立于操作系统、语言和设备
- 提供对 IPv4 和 IPv6 等常见网络协议的支持。对于其他现有的网络协议,可能会或可能不会提供支持。
- 为网络接入点提供支持,其中网络可以是企业 LAN、GSM 和其他数据网络。
- 在内存、处理能力和用户界面方面适应资源较为匮乏的小型设备。
蓝牙网络封装协议(BNEP)
Group PA(Ad-hoc)N (GN)
主机最多支持7个从设备连接,这是由蓝牙主动成员寻址方案 (Bluetooth active member-addressing scheme)所决定的
至于自组织网络(Group Ad-hoc network),则是一组计算设备互相交互形成一个独立的网络。该网络不需要额外的硬件网络设备支撑
PANU-PANU
仅允许PANU-PANU两个节点之间的直接通信。
网络接入点(Network Access Points,NAP)
网络接入点是包含一个或多个蓝牙无线电设备的单元,充当蓝牙网络和其他一些网络技术(10BASE-T、GSM 等)之间的桥梁、代理或路由器。对于连接到接入点的计算设备,接入点的无线电和主机控制器具有到网络接入设备的直接总线连接。
PAN 配置文件场景
NAP 为每个连接的蓝牙设备提供网络服务。 GN 允许两个或多个蓝牙设备成为 ad-hoc 网络的一部分。
Group Ad-hoc Network Profile Stack for Phase I:
Baseband, LMP, L2CAP位于OSI第一层和第二层
- 标题: 《互联网设计与演化》阅读笔记
- 作者: Eric Zhang
- 创建于 : 2023-03-27 23:22:21
- 更新于 : 2023-12-03 23:42:54
- 链接: https://ericzhang1412.github.io/2023/03/27/《互联网设计与演化》阅读笔记/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。