王道计算机网络学习笔记(5)——传输层和应用层

news2024/11/24 20:11:47

前言

文章中的内容来自B站王道考研计算机网络课程,想要完整学习的可以到B站官方看完整版。

五:传输层

5.1:传输层基本概述

传输层的功能:

1传输层提供进程和进程之间的逻辑通信

2复用和分用

微信和QQ都使用传输层的协议进行发送数据(复用);其他主机通过微信和QQ给我发送信息时也是通过传输层的协议,但是最后数据会分别发送到微信和QQ对应的进程(分用)。

3:传输层对收到的报文进行差错检测

4:传输层的两个协议(TCP/UDP

TCP:可靠、面向连接、时延大、适合大文件

UDP:不可靠、无连接、时延小、适合小文件

 

传输层的端口

端口是传输层用来标识主机中的应用进程,端口号长度为16位,能表示65536个不同的端口号

 

5.2:UDP协议 

主要特点:

无连接、不可靠、面向报文适合一次性传输少量数据、无拥塞控制适合很多实时应用、首部开销小只需要8BTCP首部需要20B。

 

UDP首部格式

UDP长度:首部+数据字段

UDP校验

IP数据报格式和协议种类

 使用伪首部来校验UDP、伪首部数据格式(只在接受双方进行校验时才出现,不会进行传递)

5.3.1:TCP协议特点和TCP报文段格式

TCP协议特点

面向连接、TCP连接只能是点对点、可靠有序不丢不重、全双工通信(有发送缓存和接收缓存)、面向字节流(流:流入到进程或从进程流出的字节序列)

TCP报文段首部格式

IP数据报格式、协议种类

UDP首部

TCP首部

序号、确认号、数据偏移

6个控制位

紧急位URGurgent):发送紧急数据,不用在缓存里排队

确认位ACKacknowledgement):在连接建立后所有传送的报文段都必须把ACK置为1

推送位PSHpush):接收方尽快交付接收应用进程,不再等到缓存填满再向上交付

复位RSTreset):标明TCP连接中出现严重差错,必须释放连接,然后再重新建立连接

同步位SYNsynchronous):表明是一个连接请求/连接接受报文

终止位FINfinish):表明次报文段发送方数据已发完,要求释放连接

窗口:指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量

检验和:检验首部和数据,检验时要加上12B的伪首部,第四个字段是6

紧急指针:当URG = 1时有效,指出本报文段中紧急数据的字节数

5.3.2:TCP的连接管理

TCP连接传输的三个阶段(连接建立、数据传送、连接释放)

TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器

TCP连接:

TCP的释放:

 

5.3.3:TCP的可靠传输

可靠:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的

TCP首部数据结构

TCP实现可靠传输的机制(校验、序号、确认、重传)

序号:

确认:

 

超时重传

重传时间:TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)

冗余ACK、快速重传

5.3.4:TCP流量控制

数据链路层讲过的三种流量控制方式

TCP首部数据格式

发送方的发送窗口取决于接收窗口rwnd拥塞窗口cwnd的最小值

当接收方给发送方发送一个rwnd = 0的报文段,过了一段时间接收方想给发送方重新发送一个rwnd != 0的报文段但是在中途丢失了,这时发送端的窗口长度还是为0就可能会造成操作系统死锁的现象(接收方想要发送方发数据,但是发送方有一直在等接收方重新调整自己的发送窗口长度)

TCP协议会为每一个连接设有一个计时器

5.3.5:TCP的拥塞控制

出现拥塞的条件

拥塞控制和流量控制的区别

拥塞情况不知道是哪几台主机发送过多造成的,发送方很多数据迟迟到不了接收方;而流量控制是一个点到点的过程,发送方发送速度过快而接收方的接收缓存不够。

拥塞控制的四种算法(慢开始、拥塞避免、快重传、快恢复)

两个假定:

接收窗口和拥塞窗口:

慢开始和拥塞避免(造成网络拥塞之后,初始值重设为1,门限值变原来的一半)

快重传和快恢复

六:应用层

6.1:网络应用模型

应用层对应用程序的通信提供服务

常见端口号:

两种网络应用模型

C/S模型

P2P模型

6.2:域名解析系统DNS

DNS将域名转换成IP地址

 域名:

 顶级域名:

 二级域名:

 域名服务器:(根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器)

域名解析过程(递归查询和迭代查询)

递归查询:叫别人找最后返回给本地域名服务器

迭代查询:本地域名服务器自己一层层地找

6.3:文件传输协议FTP(要和SFTP区分开、SFTP是基于SSH,端口号是22)

常见应用程序端口号

FTP工作原理

FTP、SFTP和SSH是三种不同的协议,其关系如下:

1:FTP是一种标准的网络协议,用于在客户端和服务器之间传输文件。

2:SFTP是一种基于SSH协议的加密协议,用于在客户端和服务器之间传输文件,可以保证传输的安全性。

