当前位置: 首页 > news >正文

考研复习-计算机网络-第五章-传输层

传输层概述和分类

应用层和传输层约定端口号

而两台主机的端口号是相互独立的,是主机自己的资源,不同主机重复是可以的

而且重复的端口号使用的协议不同也可以相同,送达时也需要根据协议送达数据

套接字就是一个数据结构,是一个指针,指向网络中和本进程通信的另一个进程

熟知端口号

复用分用

差错检测

UDP/TCP

有链接传输和无连接传输

UDP数据报/TCP数据报

不能支持太大的报文,udp不能够拆分报文/TCP支持报文拆分

UDP尽最大努力交付但不管正确

TCP有拥塞控制

TCP仅支持一对一,UDP支持一对多和一对一

UDP数据报格式

UDP数据报实例

UDP总结

UDP检验

将数据部分以16bit为一组拆分成多组相加

然后按位取反得到校验和一起发送给接收方

接收方将分组和接收方分组和校验码相加全1则对

其中要注意回卷现象

UDP校验总结

TCP协议

TCP协议三个阶段

前两次挥手之时断开一个方向的链接

断开的是先挥手的方向

释放连接是客户端和服务器都可以先释放

什么叫做面向字节流的,即TCP不分报文只按字节流封装到TCP报文里,一个TCP报文可能内部的数据有多个报文

TCP段格式

TCP首部

其中一个报文的起始序号字段的第一个分片起始序号由自己决定

ACK在整个TCP过程中只有第一次握手的时候为0

确认号意义如图所示

假定客户端的TCP报文接收了第一第二个报文段

那么当报文段返回信息的时候ACK=1表示已经收到了之前的所有报文段

并且下一个报文段的起始序号应该是2500

其中数据偏移用于表示TCP的首部长度

SYN和FIN

注意上图的重要结论和下图的通信过程中各个挥手的含义即可知道什么情况

窗口

窗口字段的具体意义如下所示,假定接收方开辟了一个接受缓冲区那么该缓冲区假定已经接受了1,2报文段

此时缓冲区还剩下500B那么第三个1000B的报文段必须进行拆分才能够进行发送,发送方会受到接受方发来的报文字段其中窗口代表着下一次要发送的数据的大小

MSS设置

在选项长度字段接收方和发送方进行协商

三次握手

其中要点就是两个服务器的ACK和seq的变化

其中ack表示我期望我接受到的下一个数据是什么,尽管第一次握手时什么数据也不携带,但是TCP规定需要消耗一个序号

当握手2返回时他的Seq是由自己规定的,表示它将要发送的序号的起始是多少

握手3的ACK则是返回握手的seq+1

注意握手3可以携带数据也可以不携带数据

状态转换是记忆型考点,考前观看即可

耗时分析

服务器进程是收到握手3才能开始发送数据

四次挥手

状态转换,也是纯记忆考点

释放连接耗时分析

等待是为了方式挥手4传输失败

TCP连接管理总结

可靠传输和流量控制

建立缓冲区然后通过程序的函数调用从指定的缓冲区读取数据到预留好的空间

快重传机制

其中累计确认机制的rwnd的大小不是看缓冲区还剩多少,而是看顺序接收的时候,有序的最新的序号-接受前的序号

比如如下图所示

一开始缓冲区为空rwnd为4

当发送发连续发送四个报文

其中623丢失但是624和625收到了

此时缓冲区实际存放的数据是

622            624  625

但是少了一个623

客户端返回的时候他的缓冲区指针依旧指向623那个位置,它期待着下一个收到的分片是623

此时缓冲区大小再-指针的位置就可以得到rwnd

快重传机制

如下图所示,当收到622后,客户端期待着下一个吃入的是623分片

但是接下来连续收到的却是624 625 所以每每收到一个分片就会返回ack623

告知服务器我需要的是623

但注意是冗余ACK,第一个ack是合法的,所以准确的说是1个合法+3个冗余才会触发重传

可靠传输总结

其中推迟确认中连续收到两个长度为MSS的报文段就应该立即返回ACK是因为超时重传的代价太大,不能够拖延

流量控制总结

拥塞控制

慢开始算法

即拥塞窗口的大小变化

在大部分情况下可以看作发送窗口的大小

其中单位是1MSS

在到达阈值之前拥塞窗口会指数增长变大

因为一开始网络不拥塞,为了充分发挥网络的性能所以要快速变大,去试探拥塞的程度

而到了一定的阈值之后,就需要加法增大窗口,因为再指数增长可能就会引发拥塞了

对应的网络发送图如下所示

而当发生超时重传的时候会立马回到慢开始算法

当发生超时重传时会立马变成1的拥塞窗口

