计算机网络学习笔记(七)——传输层、TCP三次握手、四次挥手、TCP流量控制、大总结

文章目录

  • 前言
  • 概念
    • 一、传输层概述
    • 二、传输层问题
    • 三、端到端寻址
    • 四、TCP三次握手和四次挥手
      • (一)三次握手建立连接
      • (二)四次挥手拆除连接
    • 五、带拥塞的TCP流量控制
    • 六、传输层实例
    • 计网大总结思维导图
  • 参考资料

前言

笔者系电子科技大学2019级在读本科生,针对本学期学校开设的计算机通信网课程,将学习笔记以博客形式上传到CSDN上以便日后复习整理,其中的瑕疵欢迎大家向我指正,在评论区多多交流讨论。(考后整理笔记,这波是《朝 花 夕夕夕夕夕 拾》)完结撒花

概念

一、传输层概述

传输层服务:屏蔽具体网络细节和不同网络的差异,为上层提供与具体网络无关的通信服务。

功能:各种网络的适配,网络通信的分流和复用(让多个应用程序同时使用一个网络接口),多个并发通信的管理、流量控制等。

传输层实体
在传输层上提供传输服务的硬件或软件称为传输实体,传输实体可能在①操作系统内核中,或在②一个单独的用户进程内,也可能包含③在网络应用的程序库中,或是④位于网络接口卡上。传输服务也分为面向连接和无连接两类,分别和网络层上的面向连接和无连接服务类似。
协议:TCP、UDP、RTP、SCTP、TP4
面向连接、面向无连接
在这里插入图片描述
服务质量(QoS)
在这里插入图片描述

二、传输层问题

在这里插入图片描述
传输层可以使网络层崩溃路由器恢复,但端系统崩溃的错误需要依靠更高层次来解决
在这里插入图片描述

三、端到端寻址

🔺TSAP采用平面型地址
TSAP在计算机中用端口号标识

三种端到端寻址方案

  1. “特服号码”的方案
    例:Telnet-23、SMTP-25、HTTP-80
  2. 服务器进程在相应的端口上侦听
    “前台接待“的方案-统一的前台进程,由前台将客户分流到具体的服务端口
  3. “查号台“的方案
    类似DNS,服务器进程在相应的端口上侦听

四、TCP三次握手和四次挥手

(一)三次握手建立连接

三次握手解决问题:长延时+重复报文

连接的序号
利用序号差判断生命周期
(1) 窗口上沿 > 当前序号 - 生命期
(2) 窗口下沿 < 当前序号 +生命期
(3) 生命期 > (RTT *序号粒度)/2
(4) 序号粒度:单位时间内报文的平均数量

定原则
(1) 新连接必须在旧连接结束后T生命期才能建立连接
(2) 新连接的起始序号不能总从0开始
随机值,概率上保证新的起始序号 > 旧结束 + 生命期
加快报文序号递增速度,超过序号粒度——TCP以数据流的首字节位置为序

报文序号问题三次握手中商定的起始序号,一定要和上一个连接中使用的序号有足够的距离,避免长延时报文的误入

在这里插入图片描述
在这里插入图片描述

(二)四次挥手拆除连接

释放策略:(1)非对称释放-一方(2)对称释放-双方
在这里插入图片描述
保底措施
(1) 确认丢失:发送的拆链指令超时未得到确认,拆除。
(2) 释放连接指令丢失:超时没收到对方的数据,拆除。

五、带拥塞的TCP流量控制

TCP流控——基于收方缓存状态反馈的流控
🔺发送方根据往返延时窗口大小,计算单位时间的流量(不同端的连接分配的窗口大小不一样)

核心问题:网络存储化导致往返延时变化大

动态往返延时——RTT(Round-Trip Time)的测量

在这里插入图片描述
频繁测量并平滑处理(低通滤波)

SRTT = α * SRTT +(1-α)*R R为当前测量的RTT,α = 0.875

动态RTO(超时重传)

构造平滑公式——变化因子|SRTT – RTT|
RTTVar = β * RTTVar +(1-β)*|SRTT -RTT|
RTO = SRTT +4*RTTVar

极端情况——小报文数量消减
Nagle算法:延迟发送、Clark算法:延迟应答
拥塞控制技术
(1) 慢启动:起点低,指数翻倍增加
(2) 拥塞避免:到上限后每次增加1个MMS
(3) 拥塞检测:三个重复确认;TCP Tahoe-回到慢启动(废弃)、TCP Reno-乘法减小,加法增大;其他算法:TCP Reno、TCP Veno、TCP new Veno

六、传输层实例

