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

传输层概述和分类

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

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

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

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

熟知端口号

复用分用

差错检测

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计算出最后的校验和之后要全部取反才是真正的检验和

相关推荐
tianyuanwo4 小时前
计算机网络设计:从基础到原则的体系化指南
计算机网络·路由器·交换机·1024程序员节
大象耶13 小时前
计算机视觉六大前沿创新方向
论文阅读·人工智能·深度学习·计算机网络·机器学习
蒙奇D索大14 小时前
【数据结构】数据结构核心考点:AVL树删除操作详解(附平衡旋转实例)
数据结构·笔记·考研·学习方法·改行学it·1024程序员节
易ლ拉罐15 小时前
【计算机网络】HTTP协议(二)——超文本传输协议
网络·计算机网络·http·1024程序员节
岑梓铭18 小时前
考研408《操作系统》复习笔记,第二章《2.3 进程调度》
笔记·考研·操作系统·os
Cathy Bryant1 天前
线性代数直觉(四):找到特征向量
笔记·神经网络·考研·机器学习·数学建模
小马哥编程1 天前
【软考架构】架构风格:RAG知识库是属于软件八大架构风格中的哪一个,黑板架构风格 ?规则系统体系风格?
大数据·计算机网络·架构·1024程序员节
希赛网2 天前
软考软件设计师常考知识点(12):计算机网络
网络协议·tcp/ip·计算机网络·ip·设计语言·软件设计师
【云轩】2 天前
[特殊字符] 软考架构师 vs. 考研408:全方位对比
考研
HenrySmale2 天前
计算机网络:物理层
网络·计算机网络