CS144 - Lecture 2

article/2025/8/13 0:48:23

CS144 - Lecture 1

TCP

这里就简单讲了一下它的基本性质,没啥好说的

UDP

提供不可靠的传输服务,我们的 DNS 服务和 DHCP 都是用的 UDP 协议。

对于 DNS 我们只是单纯地向 DNS 服务器发送域名,然后返回一个 IP,如果还需要建立 TCP 连接会很麻烦,但是如果使用 UDP 直接传输就很快,只需要简单的重传机制即可。DHCP当然也是这个原因,因为 DHCP 也是发送请求,然后给你分配一个 ip。

以前视频流音频流常使用 UDP 来传输,而现在使用 TCP 的更多,但是对于实时性要求比较高的,还是使用的 UDP。

ICMP

这是一个有用的工具,比如在目标不可达或者重定向的时候,就会向发送方主机返回一些信息,以供我们可以知道发生了什么事情。当然,他被规定的很简单,他不会有重传机制,他会做的仅仅就是返回一个错误信息。比如我们之前使用过的 traceroute 以及 ping 都是利用 ICMP 实现的。

同时 ICMP 依赖于 IP 协议,他并没有独立的传输机制,所以传输的时候是封装在 IP 里面的。

校验和

把所有数据相加来验证数据没有损坏,但是可能出现两个段出错的数据相互抵消了。

值得注意的是,在 TCP 的校验和里面,其实除了 tcp 头部和报文,我们还需要将伪头部加入到计算之中,这个伪头部包含了源地址,目标 ip 以及协议号的内容,我们虽然会将它加入计算,但是并不会将他作为数据报发送出去,而是在目标主机的网络层从 ip 头部中提取信息,然后交给 tcp 进行计算。

循环冗余校验(CRC)

计算多项式的余数来判断数据没有损坏,比校验和准确。通常是在链路层使用 CRC,而 TCP/IP 使用校验和。

消息认证码(mac)

利用算法从消息中提取信息出来并使用共享密钥进行处理然后附加在消息的后面,传输过去之后的时候,对方会提取 MAC,并且使用发送方和接收方才知道的共享密钥对信息再次处理,在计算出一个 MAC,如果不相同,则判断当前的信息已经受损或者已经被篡改(可以用于 TLS 传输层安全协议,即 https)

TCP 的连接

关于 tcp 连接状态的状态转移,这里有三张图帮助我们直观的理解:

在这里插入图片描述

另一张更详细的图,摘自《 linux 高性能服务器编程》:

在这里插入图片描述

接下来一张图是我觉得最直观的,同样摘自《 linux 高性能服务器编程》:

在这里插入图片描述

端对端原则

转存中…(img-ROE24Oa5-1748765656451)]

端对端原则


http://www.hkcw.cn/article/XDEVbTuhbL.shtml

相关文章

Go中MAP底层原理分析

MAP底层原理分析 参考 https://golang.design/go-questions/map/principalmap | Golang 中文学习文档 先来看一下map结构体,(runtime.hmap结构体就是代表着 go 中的map,与切片一样map的内部实现也是结构体) type hmap struct {/…

第十六章 EMQX黑名单与连接抖动检测

系列文章目录 第一章 总体概述 第二章 在实体机上安装ubuntu 第三章 Windows远程连接ubuntu 第四章 使用Docker安装和运行EMQX 第五章 Docker卸载EMQX 第六章 EMQX客户端MQTTX Desktop的安装与使用 第七章 EMQX客户端MQTTX CLI的安装与使用 第八章 Wireshark工具的安装与使用 …

构建系统maven

1 前言 说真的,我是真的不想看构建了,因为真的太多了。又多又乱。Maven、Gradle、Make、CMake、Meson、Ninja,Android BP。。。感觉学不完,根本学不完。。。 但是没办法最近又要用一下Maven,所以咬着牙再简单整理一下…

java CountDownLatch‌

