王道考研计算机网络——传输层
一、传输层概述

复用:发送方不同的应用进程都可以使用同一个传输层的协议来传送数据
分用:接收方的传输层在去除报文段的首部之后能把数据交给正确的应用进程

熟知端口号就是知名端口号0-1023
客户端使用的端口号是动态变化的,不是唯一确定的
端口号是16位65536

套接字可以标识一个端点:具体主机的具体进程
ftp:21 telnet:23 smtp:25 dns:53 http:80

二、UDP用户数据报
链路层有一个MTU的要求
UDP不确保数据的可靠交付,只提供了复用分用和差错检测的功能,出现问题应用层自己去解决
udp首部8个字节(源端口、目的端口、UDP的整个长度、校验和),tcp首部20个字节

源端口号可以不填(如果不需要对方回复的话) ,目的端口肯定要填
分用的时候,如果没有对应的端口号,就丢弃报文,返回给发送方一个ICMP“端口不可达”差错报告报文

伪首部只有在计算校验和的时候才出现,既不上传也不下发
伪首部的udp长度字段指的是udp的首部8B+udp数据部分的长度(不包含伪首部的长度)

我猜它不考:

三、TCP可靠数据传输
每一条TCP连接只能是点对点/一对一的,无法用于广播/多播的通信方式
TCP提供可靠的数据传输:可靠有序,不重不丢
TCP提供全双工通信:发送缓存和接收缓存可以同时工作
TCP提供的是面向字节流的服务:把应用程序交付下来的数据看成一串没有结构的字节流


填充字段的作用:保证TCP的段按4字节对齐
面向连接:收到一个报文段就要回复一个确认,回复的是下一个希望收到的序号,同时向发送方表面在这个序号之前的报文段我都收到了
为什么要通过数据偏移来获取数据部分从哪开始的?
》因为除了20字节的固定首部,还有可能加了选项字段


SYN和SIN用于连接的建立和释放


紧急指针的目的是为了标识紧急数据所在的位置

四、三次握手四次挥手
服务/客户端都有发送和接收缓冲区
ACK=1,ack的编号才有意义


为什么要等待2MSL:如果最后一个ACK=1,seq=u+1,ack=w+1丢失了,服务端没有收到,就会一直给客户端发送一个FIN=1,ACK=1,seq=w,ack=u+1,无法进入最后的CLOSED状态


一个字节占一个序号,序号字段指的是报文段的第一个字节的序号
TCP采用累计确认


3个冗余ack之后,直接启动快速重传

五、TCP流量控制与拥塞控制
TCP重点考察拥塞控制和流量控制


如何打破互相等待的死锁局面?
收到对方的零窗口通知就启动一个持续计时器,然后,每隔一段时间发送一个探测报文段

流量控制是一个点对点的问题,而拥塞控制是一个全局性的问题



快恢复:降到一半开始线性增加

