IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> [计算机网络]十、TCP的拥塞控制和4个计时器、常用协议原理和命令 -> 正文阅读

[网络协议][计算机网络]十、TCP的拥塞控制和4个计时器、常用协议原理和命令

目录

1、常用协议原理和命令

1.1、查找协议的端口号?

1.2、arp协议

1.2.1、arp协议在工作的时候有2中类型的数据包

1.2.2、arp病毒的工作原理

1.3、TCP/IP详细图

2、TCP的流程控制

2.1、滑动窗口

2.2、拥塞控制

2.2.1、拥塞控制算法???

2.3、TCP的差错控制

3、计时器

3.1、重传计时器——为了控制丢失的数据段???

3.2、坚持计时器——为了防止零窗口死锁

3.3、保活计时器——防止两个TCP之间的连接长时间的空闲

3.4、时间等待计时器——连续终止期间使用的

4、TCP的应用

5、UDP的使用

5.1、UDP的封装格式

5.2、UDP的流控和差错控制

?6、TCP/IP协议栈


1、常用协议原理和命令

要记住的协议

  • http(Hyper Text Transfer Protocol):超文本传输协议 。端口号:80
  • https(Hyper Text Transfer Protocol Secure):安全超文本传输协议。端口号:443

http和https,可以理解为传输的内容是明文(http)和传输的内容是加密的(https)

  • ftp(File Transfer Protocol):文本传输协议。端口号:21
  • dns(Domain Name System):域名系统。端口号:53
  • smtp(Simple Mail Transfer Protocol):简单邮件传输协议。发邮件的。端口号:25
  • snmp(Simple Network Management Protocol):简单网络管理协议。端口号:161
  • tftp(Trivial File Transfer Protocol):普通文件传输协议,大部分用udp工作。端口号:69

1.1、查找协议的端口号?

[root@fttsaxf ~]# cat /etc/services|grep snmp  # 查找端口号
snmp            161/tcp                         # Simple Net Mgmt Proto
snmp            161/udp                         # Simple Net Mgmt Proto

1.2、arp协议

arp协议(Address resolution protocol):地址解析协议;工作在网络层,端口号出现在传输层,所以arp协议没有对应的端口号。

日常中,先使用dns解析协议得到IP地址然后再用arp协议得到MAC地址。例如:www....-->ip-->mac

作用:将IP地址解析为MAC地址

图中的缓存表是arp缓存表

[root@fttsaxf ~]# arp -a  # windows和linux的命令都是这个
? (192.168.29.1) at 00:50:56:c0:00:08 [ether] on ens33
gateway (192.168.29.2) at 00:50:56:ee:e5:6d [ether] on ens33

?

?

?

1.2.1、arp协议在工作的时候有2中类型的数据包

  • arp request(请求包)

  • arp response (响应包)

用封装的角度去理解,从网络层和数据链路层,牵扯到的设备有交换机、pc机和路由器

1.2.2、arp病毒的工作原理

arp病毒的危害:导致整个局域网里的主机找不到正确网关,从而导致不能上网

工作原理:伪造arp广播包,IP地址还是网关的,但是mac地址不是正确的网关的,因为交换机只查看mac地址。

如何防范?

设置静态的MAC-->IP对应表,不要让主机刷新你设定好的转换表。把电脑和网关的IP地址和mac地址互相绑定。

[root@fttsaxf ~]# arp -a
? (192.168.29.1) at 00:50:56:c0:00:08 [ether] on ens33
gateway (192.168.29.2) at 00:50:56:ee:e5:6d [ether] on ens33
[root@fttsaxf ~]# ip route
default via 192.168.29.2 dev ens33 
169.254.0.0/16 dev ens33 scope link metric 1002 
192.168.29.0/24 dev ens33 proto kernel scope link src 192.168.29.128 
# -s,static  默认情况下arp缓存表的记录时动态更新的
[root@fttsaxf ~]# arp -s 192.168.29.2 00:50:56:ee:e5:6d 
[root@fttsaxf ~]# arp -a
? (192.168.29.1) at 00:50:56:c0:00:08 [ether] on ens33
gateway (192.168.29.2) at 00:50:56:ee:e5:6d [ether] PERM on ens33

arp防火墙,可以帮助我们绑定?

1.3、TCP/IP详细图

2、TCP的流程控制

2.1、滑动窗口

下面通过例子说明如何利用滑动窗口机制进行流量控制

2.2、拥塞控制

不拥塞情况

拥塞情况

中间链路带宽比较窄,传输时窗口大小根据拥塞窗口(记为Cwnd)的大小变为5。这样就提醒了前边的滑动窗口只发送小于或者等于5的数量的包过来,win的值是参考Cwnd的值来定的。

图片因为链路的堵塞,丢包了,只接受到了102一个确认?(即只收到了seq=101的包)

2.2.1、拥塞控制算法???

TCP进行拥塞控制的算法有四个:

  • 慢启动
  • 拥塞避免
  • 快重传
  • 快恢复

?这样就能是数据传输达到最大的效率

2.3、TCP的差错控制

TCP差错控制的3种方式

  • 校验和
  • 确认
    • 受损伤的数据段
    • 丢失的数据段
    • 重复的数据段
    • 失序的数据段
    • 确认的丢失
  • 超时

这些机制就体现了TCP的可靠性。

3、计时器

  • 重传计时器
  • 坚持计时器
  • 保活计时器
  • 时间等待计时器

3.1、重传计时器——为了控制丢失的数据段???

?

?

?

3.2、坚持计时器——为了防止零窗口死锁

A收到win=0的确认,等待对方发送确认来通知窗口的大小,并启动坚持计时器。若是在坚持计时器超时之前接收到通知窗口大小的ack,那么A就继续发送后续的数据段;若是在坚持计时器超时之前没有接收到通知窗口大小的ack,那么A会发送探测数据段,提醒接收端确认已丢失,如果没有坚持计时器和探测数据段,ack丢失时,双方会进入等待死锁的状态。

3.3、保活计时器——防止两个TCP之间的连接长时间的空闲

设想有这样的情况:客户已主动与服务器建立了TCP连接。但后来客户端的主机突然出故障。显然,服务器以后就不能再收到客户发来的数据。因此,应当有措施使服务器不要再白白等待下去。这就是使用保活计时器。服务器每收到一次客户的数据,就重新设置保活计时器,时间的设置通常是两小时。若两小时没有收到客户的数据,服务器就发送一个探测报文段, 以后则每隔75秒钟发送一一次。若一连发送10 个探测报文段后仍无客户的响应,服务器就认为客户端出了故障,接着就关闭这个连接。

3.4、时间等待计时器——连续终止期间使用的

A发送了最后一个ACK后,不立即关闭连接,等时间等待计时器超时后再关闭。时间等待计时器设置的时间是2MSL。MSL叫做最长报文段寿命,RFC793建议设为2分钟。但是对于现在的网络,MSL = 2分钟可能太长了一些。因此TCP允许不同的实现可根据具体情况使用更小的MSL值。

4、TCP的应用

5、UDP的使用

?稍微记一下

5.1、UDP的封装格式

5.2、UDP的流控和差错控制

  • UDP没有流控机制
  • UDP只有检验和来提供差错控制
    • 需要上层协议来提供差错控制,例如:TFTP协议

?6、TCP/IP协议栈

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 23:05:00  更:2022-04-07 23:06:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:21:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码