CountDownLatch是用于线程同步的工具类,主要作用是让当前线程等待其他线程完成操作后再继续执行。 示例代码: import java.util.concurrent.CountDownLatch;private static void testCountDownLatch() {int taskNum 5;CountDownLatch latch new Count…

[yolov11改进系列]基于yolov11引入上下文锚点注意力CAA的python源码+训练源码

【CAA介绍】 本文记录的是基于CAA注意力模块的RT-DETR目标检测改进方法研究。在远程遥感图像或其他大尺度变化的图像中目标检测任务中,为准确提取其长距离上下文信息,需要解决大目标尺度变化和多样上下文信息时的不足的问题。CAA能够有效捕捉长距离依赖…

【Java基础】Java入门教程

文章目录 一、Java开发环境概述☕ Java开发全景架构📦 JDK (Java Development Kit)🖥️ IDE (集成开发环境)🔄 工作流关系 二、JDK下载与安装2.1 下载JDK2.2 安装JDK 三、环境变量配置3.1 Windows配置3.2 macOS/Linux配置为当前用户配置环境变…

通过openpyxl在excel中插入散点图

实现代码 # -*- coding: utf-8 -*- """ Created on Sat May 31 23:30:12 2025author: anyone """from openpyxl import load_workbook from openpyxl.chart import ScatterChart, Reference, Series from openpyxl.chart.series import SeriesL…

零基础安装 Python 教程:从下载到环境配置一步到位(支持 VSCode 和 PyCharm)与常用操作系统操作指南

零基础安装 Python 教程:从下载到环境配置一步到位(支持 VSCode 和 PyCharm)与常用操作系统操作指南 本文是一篇超详细“Python安装教程”,覆盖Windows、macOS、Linux三大操作系统的Python安装方法与环境配置,包括Pyt…

数据结构第6章 图(竟成)

第 6 章 图 【考纲内容】 1.图的基本概念 2.图的存储及基本操作:(1) 邻接矩阵法;(2) 邻接表法;(3) 邻接多重表、十字链表 3.图的遍历:(1) 深度优先搜索;(2) 广度优先搜索 4.图的基本应用:(1) 最小 (代价) 生…

Microsoft Fabric - 尝试一下Data Factory一些新的特性(2025年5月)

1.简单介绍 Microsoft Fabric是微软提供的一个数据管理和分析的统一平台,感觉最近的新特性也挺多的。 Data Factory是Microsoft Fabric的一个功能模块,也是一个cloud service。Data Factory可以和多种数据源进行连接,同时提供了data movemen…

思科设备网络实验

一、 总体拓扑图 图 1 总体拓扑图 二、 IP地址规划 表格 1 接口地址规划 设备名称 接口/VLAN IP 功能 PC0 VLAN580 10.80.1.1 访问外网 PC1 VLAN581 10.80.2.1 访问外网 PC2 Fa0 20.80.1.100 端口镜像监控流量 PC3 VLAN585 10.80.6.1 远程登陆多层交换机0…

《机器学习数学基础》补充资料:韩信点兵与拉格朗日插值法

本文作者:卓永鸿 19世纪的伟大数学家高斯,他对自己做的数学有非常高的要求,未臻完美不轻易发表。于是经常有这样的情况:其他也很厉害的数学家提出自己的工作,高斯便拿出自己的文章说他一二十年前就做出来了&#xff0…

Go 即时通讯系统:日志模块重构,并从main函数开始

重构logger 上次写的logger.go过于繁琐,有很多没用到的功能;重构后只提供了简洁的日志接口,支持日志轮转、多级别日志记录等功能,并采用单例模式确保全局只有一个日志实例 全局变量 var (once sync.Once // 用于实现…

力扣面试150题--二叉树的锯齿形层序遍历

Day 56 题目描述 思路 锯齿形就是一层是从左向右,一层是从右向左,那么我们可以分析样例,对于第奇数层是从左向右,第偶数层是从右向左,于是可以采取一个计数器,采取链表方式,从左向右就是正常插…

uni-app学习笔记二十一--pages.json中tabBar设置底部菜单项和图标

如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定一级导航栏,以及 tab 切换时显示的对应页。 在 pages.json 中提供 tabBar 配置,不仅仅是为了方便快速开发导航,更重要的是在App和小程序端提升性能。在这两个平台&#xff…

Vue3+SpringBoot全栈开发:从零实现增删改查与分页功能

前言 在现代化Web应用开发中,前后端分离架构已成为主流。本文将详细介绍如何使用Vue3作为前端框架,SpringBoot作为后端框架,实现一套完整的增删改查(CRUD)功能,包含分页查询、条件筛选等企业级特性。 技术栈介绍 前端&#xff1…

用户资产化视角下开源AI智能名片链动2+1模式S2B2C商城小程序的应用研究

摘要:在数字化时代,平台流量用户尚未完全转化为企业的数字资产,唯有将其沉淀至私域流量池并实现可控、随时触达,方能成为企业重要的数字资产。本文从用户资产化视角出发,探讨开源AI智能名片链动21模式S2B2C商城小程序在…

用dayjs解析时间戳,我被提了bug

引言 前几天开发中突然接到测试提的一个 Bug,说我的时间组件显示异常。 我很诧异,这里初始化数据是后端返回的,我什么也没改,这bug提给我干啥。我去问后端:“这数据是不是有问题?”。后端答:“…

适配器模式:让不兼容接口协同工作

文章目录 1. 适配器模式概述2. 适配器模式的分类2.1 类适配器2.2 对象适配器 3. 适配器模式的结构4. C#实现适配器模式4.1 对象适配器实现4.2 类适配器实现 5. 适配器模式的实际应用场景5.1 第三方库集成5.2 遗留系统集成5.3 系统重构与升级5.4 跨平台开发 6. 类适配器与对象适…

多模态AI的企业应用场景:视觉+语言模型的商业价值挖掘

关键词:多模态AI | 视觉语言模型 | 企业应用 | 商业价值 | 人工智能 📚 文章目录 一、引言:多模态AI时代的到来二、多模态AI技术架构深度解析三、客服场景:智能化服务体验革命四、营销场景:精准投放与创意生成五、研…