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

前言

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

五:传输层

王道计算机网络学习笔记(5)——传输层和应用层_第1张图片

5.1:传输层基本概述

传输层的功能:

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

王道计算机网络学习笔记(5)——传输层和应用层_第2张图片

2复用和分用

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

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

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

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

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

 王道计算机网络学习笔记(5)——传输层和应用层_第3张图片

传输层的端口

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

王道计算机网络学习笔记(5)——传输层和应用层_第4张图片

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

5.2:UDP协议 

主要特点:

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

王道计算机网络学习笔记(5)——传输层和应用层_第6张图片

 王道计算机网络学习笔记(5)——传输层和应用层_第7张图片

UDP首部格式

UDP长度:首部+数据字段

王道计算机网络学习笔记(5)——传输层和应用层_第8张图片

UDP校验

IP数据报格式和协议种类

王道计算机网络学习笔记(5)——传输层和应用层_第9张图片

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

王道计算机网络学习笔记(5)——传输层和应用层_第10张图片

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

TCP协议特点

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

TCP报文段首部格式

IP数据报格式、协议种类

王道计算机网络学习笔记(5)——传输层和应用层_第11张图片

UDP首部

王道计算机网络学习笔记(5)——传输层和应用层_第12张图片

TCP首部

序号、确认号、数据偏移

王道计算机网络学习笔记(5)——传输层和应用层_第13张图片

6个控制位

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

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

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

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

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

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

王道计算机网络学习笔记(5)——传输层和应用层_第14张图片

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

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

王道计算机网络学习笔记(5)——传输层和应用层_第15张图片

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

王道计算机网络学习笔记(5)——传输层和应用层_第16张图片

5.3.2:TCP的连接管理

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

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

TCP连接:

王道计算机网络学习笔记(5)——传输层和应用层_第17张图片

TCP的释放:

王道计算机网络学习笔记(5)——传输层和应用层_第18张图片

 

5.3.3:TCP的可靠传输

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

TCP首部数据结构

王道计算机网络学习笔记(5)——传输层和应用层_第19张图片

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

王道计算机网络学习笔记(5)——传输层和应用层_第20张图片

序号:

确认:

王道计算机网络学习笔记(5)——传输层和应用层_第21张图片

 王道计算机网络学习笔记(5)——传输层和应用层_第22张图片

超时重传

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

王道计算机网络学习笔记(5)——传输层和应用层_第23张图片

冗余ACK、快速重传

王道计算机网络学习笔记(5)——传输层和应用层_第24张图片

5.3.4:TCP流量控制

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

王道计算机网络学习笔记(5)——传输层和应用层_第25张图片

TCP首部数据格式

王道计算机网络学习笔记(5)——传输层和应用层_第26张图片

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

王道计算机网络学习笔记(5)——传输层和应用层_第27张图片

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

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

王道计算机网络学习笔记(5)——传输层和应用层_第28张图片

5.3.5:TCP的拥塞控制

出现拥塞的条件

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

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

王道计算机网络学习笔记(5)——传输层和应用层_第29张图片

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

两个假定:

王道计算机网络学习笔记(5)——传输层和应用层_第30张图片

接收窗口和拥塞窗口:

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

王道计算机网络学习笔记(5)——传输层和应用层_第31张图片

快重传和快恢复

王道计算机网络学习笔记(5)——传输层和应用层_第32张图片

六:应用层

6.1:网络应用模型

王道计算机网络学习笔记(5)——传输层和应用层_第33张图片

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

王道计算机网络学习笔记(5)——传输层和应用层_第34张图片

常见端口号:

王道计算机网络学习笔记(5)——传输层和应用层_第35张图片

两种网络应用模型

王道计算机网络学习笔记(5)——传输层和应用层_第36张图片

C/S模型

王道计算机网络学习笔记(5)——传输层和应用层_第37张图片

P2P模型

王道计算机网络学习笔记(5)——传输层和应用层_第38张图片

6.2:域名解析系统DNS

DNS将域名转换成IP地址

王道计算机网络学习笔记(5)——传输层和应用层_第39张图片

 域名:

王道计算机网络学习笔记(5)——传输层和应用层_第40张图片

 顶级域名:

王道计算机网络学习笔记(5)——传输层和应用层_第41张图片

 二级域名:

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

王道计算机网络学习笔记(5)——传输层和应用层_第42张图片

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

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

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

王道计算机网络学习笔记(5)——传输层和应用层_第43张图片

王道计算机网络学习笔记(5)——传输层和应用层_第44张图片

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

王道计算机网络学习笔记(5)——传输层和应用层_第45张图片

常见应用程序端口号

王道计算机网络学习笔记(5)——传输层和应用层_第46张图片

FTP工作原理

王道计算机网络学习笔记(5)——传输层和应用层_第47张图片

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:电子邮件

王道计算机网络学习笔记(5)——传输层和应用层_第48张图片

组成结构(SMTP发、POP3收)

王道计算机网络学习笔记(5)——传输层和应用层_第49张图片

 王道计算机网络学习笔记(5)——传输层和应用层_第50张图片

王道计算机网络学习笔记(5)——传输层和应用层_第51张图片

邮局协议POP3

王道计算机网络学习笔记(5)——传输层和应用层_第52张图片

 王道计算机网络学习笔记(5)——传输层和应用层_第53张图片

网际报文存取协议IMAP

王道计算机网络学习笔记(5)——传输层和应用层_第54张图片

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

王道计算机网络学习笔记(5)——传输层和应用层_第55张图片

6.5:万维网和http协议

王道计算机网络学习笔记(5)——传输层和应用层_第56张图片

域名

王道计算机网络学习笔记(5)——传输层和应用层_第57张图片

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

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

王道计算机网络学习笔记(5)——传输层和应用层_第58张图片

超文本传输协议http

王道计算机网络学习笔记(5)——传输层和应用层_第59张图片

Cookie

王道计算机网络学习笔记(5)——传输层和应用层_第60张图片

非持久连接、持久连接

王道计算机网络学习笔记(5)——传输层和应用层_第61张图片

 HTTP的报文结构

王道计算机网络学习笔记(5)——传输层和应用层_第62张图片

王道计算机网络学习笔记(5)——传输层和应用层_第63张图片 

 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协议的基本数据格式,不同的请求和响应可能会有不同的头字段和数据内容 

总结

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

 

你可能感兴趣的:(计算机网络笔记,计算机网络,学习,笔记)