TCP协议
在这里插入图片描述
TCP三次握手和四次挥手
在这里插入图片描述
UDP
在这里插入图片描述
RTP-基于UDP的实时多媒体应用
(1) 时间相关性:报文中时间戳字段
(2) 多媒体混合:有效载荷类型、有效载荷可包含多个采样值、多个数据流复用到一个UDP数据包流
SCTP-基于报文的可靠传输协议
DTN-用于太空网的延迟容忍网络协议

计网大总结思维导图

在这里插入图片描述

参考资料

中国大学MOOC电子科技大学计算机通信网络
计算机网络(第五版) 清华大学出版社 严伟、潘爱民 译

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

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

相关文章

开发接口文档_更优更稳更好,看文档驱动开发模式在AIMS中的优势

​【摘要】程序员常会说&#xff1a;我最讨厌别人写的代码没有文档&#xff0c;我也最讨厌自己需要写文档。有一个很老的梗: 我最讨厌别人写的代码没有文档&#xff0c;我也最讨厌自己需要写文档。有这种想法的程序员应该算是一个老鸟了&#xff0c;对于大多数程序员来说&#…

人声处理_人声美化:人声后期处理方法

最近在整理美声方面的相关资料&#xff0c;主要是EQ方法的搜集和归纳。声音的压限&#xff08;压缩处理&#xff09;、均衡、混响是做好人声处理的关键。[1]&#xff11;Ultrafunk fx: Equalizer R3&#xff08;均衡&#xff09;声音过暗会感觉吐词含糊不清&#xff0c;声音过亮…

计算机网络项目——最小网元设计(阶段二)

目录阶段目标设计描述1、帧结构2、帧定位3、差错检测4、差错控制5、流量控制6、长帧传输——分片测试情况其他想说的话阶段目标 用链路层例程代码&#xff08;LnkTester.sln&#xff09;设计实现链路层上点到点之间的通信过程&#xff0c;具体包括&#xff1a;两点之间帧同步、…

计算机网络项目——最小网元设计(阶段三)

目录阶段目标设计描述1、帧结构2、按目的转发3、反向地址学习4、未知广播测试情况其他想说的话阶段目标 本阶段主要完成链路层交换机的功能实现&#xff1a;单播目的地址判收、支持广播、有端口地址表、反向地址学习&#xff0c;并在含交换机的多网元情况下完成测试。 设计描…

计算机网络项目——最小网元设计(阶段四)

目录阶段目标设计描述1、实体编址2、路由表设计3、路由配置4、路由器的存储转发5、端到端的图片传输测试情况其他想说的话阶段目标 本阶段需要对实体进行编址&#xff0c;实现NET层的IP地址到MAC层地址的映射&#xff0c;解决各层实体的标定区分和数据投递&#xff0c;同时网络…

扫一扫 移动端_移动端手机APP 身份证识别 手机扫一扫离线识别

证件识别是指能实现拍照自动输入身份信息&#xff0c;让用户完全告别手动输入身份证、驾驶证、行驶证等证件信息。它支持Android、 iOS 、Java、Linux等多终端形式接入&#xff0c;电 一山一&#xff0c;领九九&#xff0c;六八九八菱还能通过多样化的结果输出&#xff0c;满足…

figma应用——面向用户的咖啡点单APP的设计过程记录

目录概述设计阶段1、Brainstorm2、用户分析&#xff08;1&#xff09;用户画像&#xff08;2&#xff09;竞品分析&#xff08;3&#xff09;用户旅程地图&#xff08;4&#xff09;用户需求分析3、点单APP的demo设计&#xff08;1&#xff09;整体布局逻辑概览&#xff08;2&a…

打docker镜像_使用docker构建自己的镜像

在docker中&#xff0c;我们使用docker build构建一个新的镜像&#xff0c;构建镜像之前需要去编写Dockerfile这个文件才能否建一个新的镜像。官方文档&#xff1a;https://docs.docker.com/engine/reference/builder/#fromFROM&#xff1a;用于指定基础镜像RUN&#xff1a;构建…

3d打印主要的切片参数类型_3D打印混凝土工艺参数对成型精度的影响

3D打印混凝土技术作为新兴技术&#xff0c;由于其不需要模板&#xff0c;节省大量劳动力和可打印复杂造型的特点&#xff0c;得到了大家的关注。但是&#xff0c;利用3D打印技术建造想要的结构&#xff0c;成型精度是必须考虑的一个问题。成型精度受材料性能、打印设备及打印工…

web中hasmoreelements_Web开发模式【Mode I 和Mode II的介绍、应用案例】

