计算机网络之传输层 + 应用层

.1 UDP与TCP

  • IP中的检验和只检验IP数据报的首部, 但UDP的检验和检验 伪首部 + 首部 + 数据
  • TCP的交互单位是数据块, 但仍说TCP是面向字节流的, 因为TCP仅把应用层传下来的数据看成无结构的字节流, 根据当时的网络环境组装成大小不一的报文段.
  • 10秒内有1秒用于发送端发送数据, 信道利用率就是10%
  • TCP报文段由首部和数据部分组成, 紧急位URG的作用就是将紧急指针所指示的数据放到数据部分的最前面

2.1 DNS系统

  • 域名由点和标号(label)组成, 点分割的即是标号
  • 每个标号不超过63个字符,总计不超过255个字符, 并且不区分大小写
  • 顶级域名TLD(Top Level Domain)分为三类, 国家顶级域名nTLD, 通用顶级域名gTLD, 基础结构域名ID(Infrastructure Domain). 基础结构域名只有一个即 arpa. 用于反向域名解析, 因此被称为反向域名
  • 2011年开始, 顶级域名TLD新增了一类新通用顶级域名(New gTLD)
  • 域名服务器管辖范围(或有权限的)以区 (zone) 为单位, 而非域(domain)。各单位根据具体情况来划分自己管辖范围的区, 但在一个区中的所有节点必须是能够连通的。管辖一个区的服务器就是权限域名服务器, 后有详细叙述
    实际上也很好理解, 例如对于一个com顶级域名, 其下辖的二级域名可能以亿单位, 这时我们当然不可能用一台com顶级域名服务器就全部管辖. 区≤域
    在这里插入图片描述
  • 域名服务器可以划分为四种类型: 根/顶级/权限/本地域名服务器.
    其中根域名服务器知道所有顶级域名服务器的域名和ip, 即根域名服务器可以解析所有com/org等顶级域名.
    根域名服务器一共有13台(A~M), 每台又由许多物理节点组成, 这些物理节点会分布在世界各地.
    每台根域名服务器的IP地址和域名都是不同的, 但同一台内的所有物理节点的IP地址都是相同的, 因此采用了任播(anycast)技术后, 会自动寻找IP地址相同, 但距离最近的物理节点.
  • 每台域名服务器都会有一些分布式备份, 其中只能在主域名服务器中进行数据更改, 辅助域名服务器是备份.
  • 每台域名服务器都启用了高速缓存
  • 主机中也启用了高速缓存, 例如在开机后自动从本地域名服务器下载全部数据

.2 HTTP协议

  • n个文档的传输时间为 : n X (2RTT + 文本传输时间), 因此HTTP1.1版本后使用了持续连接(Persistent Connection). 持续连接又分为非流水线方式(Without Pipelining)和流水线方式(With Pipelining).
    在这里插入图片描述
  • 非流水方式指的是, 客户端必须要收到上一个请求的响应后, 才能发出下一个请求.
    相比非持续连接, n个文档传输能省去 n-1 个建立TCP连接的RTT.
    n个文档的传输时间为 : (RTT +nRTT + n X 文本传输时间),
  • 流水方式中, 由于没有限制请求必须在响应之后发送, 因此文档传输的时间不定.最好的情况下, 客户端一次性发送完所有请求, 传输时间为2RTT+ n X 文本传输时间
  • HTTP1.1 版本的一个缺点是, 即使客户端可以一次性发送多个请求, 但服务器只能按照请求的顺序逐一回复, 如果某一请求耗时特别长, 就会阻塞后面的请求
    HTTP2 版本中, 服务器可以并行发回所有响应, 而不必按序.
  • HTTP2 版本中, 把所有报文划分为二进制编码的帧

.3 文件传送协议

基于TCP的文件传输协议FTP(File Transfer Protocol)和基于UDP的简单文件传输协议TFTP(Trivial)共同的特点是: 任何操作都要先获得一个本地副本文件, 任何修改都要先在副本文件上进行.
举个例子, A想要在B的某个文件最后新增一个字母, 则必须先要将文件传输到A, A完成修改后再回传覆盖.

.3.1 TFTP

TFTP主要有以下特点:

  • 传输数据块大小为512字节。
  • 只支持读取和写入两种操作。
  • 没有用户身份验证、加密和完整性校验功能。
  • 使用UDP作为传输层协议,不保证可靠性
  • 默认使用69号端口。

TFTP的工作过程很像停止等待协议,发送完一个文件块后就等待对方的确认,确认时应指明所确认的块号。
发送完数据后在规定时间内收不到确认就要重发数据PDU,发送确认PDU的一方在规定时间内收不到下一个文件块,也要重发确认PDU。这样保证文件的传送不致因某一个数据报的丢失而告失败。

.4 P2P

  • 在BT中, 使用"最稀有的优先(rarest first)" 技术优先请求最稀有的文件块, 避免之后收集不到
  • 在BT中, 还运用了对等传输的思想. 如果A以最高速率向B发送文件, B 也会将A的优先级设为最高.

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

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

相关文章

【Python】进阶学习:pandas--groupby()用法详解

📊【Python】进阶学习:pandas–groupby()用法详解 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈…

Python算法100例-3.5 亲密数

1.问题描述2.问题分析3.算法设计4.确定程序框架5.完整的程序6.问题拓展 1.问题描述 如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子(包括1,不包括B本身)之和…

