中科大计网(二)-第一章-互联网及结构
什么是Internet三大角度
构成角度
网络角度
分布式应用角度
网络、计算机网络和互联网网络由节点和边构成的拓扑结构
计算机网络联网的由节点和边构成的计算机系统
互联网由tcp协议和ip协议为主支撑工作的网络叫互联网
若不与别人相连,自己用,叫internet,企业网,不叫Internet
Internet构成角度联网的计算机系统由节点和边构成的这样的系统叫计算机网络
节点:host/end system
主机及其上运行的应用程序
节点的目标或源(方形表示)
路由器、交换机等网络交换设备
做数据转发,不是源和目标(圆形表示)
路由器在网络层
交换机在链路层
边:通信链路(把节点连接在一起)
接入网链路(access):主机连接到互联网的链路
主干链路(backbone):路由器间的链路
协议
对等层的实体在通讯过程中应该遵守的规则的集合,包括了语法、语义和时序
网络角度一堆的网络,通过网络互联设备(路由器)将他们连接在一起,这叫互联网
分布式应用角度互联网是分布式的应用进程以及为分布式应用进程提供服务的基础设施所构成的
面向连 ...
中科大计网(一)-序言
往后课程主要内容
应用层
传输层
网络层
数据平面
控制平面
数据链路层和局域网
协议
协议是保证各设备间可以互操作的统一标准
应用层协议:直接提供给应用进程使用的协议,DNS、HTTP
传输层协议:进程到进程之间使用,TCP(面向可靠连接),UDP(面向不可靠连接)
网络层协议:主机到主机(E2E),分为传统协议(IP和路由协议,路由器将IP报文分组,然后查路由表转发)和SDN(数据定义网络,分为数据平面(交换机)和控制平面(网络操作系统))
数据链路层协议:点到点(P2P)
物理层协议:数字信号转化为物理信号
第0层,介质
传输层协议
TCP协议
UDP协议
可靠性:TCP协议
不出错
不乱序
不重复
不丢失
实时性:UDP协议
多媒体点播
事务性
网络层传统
IP:提供逻辑地址,支持分组交换。
路由:决定分组的传输路径
路由器通过查路由表来确定分组的转发方向。
路由器写死的,来了分组查路由表找表象然后转发。
基本功能
路由
路由协议(如 RIP、OSPF):交换路由信息
路由信息:我到哪个子网,我有多少延迟
路由算法(如 Dij ...
前端端栈之灵光乍现-DrumHero
前序在写JavaScript30的第一个项目[JS Drum Kit](https://soyaine.github.io/JavaScript30/01 - JavaScript Drum Kit/index-SOYAINE.html)的时候突然灵光乍现,如果把一个歌曲解析成鼓点,然后套用这个项目的音乐打击。
难点
如何把歌曲解析成鼓点
如何根据鼓点实现自动敲打
如何实现用户自定义上传
19-前端栈学习-MIT_Web终篇-Game实战
您提供的代码是一个多人游戏,玩家可以在画布上移动并实时与游戏世界交互。由于客户端和服务器端之间高度解耦,流程可能会较为复杂。我将从 客户端(输入、Socket、Canvas) 和 服务器端(游戏逻辑、Socket、API) 两个角度进行分解说明。
客户端流程
用户输入(input.js):
handleInput(e) 监听按键事件(方向键)并调用 client-socket.js 中的 move() 函数,发送移动方向(如 "up"、"down"、"left"、"right")。
发送输入(client-socket.js):
当玩家移动时,**move()** 函数通过 WebSocket 连接发送 move 事件(socket.emit("move", dir))。
socket.emit() 将移动方向传递到服务器。
游戏组件(Game.js):
此组件负责显示画布和游戏状态。
Socket.on("update", update) 监听服务器发送 ...
18-前端栈学习-Serverless_with_Next.js
什么是serverless
“无服务器计算”(Serverless computing)
“无服务器函数”(Serverless functions)
“无服务器架构”(Serverless architecture)
通常在服务器上运行的代码被写成函数 → 这些函数会被打包,并由特定的动作“触发”。
传统上需要运行在服务器上的代码,通过无服务器架构被简化成一个个独立的函数。这些函数被部署到无服务器平台(如 AWS Lambda、Vercel 等),并且不需要开发者手动管理服务器。这些函数在特定的事件或操作(如 API 请求、文件上传、数据库更改)发生时自动触发并执行。
简单来说:
写成函数:将服务器上的任务抽象成小的函数。
打包和触发:这些函数被托管在云端,在需要时按需运行,而不是一直运行,节省资源和管理成本。
例如,当有人访问你的网站时,可以触发一个无服务器函数来生成页面内容并返回给用户。
什么是Next.jsNext.js 是一个基于 React 的现代前端框架,旨在简化 React 应用的开发,特别是针对服务端渲染(SSR)、静态生成(SSG)和 API 路由等功能的实现 ...
17-前端栈学习-React的状态管理
为了让这篇博客更加详细和通俗易懂,我将为每一部分提供更多的解释和一些实际应用的场景,并对代码中的一些重要概念进行详细说明。这里是修改后的版本:
状态管理方法1. useStateuseState 是 React 中最基本的状态管理工具。它用于管理组件内部的状态,适合处理简单的状态需求。
示例:123456789101112131415import React, { useState } from 'react';function Counter() { const [count, setCount] = useState(0); // 初始化状态为 0 return ( <div> <p>当前计数:{count}</p> <button onClick={() => setCount(count + 1)}>增加</button> <button onClick={() =&g ...
前端栈学习(十六)-Socket
为什么需要 Socket?由于 HTTP 的限制,我们的 CatBook 的 Chat 在每次获取新的聊天时都需要刷新下网页才能加载。
因此,我们需要Socket来教服务器发送会话
什么是 Socket?Socket 是网络通信的一个抽象概念,它提供了服务器和客户端之间双向通信的能力。通过 Socket,客户端和服务器可以持续地交换数据,而不需要像传统 HTTP 请求那样频繁建立和关闭连接。
在 JavaScript 中,最常用的 Socket 技术是 WebSocket 和基于库的实现(如 Socket.IO)
Socket IO
基本用法1socketManager.getIo().emit("event_name", data);
"event_name"是订阅的主题
1socket.on("event_name", someFunction);
someFunction: 当你收到一个这样的 socket 事件时,应该做什么:
(data) => { do something with data ...
前端栈学习(十五)-初识Typescript
TS 项目骨架:weblab-workshops/skeleton at typescript
在线编辑网站: TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript
静态类型
Arrays
Enums
一般类型
语法糖
函数
异步函数