相关文章:
王道考研计算机网络——传输层
一、传输层概述 复用:发送方不同的应用进程都可以使用同一个传输层的协议来传送数据 分用:接收方的传输层在去除报文段的首部之后能把数据交给正确的应用进程 熟知端口号就是知名端口号0-1023 客户端使用的端口号是动态变化的,不是唯一确定…...
08 集群参数配置(下)
Kafka Broker不需要太大的堆内存? Kafka Broker不需要太大的堆内存?应该把内存留给页缓存使用? kafka刷盘时宕机 kafka认为写入成功是指写入页缓存成功还是数据刷到磁盘成功算成功呢?还是上次刷盘宕机失败的问题,页…...
mac文件为什么不能拖进U盘?
对于Mac用户来说,可能会遭遇一些烦恼,比如在试图将文件从Mac电脑拖入U盘时,却发现文件无法成功传输。这无疑给用户带来了很大的不便。那么,mac文件为什么不能拖进U盘,看完这篇你就知道了。 一、U盘的读写权限问题 如果…...
RK3568的CAN驱动适配
目录 背景: 1.内核驱动模块配置 2.设备树配置 3.功能测试 4.bug修复 背景: 某个项目上使用RK3568的芯片,需要用到4路CAN接口进行通信,经过方案评审后决定使用RK3568自带的3路CAN外加一路spi转的CAN实现功能,在这个…...
Opengl之立方体贴图
简单来说,立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面:一个有纹理的立方体。你可能会奇怪,这样一个立方体有什么用途呢?为什么要把6张纹理合并到一张纹理中,而不是直接使用6个单独的纹理呢?立方体贴图有一个非常有用的特性,它可以通过一…...
EF Core报错:Error Number:-2146893019
appsettings.json中的连接字符串要添加上:TrustServerCertificatetrue; 所以这里的连接字符串为:Data SourceLAPTOP-61GDB2Q7\\SQLEXPRESS;Initial CatalogMvcMovie.Data;Persist Security InfoTrue;TrustServerCertificatetrue;User IDsa;Passwordroot…...
QT之可自由折叠和展开的布局
介绍和功能分析 主要是实现控件的折叠和展开,类似抽屉控件,目前Qt自带的控件QToolBox具有这个功能,但是一次只能展开一个,所以针对自己的需求可以自己写一个类似的功能,这里实现的方法比较多,其实原理也比较…...
javascript二维数组(7)数组指定元素求和
项目需求 对指定数据中的score求和 const data [ { name: Alice, age: 23, score: 85 }, { name: Bob, age: 30, score: 90 }, { name: Charlie, age: 35, score: 80 } ];1.封装函数 这个函数接受两个参数:一个对象数组和一个键名(也就是你想要…...
网络安全——黑客自学(笔记)
想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客!!! 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队…...
Docker 安装 Elasticsearch7.16.x
docker hub地址:https://hub.docker.com 拉取镜像 docker pull elasticsearch:7.16.3创建容器 docker run -di --nameelasticsearch -p 9200:9200 -p 9300:9300 -p 5601:5601 -e "discovery.typesingle-node" -e "cluster.nameelasticsearch" -…...
springmvc-controller视图层配置SpringMVC处理请求的流程
目录 1. 什么是springmvc 2.项目中加入springmvc支持 2.1 导入依赖 2.2 springMVC配置文件 2.3 web.xml配置 2.4 中文编码处理 3. 编写一个简单的controller 4. 视图层配置 4.1 视图解析器配 4.2 静态资源配置 4.2 编写页面 4.3 页面跳转方式 5. SpringMVC处理请求…...
三模块七电平级联H桥整流器电压平衡控制策略Simulink仿真
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
【window10】Dart+Android Studio+Flutter安装及运行
安装Dart SDK安装Android Studio安装Flutter在Android Studio中创建并运行Flutter项目 安装前,请配置好你的jdk环境,准备好你的梯子~ 安装Dart SDK 浅浅了解一下Dart: Dart 诞生于2011年,是由谷歌开发的一种强类型、跨平台的客户…...
【C++】运算符重载 ⑩ ( 下标 [] 运算符重载 | 函数原型 int operator[](int i) | 完整代码示例 )
文章目录 一、下标 [] 运算符重载1、数组类回顾2、下标 [] 运算符重载 二、完整代码示例1、Array.h 数组头文件2、Array.cpp 数组实现类3、Test.cpp 测试类4、执行结果 一、下标 [] 运算符重载 1、数组类回顾 在之前的博客 【C】面向对象示例 - 数组类 ( 示例需求 | 创建封装类…...
ROS机械臂开发-开发环境搭建【一】
目录 前言环境配置docker搭建Ubuntu环境安装ROS 基础ROS文件系统 bugs 前言 想系统学习ROS,做一些机器人开发。因为有些基础了,这里随便写写记录一下。 环境配置 docker搭建Ubuntu环境 Dockerfile # 基础镜像 FROM ubuntu:18.04 # 设置变量 ENV ETC…...
深度思考rpc框架面经之五:rpc限流:rpc事务:tps测试
11 注册中心监控和rpc限流(用友云产品部二面) 11.1 你这个注册中心有实现相关的监控吗 11.1.1 如何实现注册中心有实现相关的监控 是的,我可以为你提供关于RPC注册中心及其监控的相关信息。RPC注册中心是用于管理微服务之间调用关系的中心…...
[AIGC] Java序列化利器 gson
前言: 本篇文章主要介绍了Gson库,从是什么、为什么、怎么用三个方面进行了详细的介绍。在是什么部分,介绍了Gson库的作用和特点;在为什么部分,介绍了为什么要使用Gson库;在怎么用部分,介绍了如何…...
VMware 虚拟机删除+重建
由于本人暴力地关闭虚拟机,导致虚拟机出现了一些问题,并且还没有给虚拟机拍快照,虽然还能用,但本人不想将就,于是乎打算重新新建一个虚拟机 一、删除 1.打开workstation,选择虚拟机,右键选择移除。 虽然虚…...
环面上 FHE 的快速自举:LUT/Automata Blind Rotate
参考文献: [AP14] Alperin-Sheriff J, Peikert C. Faster bootstrapping with polynomial error[C]//Advances in Cryptology–CRYPTO 2014: 34th Annual Cryptology Conference, Santa Barbara, CA, USA, August 17-21, 2014, Proceedings, Part I 34. Springer B…...
VScode配置文件launch.json 和 tasks.json配置项详细说明
tasks.json tasks.json为编译配置文件 {"version": "2.0.0", // tasks.json 文件的版本号"tasks": [ // 任务数组,包含一个编译任务配置对象{"type": "cppbuild", // 任务类型,这里是 cppbuild …...
告别Win11无边框窗口的‘残疾’体验:Qt自定义标题栏完美集成Snap Layout保姆级教程
现代Qt应用开发:Win11无边框窗口与Snap Layout深度整合实战 当微软推出Windows 11时,其标志性的Snap Layout功能彻底改变了多窗口管理体验。然而对于使用Qt框架开发无边框窗口应用的开发者来说,这却带来了一个棘手的问题——自定义标题栏与系…...
CentOS 7.6 + Intel Parallel Studio XE 2017:手把手搞定VASP 5.4.4编译环境(附License激活避坑指南)
CentOS 7.6环境下Intel编译器与VASP 5.4.4的深度配置实战 在计算材料科学领域,VASP作为电子结构计算的黄金标准工具,其性能高度依赖底层编译环境的优化。本文将带您深入探索如何在CentOS 7.6系统上,通过Intel Parallel Studio XE 2017构建高性…...
如何让扫描PDF变得可搜索?OCRmyPDF-Desktop完整解决方案
如何让扫描PDF变得可搜索?OCRmyPDF-Desktop完整解决方案 【免费下载链接】pdfocr-desktop PDF OCR Application, adds an OCR text layer to scanned PDF files, allowing them to be copied and searched. 项目地址: https://gitcode.com/gh_mirrors/oc/pdfocr-d…...
OpCore-Simplify:智能化解构OpenCore EFI配置难题,让黑苹果安装不再复杂
OpCore-Simplify:智能化解构OpenCore EFI配置难题,让黑苹果安装不再复杂 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为…...
Win11Debloat终极指南:5分钟让你的Windows系统焕然一新
Win11Debloat终极指南:5分钟让你的Windows系统焕然一新 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本,用于从Windows中移除预装的无用软件,禁用遥测,从Windows搜索中移除Bing,以及执行各种其他更改以简化和…...
环境感知驱动的EFI构建:让OpenCore配置效率提升300%
环境感知驱动的EFI构建:让OpenCore配置效率提升300% 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpenCore配置(OpenCore是一…...
从Buck到三电平:软开关DC-DC变换器的Simulink建模与双闭环控制仿真
1. 从Buck到三电平:电力电子技术的进化之路 记得我第一次接触DC-DC变换器时,Buck电路就像是一道必须跨过的门槛。这个经典的降压电路结构简单,却蕴含着电力电子最基础的设计思想。但随着项目需求的提升,传统Buck电路在高压大功率场…...
我花了 3 小时吃透:Spring AI 核心三剑客 ChatModel、Prompt、ChatResponse 到底怎么用?
你在学习 Spring AI 的时候,肯定遇到过这三个类:ChatModel、Prompt、ChatResponse看着眼熟,却总搞不清谁负责干嘛、代码里为啥要这么写?接下来就是我的理解。一、先搞懂:这三个东西是什么关系?在开始写代码…...
3个步骤掌握FCEUX:开源NES模拟器的全方位应用指南
3个步骤掌握FCEUX:开源NES模拟器的全方位应用指南 【免费下载链接】fceux FCEUX, a NES Emulator 项目地址: https://gitcode.com/gh_mirrors/fc/fceux FCEUX是一款功能强大的开源NES模拟器(任天堂娱乐系统游戏模拟工具),以…...
【紧急预警】CPython 3.12升级后,3款主流内存工具失效!2024最稳选型组合(含兼容性补丁与迁移路径)
第一章:Python 内存检测工具选型的底层逻辑与演进脉络Python 内存管理机制以引用计数为核心,辅以循环垃圾回收器(GC)和内存池(pymalloc),这决定了内存问题往往隐匿于对象生命周期、引用链异常或…...
