王道考研计算机网络——传输层

news2024/12/1 10:26:39

一、传输层概述 

复用:发送方不同的应用进程都可以使用同一个传输层的协议来传送数据

分用:接收方的传输层在去除报文段的首部之后能把数据交给正确的应用进程

熟知端口号就是知名端口号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重点考察拥塞控制和流量控制 

如何打破互相等待的死锁局面? 

收到对方的零窗口通知就启动一个持续计时器,然后,每隔一段时间发送一个探测报文段

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1051503.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

禾观科技采用亚马逊云科技的数据湖,实现数据化驱动运营的核心

如今,随着本土业务发展渐趋成熟,越来越多的中国企业开始依托跨境电商实现产品出口外销,大力拓展海外布局。在这一背景下,众多潜在机遇涌现,成为跨境电商“蓝海”的必争之地。 杭州禾观科技有限公司是面向全球新兴快时尚…

【JavaEE基础学习打卡08】JSP之初次认识say hello!

目录 前言一、JSP技术初识1.动态页面2.JSP是什么3.JSP特点有哪些 二、JSP运行环境配置1.JDK安装2.Tomcat安装 三、编写JSP1.我的第一个JSP2.JSP执行过程3.在IDEA中开发JSP 总结 前言 📜 本系列教程适用于JavaWeb初学者、爱好者,小白白。我们的天赋并不高…

排序:最佳归并树(优化外部排序中对磁盘的读写次数)

1.归并树的性质 每个初始归并段对应一个叶子结点,把归并段的块数作为叶子的权值归并树的WPL树中所有叶结点的带权路径长度之和归并过程中的磁盘I/O次数归并树的WPL*2 如下图: 每个初始归并段看作一个叶子结点,归并段的长度作为结点权值&a…

源码编译安装zstd

目录 1 下载源码https://github.com/facebook/zstd 2 解压 3 在解压后的目录里输入make 4 sudo make install 安装完毕 5 输入whereis zstd 检查安装结果 1 下载源码https://github.com/facebook/zstd 2 解压 3 在解压后的目录里输入make 4 sudo make install 安装完毕…

利用抽象工厂模式提升游戏开发的精度与灵活性

引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。 在开发过程中,如何有效地管理各种游戏对象并…

UE4 Cesium 与ultra dynamic sky插件天气融合

晴天: 雨天: 雨天湿度: 小雪: 中雪: 找到该路径这个材质: 双击点开: 将Wet_Weather_Effects与Snow_Weather_Effects复制下来,包括参数节点 找到该路径这个材质,双击点开&…

Java基于 SpringBoot+Vue 的游戏分享网站

1 简介 基于Java SpringBoot 的游戏分享网站,本系统主要包括管理员和用户两个角色组成;主要包括首页、个人中心、用户管理、游戏类型管理、游戏文章管理、交流论坛、系统管理等功能的管理系统。 文章首发地址 2 技术栈 开发语言:Java 框…

【空间-光谱重构网络:高光谱和多光谱图像融合】

SSR-NET: Spatial–Spectral Reconstruction Network for Hyperspectral and Multispectral Image Fusion (SSR-NET:用于高光谱和多光谱图像融合的空间-光谱重构网络) 将低空间分辨率高光谱图像(LR-HSI)与高空间分辨…

数据结构与算法设计分析—— 数据结构及常用算法

目录 一、常用的数据结构(一)线性结构1、顺序表与链表2、栈3、队列 (二)非线性结构1、树与二叉树2、图3、集合 二、算法的基本概念(一)算法的特性(二)算法与数据结构 三、算法设计步…

嵌入式Linux应用开发-面向对象-分层-分离及总线驱动模型

嵌入式Linux应用开发-面向对象-分层-分离及总线驱动模型 第八章 驱动设计的思想:面向对象/分层/分离8.1 面向对象8.2 分层8.3 分离8.4 写示例代码8.5 课后作业 第九章 驱动进化之路:总线设备驱动模型9.1 驱动编写的 3种方法9.1.1 传统写法9.1.2 总线设备…

进阶指针(三)--- qsort函数(快速排序)的使用和(用冒泡排序)模拟实现

✨博客主页:小钱编程成长记 🎈博客专栏:进阶C语言 🎈推荐相关博文:进阶C语言(一)、进阶C语言(二) 进阶指针(三) 8.回调函数(下&#x…

​中秋团圆季《乡村振兴战略下传统村落文化旅游设计》许少辉八月新著

​中秋团圆季《乡村振兴战略下传统村落文化旅游设计》许少辉八月新著 ​中秋团圆季《乡村振兴战略下传统村落文化旅游设计》许少辉八月新著

手动实现BERT

本文重点介绍了如何从零训练一个BERT模型的过程,包括整体上BERT模型架构、数据集如何做预处理、MASK替换策略、训练模型和保存、加载模型和测试等。 一.BERT架构   BERT设计初衷是作为一个通用的backbone,然后在下游接入各种任务,包括翻译…

Azure Arc 概要:功能、管理和应用场景详解,AZ900 考点示例

文章目录 本文大纲一、什么是 Azure Arc二、使用 Azure Arc 可以做什么操作三、使用 Azure Arc 可以管理什么资源3.1 如何使用Azure Arc与服务器? 四、Azure Arc 支持的主要场景五、在 AZ900 中的考点示例5.1 示例题 15.2 示例题 2 本文大纲 本文思维导图概述的主要内容&…

【C/C++】C/C++面试八股

C/C面试八股 C和C语言的区别简单介绍一下三大特性多态的实现原理虚函数的构成原理虚函数的调用原理虚表指针在什么地方进行初始化的?构造函数为什么不能是虚函数虚函数和纯虚函数的区别抽象类类对象的对象模型内存对齐是什么?为什么要内存对齐static关键…

嵌入式Linux应用开发-第十章LED模板总线设备驱动模型

嵌入式Linux应用开发-第十章LED模板总线设备驱动模型 第十章 LED模板驱动程序的改造:总线设备驱动模型10.1 原来的框架10.2 要实现的框架10.3 写代码10.3.1 注意事项10.3.2 实现 platform_device结构体10.3.3 实现 platform_driver结构体 10.4 课后作业 第十章 LED模…

CCF CSP认证 历年题目自练Day13

CCF CSP认证 历年题目自练Day13 题目一 试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   在一个整数序列a1, a2, …, an中,如果存在某个数,大…

web:[极客大挑战 2019]BabySQL

题目 点进页面显示如下 查看源代码 先尝试一下万能密码 没用,or被过滤了 试着双写看看 回显一串,也不是flag 先查询列数尝试一下,把union select过滤了,使用双写 构造payload /check.php?usernameadmin&password1 %27 ununi…

基于Java的医院住院管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统功能具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域…

ShowDoc部署与应用:文档管理的最佳实践

在项目开发和协作中,文档管理扮演着至关重要的角色。ShowDoc作为一款卓越的开源文档管理工具,不仅提供强大的文档管理功能,还具备简单易用的协作和部署特性。我们的项目团队最初选择了ShowDoc作为文档管理工具,用以促进前后端协作…