3:SSH是一种安全协议,用于在客户端和服务器之间进行加密通信,可以保证通信的安全性。

在Linux系统下,可以通过以下方式使用这三种协议:

1:FTP:使用命令行工具如ftp或ncftp,或者使用GUI工具如FileZilla等。:

2:SFTP:同样可以使用命令行工具如sftp或psftp,或者使用GUI工具如FileZilla等。需要注意的是,SFTP需要在服务器上配置SSH服务。

3:SSH:使用命令行工具如ssh或putty等进行远程登录或执行命令。

6.4.1:电子邮件

组成结构(SMTP发、POP3收)

 

邮局协议POP3

 

网际报文存取协议IMAP

基于万维网的电子邮件(HTTP和SMTP相组合)

6.5:万维网和http协议

域名

万维网WWW(world wide web),是无数个网络站点和网页的集合

统一资源定位符URL可以唯一标识资源(文字、视频、音频)

超文本传输协议http

Cookie

非持久连接、持久连接

 HTTP的报文结构

 

 HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议。它使用TCP/IP作为传输协议,通过客户端和服务器之间的请求和响应来进行通信。 

1. 请求行:包含请求方法、请求的URL和HTTP协议的版本。例如:GET /index.html HTTP/1.1

2. 请求头:包含一些附加的信息,如请求的主机、用户代理、内容类型等。每个头字段都以键值对的形式出现,用冒号分隔。例如:Host: www.example.com

3. 空行:请求头和请求体之间需要有一个空行。

4. 请求体:可选的,用于传输请求的数据,如表单数据、文件等。

5. 响应行:包含响应的状态码和状态消息。例如:HTTP/1.1 200 OK

6. 响应头:与请求头类似,包含一些附加的信息,如服务器类型、内容长度、响应时间等。

7. 空行:响应头和响应体之间需要有一个空行。

8. 响应体:包含服务器返回的数据,如HTML页面、图片、JSON数据等。

以上是HTTP协议的基本数据格式,不同的请求和响应可能会有不同的头字段和数据内容 

总结

以上是本文的全部内容,非常感谢你能看到这。

 

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

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

相关文章

设计模式-外观模式在Java中的使用示例

场景 外观模式 外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统 之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。 示例 自…

【区块链+体育】“数智化”的杭州亚运会,中创助力区块链技术发展

“智能”,是杭州亚运会的办赛理念之一。除了数字藏品开亚运先河,杭州亚组委充分应用区块链、大数据、人工智能等前沿技术,为观众提供从购票、出行、观赛到住宿、美食和旅游等“一站式”服务。 本次亚运会将全程智能陆续落到了实处&#xff0…

10亿级用户,如何做 熔断降级架构?微信和hystrix的架构对比

说在前面 在40岁老架构师 尼恩的读者社区(50)中,最近有小伙伴拿到了一线互联网企业如极兔、有赞、希音、百度、网易、滴滴的面试资格,遇到一几个很重要的面试题: (1) 什么是熔断,降级?如何实现? (2) 服务熔…

测试用例(2)

项目管理工具 主要用tapd,jira少用 acp 敏捷项目管理证书 task:故事,一个故事有开始也有结束,那么在项目管理里面,会把每个任务按照一个task来看,那么这个task也可以叫story,具体指的就是任务有开始有结…

利用鸿鹄优化共享储能的SCADA 系统功能,赋能用户数据自助分析

摘要 本文主要介绍了共享储能的 SCADA 系统大数据架构,以及如何利用鸿鹄来更好的优化 SCADA 系统功能,如何为用户进行数据自助分析赋能。 1、共享储能介绍 说到共享储能,可能不少朋友比较陌生,下面我们简单介绍一下共享储能的价值…

数组的递归筛选