开发模式的介绍在Web开发模式中&#xff0c;有两个主要的开发结构&#xff0c;称为模式一(Mode I)和模式二(Mode II).首先我们来理清一些概念吧&#xff1a;DAO(Data Access Object)&#xff1a;主要对数据的操作&#xff0c;增加、修改、删除等原子性操作。Web层&#xff1a;界…

网络传输大端序_大端、小端与网络字节序

大端(Big-Endian)&#xff0c;小端(Little-Endian)以及网络字节序的概念在编程中经常会遇到&#xff0c;网络字节序(Network Byte Order)一般是指大端(Big-Endian&#xff0c;对大部分网络传输协议而言)传输&#xff0c;大端小端的概念是面向多字节数据类型的存储方式定义的&am…

cupload怎么保存图片_原生js的图片上传插件cupload

插件描述&#xff1a;支持图片预览、像素限制、大小限制、多图上传、更新模式下页面初始化加载图片更新时间&#xff1a;2020-09-25 00:23:49更新说明&#xff1a;添加 删除时&#xff0c;同时删除服务器图片的功能&#xff0c;文档提供php实例。添加参数Url参数更新 {ele: &q…

mysql 半同步_mysql 主从同步 与 半同步

mysql主从同步复制定义主从同步使得数据可以从一个数据库服务器复制到其他服务器上&#xff0c;在复制数据时&#xff0c;一个服务器充当主服务器(master)&#xff0c;其余的服务器充当从服务器(slave)。通过配置文件&#xff0c;可以指定复制所有的数据库&#xff0c;某个数据…

java mysql jsp分页代码_JAVA/JSP学习系列之六(MySQL翻页例子)

JAVA/JSP学习系列之六(MySQL翻页例子)更新时间&#xff1a;2006年10月13日 00:00:00 作者&#xff1a;一、运行前准备下载了mysql的jdbc驱动(一个jar文件)并加载在CLASSPATH(方法见《JAVA/JSP学习系列之一(JDK安装) 》)(如果找不到&#xff0c;请从本站下载)建一个MySQL数据库…

gcn代码pytorch_GCN的简单实现(pytorch)

import torch import torch.nn as nn import torch.nn.functional as Fimport networkx as nxdef normalize(A , symmetricTrue):# A AIA A torch.eye(A.size(0))# 所有节点的度d A.sum(1)if symmetric:#D D^-1/2D torch.diag(torch.pow(d , -0.5))return D.mm(A).mm(D)e…

当电压放大电路的开路增益和输出电阻固定后_放大器的设计基础

放大器是电子电路(尤其是模拟电路)中的主要构件之一&#xff0c;使用放大器&#xff0c;它们会提高信号电平。放大器是一个术语&#xff0c;用于描述增加输入信号强度的电路。放大器广泛用于从音频应用到射频应用的各个领域中。但是&#xff0c;对于所有放大器&#xff0c;无论…

mysql数据库 auto_increment_mysql数据库 auto_increment

MySQL内核月报 2014.09-MySQL 捉虫动态auto_increment背景&#xff1a;Innodb引擎使用B_tree结构保存表数据&#xff0c;这样就需要一个唯一键表示每一行记录(比如二级索引记录引用)。Innodb表定义中处理主键的逻辑是&#xff1a;1.如果表定义了主键&#xff0c;就使用主键唯一…

linux 嵌入式 快照_Linux 系统之Systemd

标签&#xff1a;子贡问为仁。子曰&#xff1a;“工欲善其事&#xff0c;必先利其器。居是邦也&#xff0c;事其大夫之贤者&#xff0c;友其士之仁者。”——孔子(春秋)《论语卫灵公》【工欲善其事&#xff0c;必先利其器】掌握一门技术&#xff0c;知道其发展历程是非常重要的…

myeclipse打包java文件_MyEclipse将Java项目打包成jar文件的三种方法

方案一&#xff1a;用Eclipse自带的Export功能步骤1&#xff1a;准备主清单文件 “MANIFEST.MF”&#xff0c;由于是打包引用了第三方jar包的Java项目&#xff0c;故需要自定义配置文件MANIFEST.MF&#xff0c;在该项目下建立文件MANIFEST.MF&#xff0c;内容如下&#xff1a;M…

java程序模拟atm机_Java项目实现模拟ATM机

本文实例为大家分享了Java实现模拟ATM机的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下项目名称模拟ATM机项目描述简单实现ATM机功能代码实现测试类public class Test {//模拟多功能ATM机public static void main(String[] args) {ATM atm new ATM();atm.opearte(…