《互联网设计与演化》阅读笔记

Eric Zhang Lv3

从因特网到交际

沙漏模型

还是第一次看见这样子描述因特网的。 fig01

因特网的基本通信模型

两大部分:地址(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) 将计算机和人连接在一起的应用:人与人的通信 广泛获取信息

(前途一片大好啊)

fig02???

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。由此以上述相反的方式往下通讯,就找到了拨打号码的终端。 fig02

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地址对应的主机接口必须和出接口在同一个二层网络(二层广播域)。 fig02

Exp1: 明月湖MiniCamp

如何发言让主办方舒服?与其说“可能我不会走向创业这条路……”,不如这样开头“无论我是否走向创业……”。

对比entrepreneurship和intrapreneurship:

前者是外向的牵头创业,后者则是企业内部或者组织内部的创业。从entre到intra,是对创业理解的改变,换言之,也就是一种成长。视角从外部转向内部之后,能够得到一样的在这个组织内的资源。

快递系统的设计

如果主营高校之间的小包裹快递,怎么利用现有的快递系统赚钱?

人联网如何实现路由/转发

Android 蓝牙聊天室:仅支持一对一实时通信、文件传输、好友添加、好友分组、好友在线状态更新等功能,其中消息发送支持文本、表情等方式。

将传统的蓝牙聊天室改造成可以一对多的会话形式

大部分手机与移动装置所使用的是 Class B(Class2),标准传输距离10米;而高功率的Class A(Class1)则是将传输距离提升到100-300米,两种版本都支持A2DP立体声传输协议,可与立体声耳机互联。一般而言,手机与蓝牙耳机的距离不会太远,如果中间没有大的障碍物,在7米之内传输质量都很好,超过8米将出现断点!超过10米将蓝牙设备之间将失去连接。

一台手机仅支持5-7台不同类型的设备同时连接。

场景假设

通信双方彼此知道对方的姓名、学院。

每2个教室/每3个寝室为一个聊天室,教室外区域根据相邻教室的最近距离归并到同一个聊天室。让聊天室的概念与物理上的空间一一对应。 (学校其他区域的聊天室划分有待商讨)

人员不流动下,在通信过程中,收发双方位置固定且在可蓝牙通信的聊天室内(可以是不同的聊天室)。

人员流动下,通信过程中,发送方位置固定(确保能发出去信息),且不需要知道接收方是否收到信息

fig02

发现的问题

如果人员流动时,发送方不能广播信息,只能一个一个发(发了就断,断了再换节点发),该功能是否下放到代码层面实现未知。

聊天室和聊天室之间的通信,是否需要一个中间节点来转发信息?

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

概述

蓝牙网络功能要求

  1. 定义/引用基于 IP 的动态临时个人网络
  2. 必须独立于操作系统、语言和设备
  3. 提供对 IPv4 和 IPv6 等常见网络协议的支持。对于其他现有的网络协议,可能会或可能不会提供支持。
  4. 为网络接入点提供支持,其中网络可以是企业 LAN、GSM 和其他数据网络。
  5. 在内存、处理能力和用户界面方面适应资源较为匮乏的小型设备。

蓝牙网络封装协议(BNEP)

Group PA(Ad-hoc)N (GN)

fig02

主机最多支持7个从设备连接,这是由蓝牙主动成员寻址方案 (Bluetooth active member-addressing scheme)所决定的

至于自组织网络(Group Ad-hoc network),则是一组计算设备互相交互形成一个独立的网络。该网络不需要额外的硬件网络设备支撑

PANU-PANU

仅允许PANU-PANU两个节点之间的直接通信。

网络接入点(Network Access Points,NAP)

fig02

网络接入点是包含一个或多个蓝牙无线电设备的单元,充当蓝牙网络和其他一些网络技术(10BASE-T、GSM 等)之间的桥梁、代理或路由器。对于连接到接入点的计算设备,接入点的无线电和主机控制器具有到网络接入设备的直接总线连接。

PAN 配置文件场景

NAP 为每个连接的蓝牙设备提供网络服务。 GN 允许两个或多个蓝牙设备成为 ad-hoc 网络的一部分。

Group Ad-hoc Network Profile Stack for Phase I: 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 进行许可。
 评论