数组递归筛选 根据一个值筛选出来通过 includes 递归 const options [{name: "ikun",options: [{name: "YAY11",},],},{name: "YAY",}, ];function findValue(orgOptions,val) {let newArr1 []orgOptions.forEach(item>{if(item.options…

费尔法克斯水务通过使用 Liquid UI 移动化和定制 SAP PM 来提高收入和数据完整性

背景 费尔法克斯水务是北弗吉尼亚州地区领先的水县。它是华盛顿特区大都会区的三大供水商之一。它每天为近171万居民提供2.<>亿加仑的水。它渴望坚持其愿景&#xff0c;即保持以客户为中心&#xff0c;同时帮助维持该地区的高质量生活和经济状况。 挑战 由于桌面系统&…

Druid-排查conditionDoubleConstAllow配置问题(double const condition)

Druid-排查conditionDoubleConstAllow配置问题(double const condition) 报错信息 Caused by: java.sql.SQLException: sql injection violation, dbType postgresql, druid-version 1.2.18, double const condition : SELECT * FROM test where 11 AND TRUE AND TRUE关键词&…

02-线性结构2 一元多项式的乘法与加法运算

一个小时敲&#xff0c;五分钟改错。比一年前进步还是很大的。 但是如果测试点没有提示的话&#xff0c;改到哪年就不一定了( ◔︎ ‸◔︎) 思路 多项式加法&#xff0c;极其类似Merge &#xff08;测试点2&#xff1a;系数加完要是0的话就不用添入结果多项式里了~&#xff…

业务安全分析第19期 | 今年暑假,博物馆的门票为什么抢不到?

目录 “黄牛”&#xff1a;加价代预约、加价售票、兜售野导游套餐 “黄牛”倒票带来的危害 “黄牛”为什么能够抢到票 博物馆与“黄牛”的门票攻防 “黄牛”使用的作弊软件有什么特征 技术上防范“黄牛”的作弊软件抢票 遏制“黄牛”倒票给博物馆带来的收益 随着暑期参观…

电影《碟中谍7:致命清算(上)》观后感

上周看了电影《碟中谍7&#xff1a;致命清算&#xff08;上&#xff09;》&#xff0c;从电影名称就知道&#xff0c;这部电影会有下部&#xff0c;讲述科学进步之后&#xff0c;有AI引发的技术变革&#xff0c;出现了一种AI变体叫做智体的东西&#xff0c;它有自主意思&#x…

【代码随想录 | Leetcode | 第八天】哈希表 | 有效的字母异位词 | 两个数组的交集 | 两数之和

前言 欢迎来到小K的Leetcode|代码随想录|专题化专栏&#xff0c;今天将为大家带来哈希法~有效的字母异位词 | 两个数组的交集 | 两数之和的分享✨ 目录 前言242. 有效的字母异位词349. 两个数组的交集1. 两数之和总结 242. 有效的字母异位词 ✨题目链接点这里 给定两个字符串…

【Vue/element】 el-table实现表格动态新增/插入/删除 表格行,可编辑单元格

el-table实现表格动态新增/插入/删除 表格行&#xff0c;可编辑单元格 效果如下&#xff1a; 点击“新增一行”可以在表格最后新增一行&#xff0c;单元格内容可编辑 点击绿色按钮&#xff0c;可在指定行的后面插入一行 点击红色-按钮&#xff0c;可以删除指定行 原理&#…

【Spring 】执行流程解析:了解Bean的作用域及生命周期

哈喽&#xff0c;哈喽&#xff0c;大家好~ 我是你们的老朋友&#xff1a;保护小周ღ 今天给大家带来的是 Spring 项目的执行流程解析 和 Bean 对象的6 种作用域以及生命周期&#xff0c;本文将为大家讲解&#xff0c;一起来看看叭~ 本期收录于博主的专栏&#xff1a;JavaEE_保…

那些你必须知道的4个matlab小技巧(附最新安装包)

文末福利&#xff1a;MATLAB R2022b软件安装包 MATLAB 简介 01 一、MATLAB简介 数学类科技应用软件包括数值计算&#xff08;Number Crunching&#xff09;型软件和数学分析&#xff08;Math Analysis&#xff09;型软件 数值计算型软件 它们对大批数据具有较强的管理、计…

数据仓库建设-数仓分层

数据仓库能够帮助企业做出更好的决策&#xff0c;提高业务效率和效益&#xff1b;在数据仓库建设时&#xff0c;绕不开的话题就是数仓分层。 一、数据分层的好处 1. 降低数据开发成本 通用的业务逻辑加工好&#xff0c;后续的开发任务可以基于模型快速使用&#xff0c;数据需…

分布式定时任务组件:XXL-JOB

一、GitHub源码地址 https://github.com/xuxueli/xxl-job 二、部署文档 参考&#xff1a;https://blog.csdn.net/qq798867485/article/details/131415408 三、初始化数据库SQL 1、xxl_job_user XxlJob-用户管理 2、xxl_job_group XxlJob-执行器管理 3、xxl…

vue3+vite+pinia+vue-router+ol项目创建及配置

一、vite (一)、定义 vite官网 (二)、操作步骤 注意&#xff1a;两种方式创建目录结构一致 方式一&#xff1a;vite创建脚手架命令&#xff1a; 命令行&#xff1a;npm create vitelatest 然后选择 方式二&#xff1a;命令行直接声明带上vue 二、pinia (一)、定义 定义&#xf…

TortoiseGit 入门指南12:创建标签

前面的文章不止一次的提到过 标签 &#xff08;Tag&#xff09;&#xff0c;我们在《TortoiseGit 入门指南08&#xff1a;浏览引用以及在引用间切换》一文中知道&#xff0c;标签 是一种 引用&#xff1b;还知道每个提交都对应着一个 SHA-1 值&#xff0c;而引用就是 SHA-1 的一…

常见面试题之HashMap

1. 二叉树 1.1 二叉树概述 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只有左子节点&#xff0c;有的节…