Design Spec Template
Delay in a TypeScript Loop
1 | let finished: boolean = false; |
Computer Networking Notes
Overview
计算机网络的类别
信息时代,网络指的是“三网”:
- 电信网络(固化网+移动网)
- 有线电视网络
- 计算机网络
电路交换(circuit switching):建立连接 -> 通信 -> 释放连接
缺点:电路中一个交换机或一条链路损坏则整个通信电路都要中断。
分组交换
三种交换方式的对比
计算机网络的体系结构
OSI vs TCP/IP
五层协议的体系结构
物理层 Physical Layer
数据链路层 Data Link Layer
两种信道使用类型:
- 点对点信道
- 广播信道
数据链路层的简单模型
数据链路和帧
- 链路(link) 是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
- 一条链路只是一条通路的一个组成部分。
- 数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 适配器(即网卡)
- 链路(link) 是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
三个基本问题:
封装成帧(framing)
透明传输
差错控制
点对点协议PPP(Point-to-Point Protocol):全世界使用最多的数据链路层协议。
三个组成部分:
- 一个将 IP 数据报封装到串行链路的方法
- 链路控制协议 LCP (Link Control Protocol)
- 网络控制协议 NCP (Network Control Protocol)
数据链路层的两个子层:
逻辑链路控制 LLC (Logical Link Control)子层 (一般不考虑)
媒体接入控制 MAC (Medium Access Control) 子层
适配器:
网络接口板又称为通信适配器(adapter)或网络接口卡 NIC (Network Interface Card),或“网卡”。
适配器的重要功能:
进行串行/并行转换。
对数据进行缓存。
实现以太网协议。
载波监听多点接入/碰撞检测 CSMA/CD (Carrier Sense Multiple Access with Collision Detection)
集线器
网桥 bridge
网络层 Network layer
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
IP协议及配套协议
中间设备又称为中间系统或中继(relay)系统。
- 物理层中继系统:转发器(repeater)
- 数据链路层中继系统:网桥或桥接器(bridge)
- 网络层中继系统:路由器(router)
- 网桥和路由器的混合物:桥路器(brouter)
- 网络层以上的中继系统:网关(gateway)
IP数据报
IP地址
Work Milestone
May 25th Microsoft Teams Toolkit Public Preview
Public Product:
- VS Code extension 2.0.1
- CLI 0.1.1
- VS extension
- Tutorial docs
- API docs
//Build (301 sessions, 80+ has “Teams”)
Baseline data of Teams apps
- Teams active users
- DAU: ~140M
- MAU: ~240M
- Total apps: 80k
- In the past 9 months
- Apps published: 30.5k
- Apps approved: 19.1k
- In the past 3 months:
- Apps created by toolkit v1: 10k
- Teams active users
Microsft Learning Resource
- Learning Azure:
- Azure bootcamp: http://aka.ms/AzureBootcamp
- Azure CLI: https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest
- Azure Kubernetes Service
- Azure Resource Manager
- Azure Storage
- Azure Key Vault
- Azure Container Registry
If you are new to C# or Azure development, here is some learning resources:
- C#/.NET (beginning) C# in a Nutshell
- C#/.NET (advanced) CLR via C#
- ASP.NET Core documents
- Azure Fundamentals of Azure, Second Edition, Learn Azure on Docs Learn
- Cloud architecture Jeffrey Richter - Architecting Distributed Cloud Applications
- .NET Architecture Guides
- Free video courses at Pluralsight (the license price is covered by your EVP).
- Free online books at O’Reilly (login with your @microsoft.com account). (Android App, iOS App)
- Soft skills Linkedin Learning
Microsoft Learning Resources
- Library - https://aka.ms/mslibrary
- Read on Kindle, O’Reilly access or Listen to audio book - Getting Started with E-Books (sharepoint.com)
- HackerNews - Hacker News (ycombinator.com)
- Pluralsight - Pluralsight at Microsoft Frequently Asked Questions (sharepoint.com)
- LinkedIn Learning - LinkedIn Learning (sharepoint.com)
- WSJ.com - Accessing The Wall Street Journal (WSJ.com) (sharepoint.com)
- Harvard Business Review - Accessing Harvard Business Review (sharepoint.com)
- Tuition Program - Please askHR
Visual Studio Toolkit
Threat Modeling 101
How to Build a CLI Tool
Ref
Background
The command line has become a powerful way for developers to interact with cloud services. Cloud computing services, continuous integration products, and some APIs have their own CLIs.
Points
Provide an Excellent Help Screen
usability and discovery are paramount in a CLI application.
“Steal, Steal, Steal”
Look at the good patterns in Linux and other tools you respect.
- always support short and long format for flags