中国电子学会2020年6月份青少年软件编程Sc ratch图形化等级考试试卷四级真题。

第 1 题 【 单选题 】 1.执行下面程序,输入4和7后,角色说出的内容是? A:4,7 B:7,7 C:7,4 D:4,4 2.执行下面程序,输出是&#xff…

CVE-2016-5195 复现记录

文章目录 poc前置知识页表与缺页异常/proc/self/mem的写入流程madvise 漏洞点修复 Dirty COW脏牛漏洞是一个非常有名的Linux竞争条件漏洞,虽然早在2016年就已经被修复,但它依然影响着众多古老版本的Linux发行版,如果需要了解Linux的COW&#…

Redis7 实现持久化的三种方式

1、概述 1.1、Redis持久化的重要性 数据恢复:Redis是一个内存数据库,如果系统或服务宕机,内存中的数据将会丢失。Redis的持久化机制可以把数据保存到磁盘上,以便在系统重启后恢复数据。这是Redis持久化最基本也是最重要的功能。…

JCL中IEFBR14和COND

JCL中IEFBR14和COND ​ COND CODE,就是反映JCL中STEP运行状态的参数,JCL正常终了的COND CODE 是0000,另外笔者在执行某些工具JCL时候,比方说简单一个COMPARE吧,可能会出现0012、0004或者0016,0001&#xf…

数据结构:栈和队列的实现附上源代码(C语言版)

目录 前言 1.栈 1.1 栈的概念及结构 1.2 栈的底层数据结构选择 1.2 数据结构设计代码(栈的实现) 1.3 接口函数实现代码 (1)初始化栈 (2)销毁栈 (3)压栈 (4&…

金三银四求职攻略:如何在面试中脱颖而出

随着春天的脚步渐近,对于众多程序员来说,一年中最繁忙、最重要的时期也随之而来。金三银四,即三月和四月,被广大程序员视为求职的黄金时段。在这段时间里,各大公司纷纷开放招聘,求职者们则通过一场又一场的…

初阶数据结构之---栈和队列(C语言)

引言 在顺序表和链表那篇博客中提到过,栈和队列也属于线性表 线性表: 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。线性表在逻辑上是线性结构,也就是说是连…

xxl-job--02--可视化界面各功能详细介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 可视化界面1 新增执行器2.新增任务**执行器**:**任务描述**:**路由策略**:**Cron**:cron表达式**运行模式**JobHandl…

java Springboot vue 健身房系统,简单练手项目

该项目主要分为管理员和会员模块 管理员具有:会员管理,器材管理,员工管理,健身课程管理 会员模块,可以在线报名健身课程,查看自己课程 采用VUE前端开发和springboot后端开发,极简代码编写,没…

ubuntu20.04安装docker及运行

ubuntu20.04安装docker及运行 ubuntu环境版本 Ubuntu Focal 20.04 (LTS) 查看系统版本 rootubuntu20043:~# cat /proc/version Linux version 5.15.0-78-generic (builddlcy02-amd64-008) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) …

Vue(黑马学习笔记)

Vue概述 通过我们学习的htmlcssjs已经能够开发美观的页面了,但是开发的效率还有待提高,那么如何提高呢?我们先来分析下页面的组成。一个完整的html页面包括了视图和数据,数据是通过请求从后台获取的那么意味着我们需要将后台获取…

通过XML调用CAPL脚本进行测试(新手向)

目录 0 引言 1 XML简介 2 通过XML调用CAPL脚本 0 引言 纪念一下今天这个特殊日子,四年出现一次的29号。 在CANoe中做自动化测试常用的编程方法有CAPL和XML两种,二者各有各的特色,对于CAPL来说新手肯定是更熟悉一些,因为说到在C…

Vue开发实例(五)修改项目入口页面布局

修改项目入口 一、创建新入口二、分析代码,修改入口三、搭建项目主页面布局1、Container 布局容器介绍2、创建布局3、布局器铺满屏幕4、创建Header页面5、加入Aside、Main和Footer模块 一、创建新入口 创建新的入口,取消原来的HelloWorld入口 参考代码…

剑指offer刷题记录Day2 07.数组中重复的数字 ---> 11.旋转数组的最小数字

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、重建二叉树①代码实现(带注释&am…

【重温设计模式】职责链模式及其Java示例

职责链模式的介绍 在开发过程中,我们经常会遇到这样的问题:一个请求需要经过多个对象的处理,但是我们并不知道具体由哪个对象来处理,或者说,我们希望由接收到请求的对象自己去决定如何处理或者是将请求传递给下一个对…

【深度学习笔记】计算机视觉——锚框

锚框 目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边界从而更准确地预测目标的真实边界框(ground-truth bounding box)。 不同的模型使用的区域采样方法可能不同。 这里…

吴恩达deeplearning.ai:正则化对于偏方差的影响制定用于性能评估的基准

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 这节我们看看正则化系数 文章目录 以线性回归为例交叉验证误差对于确定 λ \lambda λ的作用 指定用于性能评估的基准语音识别的例子 以线性回归为例 让我们举一个例子: 模型&am…

Outlook邮箱IMAP密码怎么填写?账户设置?

Outlook邮箱IMAP密码是什么?Outlook如何设置IMAP? 许多用户会选择通过IMAP协议将邮箱与各种邮件客户端进行连接。而在设置过程中,填写IMAP密码是必不可少的一步。那么,Outlook邮箱的IMAP密码应该如何填写呢?接下来&am…