文章收录在网站:http://hardyfish.top/
文章收录在网站:http://hardyfish.top/
文章收录在网站:http://hardyfish.top/
文章收录在网站:http://hardyfish.top/
TCP 和 UDP 分别对应的常见应用层协议有哪些?
TCP 对应的应用层协议
FTP:
- 定义了文件传输协议,使用 21 端口。
- 常说某某计算机开了 FTP 服务便是启动了文件传输服务。
- 下载文件,上传主页,都要用到 FTP 服务。
Telnet:
- 它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上
SMTP:
- 定义了简单邮件传送协议,现在很多邮件服务器都用的是这个协议,用于发送邮件。
POP3:
- 它是和 SMTP 对应,POP3 用于接收邮件。
HTTP:
- 从 Web 服务器传输超文本到本地浏览器的传送协议。
UDP 对应的应用层协议
DNS:
- 用于域名解析服务,将域名地址转换为 IP 地址。DNS 用的是 53 号端口。
SNMP:
- 简单网络管理协议,使用 161 号端口,是用来管理网络设备的。
- 由于网络设备很多,无连接的服务就体现出其优势。
TFTP(Trival File Transfer Protocal):
- 简单文件传输协议,该协议在熟知端口 69 上使用 UDP 服务。
什么是ICMP协议?
ICMP(Internet Control Message Protocol)是一种网络协议
- 它用于在 IP 网络中传递错误信息和控制消息。
- ICMP 是在 IP 协议的基础上构建的协议,它是在网络层进行通信的。
ICMP 主要有两个作用:
提供网络的错误报告机制:
- 当在网络通信中发生错误或故障时,ICMP 可以生成错误报告,并将报告发送给源主机。
- 比如,在路由选择失败、目标主机不可达或传输超时等情况下,会发送 ICMP 错误报告给源主机,通知发生了问题。
支持网络的控制消息:
- ICMP 还支持网络中的控制消息传递。
- 例如,ICMP 可以用于执行网络探测和诊断,如发起
Ping
命令(Echo 请求和Echo
响应)进行网络连通性测试。常见的 ICMP 消息类型包括:
- Echo 请求和 Echo 响应:用于网络探测和连接测试。
- 目标不可达:当一个数据包无法到达目标时,发送此消息通知源主机。
- 超时:当数据包经过一定时间后未能到达目标,发送此消息通知源主机。
- 重定向:用于告知主机优化数据包的传输路径。
- 时间戳请求和时间戳响应:用于进行时间同步。
ICMP 是一种非常重要的网络协议,在 IP 网络中起着诊断和通信的作用。
- 它协助网络管理员调试和定位问题,在网络通信中起到检测和响应错误的作用,提高网络的可靠性和效率。
谈谈你对 ARQ 协议的理解?
ARQ 全称 Automatic Repeat reQuest,中文意思是 自动重传请求,然后这个其实有好几种
- 比如你可能听说过停等ARO,连续ARQ,回退N步ARO,容易混淆,所以下面先说一下他们的一个概念。
自动重传请求分成为三种:
- 即停等式(stop-and-wait)ARQ,回退n帧(go-back-n)ARQ,以及选择性重传(selective repeat)ARQ。
后两种协议是滑动窗口技术与请求重发技术的结合
- 由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ协议。
所以我们又可以简单分成两种:
- 停止等待协议和连续 ARQ 协议,
停止等待协议是一种简单的
ARQ
协议,每当发送方发送一个数据包后,就会停止发送并等待接收方的确认信号。
- 只有收到确认信号后,发送方才会继续发送下一个数据包。
- 该协议的缺点是会浪费大量的时间在等待确认信号上。
连续 ARQ 协议是一种改进的
ARQ
协议,它可以在等待确认信号的同时,继续发送其他的数据包,可提高信道利用率。大概就是:发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。
- 接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了。
TCP 协议是如何保证可靠传输的?
应答机制:
- TCP协议采用应答机制,即发送端每发送一个数据包就会等待接收端的确认应答。
- 如果发送端在规定时间内没有收到确认应答,就会重新发送数据包,直到接收到确认应答为止。
超时重传:
- 当发送端发送数据包后,在规定时间内没有收到确认应答,就会进行超时重传,重新发送该数据包。
数据校验:
- TCP协议使用校验和机制对数据包进行校验,以保证传输的数据包没有被篡改。
- 接收端在接收到数据包后,会对其进行校验,如果发现校验和错误,则会丢弃该数据包,并通知发送端进行重传。
滑动窗口:
- TCP协议采用滑动窗口机制来控制发送端的发送速度,以避免发送过快导致接收端处理不过来。
- 发送端根据接收端的反馈,动态调整发送窗口的大小,以达到最优的传输速率。
流量控制:
- TCP协议通过流量控制机制来限制发送端的发送速度,以避免网络拥塞。
- 接收端可以通过发送窗口的大小来告诉发送端自己的接收能力,从而控制发送端的发送速度。
拥塞控制:
- TCP协议通过拥塞控制机制来避免网络拥塞。发送端根据网络的拥塞程度来调整发送速度
- 以避免过多的数据包在网络中造成拥塞。
- 同时,TCP协议还支持快速恢复和快速重传机制,以更快地适应网络拥塞的变化。
什么是流量控制?
TCP流量控制是一种内置于TCP协议的机制,用于防止发送方把接收方的缓冲区塞满,以避免数据丢失。
- 简单地说,就是保证发送者不会将数据发送得过快,导致接收者无法接收。
TCP流量控制的工作方式是每个TCP段都有一个窗口大小字段,这个字段告诉发送者接收端的可用缓冲区大小。
- 接收方通过更改这个窗口大小值来告诉发送方他还能接收多少数据。
- 如果接收方的缓冲区被填满了,它就会将窗口大小设置为0,这时发送方就会停止发送数据,直到接收方再次更新其窗口大小。
TCP 是如何实现流量控制的?
TCP实现流量控制主要依赖于滑动窗口机制。
滑动窗口不仅是一种流量控制手段,也是一种可靠传输的手段。
- 它的基本思想是:
- 每个TCP连接都有两个窗口,一个是发送窗口,另一个是接收窗口。
- 窗口大小是动态变化的。
发送窗口的大小由自己和接收方协商得出,不能超过接收窗口的大小。
- 当发送方发送数据时,会根据窗口的大小来确定可以发送的数据量。
- 当数据发送出去后,发送窗口就会向右滑动。
接收方在接收到数据后,会向发送方发送确认,确认号表示的是接收方期望接收的下一个数据字节的序号
- 同时还会告诉发送方自己的接收窗口大小。
如果接收方处理数据的速度慢,那么接收窗口的大小就会减小,甚至变为0
- 此时发送方就不能再发送数据,这样就实现了流量控制。
举个例子,假设你正在下载一个大文件,当你的硬盘写入速度跟不上网络下载速度时
- 你的计算机会告诉发送方减小发送窗口的大小,减慢发送数据的速度,这样你的硬盘就有足够的时间来处理这些数据。