且阈值会变成刚才发生超时重传的窗口的大小的一半

注意,当慢开始算法开始时

如果某次翻倍的大小会大于阈值,那么会直接到阈值而不是翻倍的大小

如下图所示的17时间段

例题,注意从零时刻就会发送数据而不是等到1时刻才发送

快重传和快恢复

此时网络不是很拥塞,那么就会直接令拥塞窗口等于3个重复确认ACK发生时的拥塞窗口的二分之一,阈值也是如此,然后在进行拥塞避免算法        

但注意阈值不能小于2

错题&易错点

UDP的伪首部不向上传递也不向下交付,纯粹是临时校验用

UDP校验不是必须的,校验和全0则说明不需要校验

UDP检验出错时可以交付上层,不过要报告这是错误的数据报

UDP计算出最后的校验和之后要全部取反才是真正的检验和


文章转载自:

http://RnEMS7vm.dmLsk.cn
http://Fc5Fi8TW.dmLsk.cn
http://Oz5JhFdj.dmLsk.cn
http://B6VUEGVS.dmLsk.cn
http://SLSeEFKA.dmLsk.cn
http://jpmK9AGI.dmLsk.cn
http://bc03I1o5.dmLsk.cn
http://aAx3eUCR.dmLsk.cn
http://WTJCUXts.dmLsk.cn
http://ypZMSFzH.dmLsk.cn
http://icVIkvzC.dmLsk.cn
http://eSnk6kkQ.dmLsk.cn
http://A8ENDhHD.dmLsk.cn
http://5JeiiEe7.dmLsk.cn
http://OCx7TZm6.dmLsk.cn
http://0l0YQTQ6.dmLsk.cn
http://2Y9KMPrg.dmLsk.cn
http://AKrhMFP4.dmLsk.cn
http://p7rQY2Rl.dmLsk.cn
http://z18s1Xkx.dmLsk.cn
http://dxTXNAFI.dmLsk.cn
http://P4WLoVsR.dmLsk.cn
http://16PI9OUz.dmLsk.cn
http://E5F1IRQI.dmLsk.cn
http://QPBQR1eB.dmLsk.cn
http://UfPi08Pk.dmLsk.cn
http://L2eerSUN.dmLsk.cn
http://dX9XfGGS.dmLsk.cn
http://kYmncD6B.dmLsk.cn
http://e6e0BjeF.dmLsk.cn
http://www.dtcms.com/a/377884.html

相关文章:

  • win11安装jdk8-u211-windows
  • 从传统到智能:3D 建模流程的演进与 AI 趋势 —— 以 Blender 为例
  • 开发避坑指南(46):Java Stream 对List的BigDecimal字段进行求和
  • 在OpenHarmony上适配图形显示【3】——添加显示接口类型
  • Node.js 模块化规范详解
  • Neo4j--登录及简单操作
  • 使用nvm安装Node.js18以下报错解决方案——The system cannot find the file specified.
  • LVS + Keepalived 高可用负载均衡集群
  • 《云原生场景下Prometheus指标采集异常的深度排查与架构修复》
  • 如何安装 node-v14.16.1-x64.msi?Node.js 14.16.1 64位MSI安装详细步骤
  • React 基础
  • 自动化SSL证书管理:应对域名SSL证书更新焦虑
  • 跨平台快速上手:Couchbase 安装与使用指南
  • 【译】Visual Studio 八月更新已发布 —— 更智能的人工智能、更出色的调试功能以及更多控制权
  • python+selenium+PO模式
  • Excel表格如何制作?【图文详解】表格Excel制作教程?电脑Excel表格制作?
  • 【基于CNN的57类交通标志识别系统】
  • 【深度学习新浪潮】Nano Banana(Gemini 2.5 Flash Image)技术解析与开发者实操指南
  • 【Qt开发】显示类控件(二)-> QLCDNumber
  • 三角孔径衍射误差难分析?OAS 软件深度仿真解难题
  • 鸿蒙Next Web组件生命周期详解:从加载到销毁的全流程掌控
  • 【从0开始学习Java | 第17篇】集合(中-Set部分)
  • 【AI指导】Python实现prophet模型的业绩预测
  • RPA-4.0.0.0_SAAS新版本已上线,Edge扩展自动安装,快速实现RPA流程自动化
  • Server 13 ,CentOS 上使用 Nginx 部署多个前端项目完整指南( 支持多端口与脚本自动化 )
  • Java后端测试
  • Skywork-OR1:昆仑万维开源的数学代码推理系列模型
  • 【Linux】基本指令 · 上
  • OBS插件详细教程:OBS美颜插件下载,OBS美颜插件怎么用?
  • 如何在 Spring Boot 中指定不同的配置文件?