计算机网络基础知识整理

目录

1. OSI七层模型

2.传输层的作用

3.传输层复用和分用的区别

4.传输层和网络层的区别

5.UDP协议的特点

UDP和TCP的区别

6.TCP协议的特点

7.TCP三次握手过程

8.TCP四次挥手

9. TCP的可靠传输是如何实现的?

停止等待协议(ARQ)

滑动窗口协议(连续ARQ协议)

流量控制

拥塞控制




1. OSI七层模型

物理层 --> 数据链路层 -->网络层-->传输层-->会话层-->表示层-->应用层

2.传输层的作用

为它上面的应用层提供通信服务。

传输层是面向通信的最高层,也是用户功能的最底层。

3.传输层复用和分用的区别

  • 复用(多次使用):在发送端,多个应用进程共用一个传输层
  • 分用(分派):在接收端,传输层根据端口号将数据分派给不同的应用进程

4.传输层和网络层的区别

网络层为不同的主机提供通信服务,传输层为不同主机的不同应用提供通信服务。

网络层只对报文头部进行差错检测,传输层对整个报文进行差错检测。

5.UDP协议的特点

  1. UDP通信前不需要建立连接,通信结束也不需要释放连接;
  2. UDP不可靠,不能保证每个数据都送达;
  3. UDP面向报文,即UDP数据传输的单位是报文,且不会对数据作任何拆分和拼接操作;UDP只负责增加UDP头或者去除IP数据包头;
  4. UDP没有拥塞控制;它始终以恒定的速率发送数据;
  5. UDP支持一对一、一对多、多对一、多对多通信(都支持!!)

UDP和TCP的区别

  1. UDP面向非连接,TCP面向连接
  2. UDP无法保证可靠服务,TCP可以保证
  3. UDP面向报文,TCP面向字节流
  4. UDP数据传输快,实时性高;TCP数据传输慢
  5. UDP可以以任意方式通信,TCP只提供点到点的通信

6.TCP协议的特点

  1. TCP面向连接;通信前需要建立连接,通信后需要释放连接;
  2. TCP提供可靠的服务:TCP发送的数据无重复、无丢失、无错误、与发送端顺序一致;
  3. TCP面向字节流。TCP以字节为单位。虽然传输过程中数据被划分为一个个数据报,但这只是为了传输,接收端最终接收到的数据将与发送端的数据一模一样;
  4. TCP数据传输慢
  5. 一条TCP连接的两端只能有两个端点;只支持点到点的通信
  6. TCP提供全双工通信;TCP的两端即可以作为发送端,可以作为接收端

 

7.TCP三次握手过程

TCP协议中,主动发起请求的为 客户端,被动连接的是 服务端。TCP支持全双工通信,因此客户端和服务端都能够发送和接收数据。

第一次握手: 

客户端向服务端发送连接请求报文段,该报文段的头部中SYN=1,ACK=0,seq=x.

SYN=1,ACK=0 表示报文段为连接请求报文段

x为本次TCP通信的字节流的初始序号

第二次握手:

服务端收到请求后,如果同意连接,就会发送一个应答:SYN=1,ACK=1,seq=y,ack=x+1

SYN=1,ACK=1 表示报文段为连接同意的应答报文

y为发送字节流的初始序号

ack=x+1表示服务端希望下一个数据包发送序号从x+1开始

第三次握手:

客户端收到连接同意的应答后,还要向服务端发送一个确认报文段:ACK=1,seq=x+1,ack=y+1

 

8.TCP四次挥手

TCP是双向连接,四次挥手中前两次用于断开一个方向的连接,后两次用于断开另一个方向的连接。

第一次挥手:

若A认为数据发送完成,则它向B发送连接释放请求。

第二次挥手:

B收到连接释放请求后,会通知相应的应用程序,告诉它A到B的连接已经释放;B向A发送的连接释放的应答;

第三次挥手:

B向A发完所有数据后,向A发送连接释放请求;

第四次挥手:

A收到释放请求后,向B发送确认应答,A进入wait状态。wait状态持续一段时间后,在进入closed状态。

tips:为什么要在wait状态等待一段时间?

确保B能够收到A的确认应答。若A发完确认应答后直接进入closed状态,那么如果该应答丢失,B等待超时后会重新发送连接释放请求,但此时A已经关闭了,无法应答。在这种情况下,B永远无法正常关闭。

 

9. TCP的可靠传输是如何实现的?

TCP最终传递给应用层的数据和发送者发送的数据是一模一样的。TCP采用了流量控制、拥塞控制、连续ARQ等技术来保证它的可靠性。

停止等待协议(ARQ)

滑动窗口协议(TCP采用的)的简化版本。

停止等待协议是一种ARQ协议(Automatic Repeat reQuest,自动重传请求)。当请求失败时,会自动重传,直到请求被正确接受为止。这种协议保证了每个分组都能被正确接收。

停止等待协议的原理:

  • 无差错的情况:A向B每发送一个分组后都要停下来等待B的确认应答;A只有收到B的确认应答后才能发送下一个分组;
  • 分组丢失或出现差错的情况:A都会超时重传分组
  • 应答丢失和应答迟到的情况;应答丢失:B正确收到分组,返回的应答在途中消失,此时A也收不到应答;接着B又收到了该分组,接受者根据序列号来判断当前的分组是否已经接收,若已接收则直接丢弃,并补上一个确认应答。            应答迟到:由于网络堵塞,B向A发送的第一个应答没传到,又发送了第二个。A会接受到两个应答。A可以根据序号判断该分组是否已经接收,接受了直接丢弃应答即可。

停止等待协议的注意点:

  1. 每发完一个分组,该分组必须保留,直到确认应答为止
  2. 必须给每个分组进行编号。以便按序接收,并判断该分组是否已被接收
  3. 必须设置超时计时器,每发送一个分组就要启动计时器,超时就要重发分组
  4. 计时器的超时时间要大于应答平均返回时间,否则会出现很多不必要的重传,降低传输效率,但超时时间不能太长。

滑动窗口协议(连续ARQ协议)

滑动窗口协议的发送者拥有一个发送窗口,发送者可以在没有得到应答的情况下发送连续窗口中的分组,这样降低了等待时间,提高了传输效率。

接受者也有一个接收窗口,接受者不需要每收到一个分组就返回一个应答,可以连续收到分组后统一返回一个应答,这样能节省流量。TCP头部的ack字段用来累计确认,它表示已经确认的字节序号+1,也表示期望发送者发送的下一个分组的起始字节号。(累计确认)

发送窗口

发送窗口的大小由接收窗口的剩余大小决定。接收者会把当前接收窗口的剩余大小写入应答TCP报文段的头部,发送者收到应答后根据该值和当前网络的拥塞情况设置发送窗口的大小,发送窗口的大小是不断变化的。

接收窗口

 

接收者收到的字节会存入接收窗口,接收者会对已近正确接受的有序字节进行累计确认,发送完确认应答后,接收窗口就可以向前移动指定字节。如果某些字节并未按序收到,接收者只会确认最后一个有序的字节,从而乱序的字节就会被重新发送。

 

流量控制

概念:如果发送者发送过快,接收者来不及接收,那么就会有分组丢失。为了避免分组丢失,控制发送者的发送速度,使得接收者来得及接收,这就是流量控制。

目的:防止分组丢失,保证TCP协议的可靠性;

实现:滑动窗口协议

流量控制引发的死锁:当发送者收到了一个窗口为0的应答,发送者便停止发送,等待接收者的下一个应答。如果这个窗口为0的应答在传输过程中丢失,发送者会一直等待下去,而接受者认为发送者以及收到了该应答,等待接收新数据,这样双方就相互等待,从而产生死锁。

持续计时器:为了避免死锁,每当发送者收到一个零窗口的应答后就启动该计时器。时间一到便主动发送报文询问接收者的窗口大小。若接收者仍然返回零窗口,则重置计时器继续等待;若窗口不为0,则表示应答报文已经丢失,此时重置发送窗口后开始发送,这样就避免了死锁的产生。

 

拥塞控制

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

  • 拥塞控制作用于网络,他是防止过多的数据注入到网络,避免出现网络负载过大的情况
  • 流量控制作用于接收者,它控制发送者的发送速度从而使接收者来得及接收

目的:缓解网络压力;保证分组按时到达

慢开始和拥塞避免算法

  • 发送方维护一个发送窗口,发送窗口的大小取决于网络的拥塞情况和接受窗口的大小,发送窗口是动态变化的
  • 发送方还维护一个慢开始门限:
  1. 发送窗口<慢开始门限:使用慢开始算法
  2. 发送窗口>慢开始门限:使用拥塞避免算法
  3. 发送窗口=慢开始门限:慢开始算法或者拥塞避免算法
  • 慢开始算法的作用:慢开始算法将发送窗口从小扩大,而且按指数级扩大,从而避免一开始就往网络中注入过多的分组从而导致拥塞;它将窗口慢慢扩大的过程其实也在探测网络拥塞情况的过程,当发现出现拥塞时,及时降低发送速度,从而减缓网络拥塞。
  • 拥塞避免算法的作用:拥塞避免算法使发送窗口以线性方式增长,而非指数级增长,从而使网络更加不容易发生拥塞。

快重传 和 快恢复算法

  • 两种预防拥塞的方式
  • 快重传原理:因为TCP具有累计确认的能力,因此接收者收到一个分组的时候不会立即发出应答,可能需要等待收到多个分组之后再同一发出累计确认。但快重传算法就要求,接收者如果接收到一个乱序的分组的话,就必须立即发出前一个正确分组的确认应答,这样能让发送者尽早地知道有一个分组可能丢失。
  • 快恢复原理:当发送者收到同一个分组的三个确认应答后,就基本可以判断这个分组已经丢失了;这时候无需等待超时,直接执行慢开始和拥塞避免算法

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

计算机网络相关知识、网络结构等等。 序言 前言 第1章 引言 1.1 计算机网络的产生和发展 1.2 计算机网络的功能 1.3 计算机网络分类 1.3.1 局域网 1.3.2 城域网 1.3.3 广域网 1.3.4 互联网 1.3.5 无线网 1.4 网络体系结构 1.4.1 协议分层 1.4.2 服务类型 1.4.3 服务原语 1.5 ISO/OSI参考模型 1.5.1 参考模型 1.5.2 模型评价 1.6 本书的结构 第一部分 数据通信 第2章 数据通信基础知识 2.1 基本概念 2.1.1 信号与通信 2.1.2 模拟通信 2.1.3 数字通信 2.2 数据通信基础理论 2.2.1 信号的频谱和带宽 2.2.2 信道的截止频率与带宽 2.2.3 信道的最大数据传输率 2.3 传输介质 2.3.1 双绞线 2.3.2 同轴电缆 2.3.3 光纤 2.3.4 无线介质 2.4 多路复用 2.4.1 频分多路复用 2.4.2 波分多路复用 2.4.3 时分多路复用 2.5 数据交换技术 2.5.1 电路交换 2.5.2 报文交换 2.5.3 分组交换 2.6 调制解调器 2.6.1 调制方式 2.6.2 Modem标准 2.6.3 Modem分类 2.6.4 工作模式 2.7 小结 习题 第3章 物理层接口 3.1 RS-232-C接口 3.1.1 机械特性 3.1.2 电气特性 3.1.3 功能特性 3.1.4 过程特性 3.1.5 空Modem电缆 3.2 其他接口 3.2.1 RS-449接口 3.2.2 RS-530接口 3.3 小结 习题 第二部分 底层物理网络 第4章 广域网 4.1 广域网结构 4.1.1 虚电路和数据报 4.1.2 两者比较 4.2 广域网实例 4.2.1 PSTN 4.2.2 X.25 4.2.3 DDN 4.2.4 帧中继 4.2.5 SMDS 4.2.6 B-ISDN/ATM 4.3 各种广域网的比较 4.4 小结 习题 第5章 局域网 5.1 介质访问控制协议 5.1.1 ALOHA协议 5.1.2 CSMA协议 5.1.3 CSMA/CD协议 5.2 以太网和IEEE 802.3 5.2.1 物理层标准 5.2.2 MAC协议 5.2.3 性能分析 5.3 令牌环网和IEEE 802.5 5.3.1 MAC协议 5.3.2 管理与维护 5.3.3 性能分析 5.4 网桥 5.4.1 透明网桥 5.4.2 源选径网桥 5.5 小结 习题 第6章 高速局域网 6.1 FDDI网络 6.1.1 与OSI的关系 6.1.2 帧格式 6.1.3 MAC协议 6.1.4 工作原理 6.1.5 拓扑结构 6.1.6 网络容错 6.1.6 技术指标 6.2 快速以太网 6.3 千兆位以太网 6.4 局域网交换机 6.5 小结 习题 第三部分 网络互联 第7章 网络互联与TCP/IP 7.1 网络互联层次 7.1.1 应用级互联 7.1.2 网络级互联 7.2 TCP/IP参考模型 7.3 TCP/IP参考模型的特点 7.3.1 TCP/IP的两大边界 7.3.2 IP层的地位 7.3.3 TCP/IP的可靠性思想 7.3.4 TCP/IP模型的特点 7.4 TCP/IP与ISO/OSI 7.5 小结 习题 第8章 IP 8.1 IP数据报 8.1.1 数据报格式 8.1.2 地址格式 8.2 IPv6 8.2.1 固定头部格式 8.2.2 IPv6地址 8.2.3 扩展头部 8.3 小结 习题 第9章 ARP、RARP和ICMP 9.1 ARP和RARP 9.1.1 ARP 9.1.2 RARP协议 9.1.3 报文格式 9.2 ICMP 9.2.1 ICMP报文类型 9.2.2 ICMP报文格式 9.2.3 ICMP差错报文 9.2.4 ICMP控制报文 9.2.5 ICMP请求/应答报文 9.3 小结 习题 第10章 IP路由协议 10.1 路由器与路由选择 10.1.1 路由器 10.1.2 路由选择 10.2 Internet结构 10.3 基本路由算法 10.3.1 D-V路由算法 10.3.2 L-S路由算法 10.4 IGP:内部网关协议 10.4.1 RIP 10.4.2 IGRP 10.4.3 OSPF协议 10.5 外部网关协议EGP 10.6 Internet组播 10.6.1 组播协议 10.6.2 组的维护 10.6.3 组播范围 10.7 移动IP路由 10.8 无类域间路由 10.9 小结 习题 第11章 传输层协议:TCP和UDP 11.1 传输层基本原理 11.1.1 服务质量 11.1.2 传输层端口 11.2 UDP 11.2.1 UDP报文格式 11.2.2 UDP伪头部 11.2.3 UDP多路复用 11.3 TCP 11.3.1 TCP报文格式 11.3.2 TCP连接端点 11.3.3 TCP可靠传输 11.3.4 TCP流量控制 11.3.5 TCP拥塞控制 11.3.6 TCP连接建立 11.3.7 TCP连接删除 11.3.8 TCP紧急数据传输 11.4 小结 习题 第四部分 网络应用 第12章 客户/服务器模型与套接字编程接口 12.1 网络间进程通信 12.2 客户/服务器模型 12.3 套接字编程接口 12.3.1 套接字基本概念 12.3.2 套接字系统调用 12.3.3 其它系统调用 12.4 基于客户/服务器模型的套接字编程举例 12.4.1 客户/服务器模型流程图 12.4.2 套接字实现机制 12.4.3 Unix环境下的套接字编程举例 12.5 小结 习题 第13章 DNS域名系统 13.1 域名结构 13.1.1 平面型命名机制 13.1.2 层次型命名机制 13.1.3 层次型名字管理 13.1.4 TCP/IP域名 13.2 域名解析 13.2.1 TCP/IP域名服务器 13.2.2 域名解析 13.2.3 逆向域名解析 13.2.4 域名解析的效率 13.3小结 习题 第14章 远程登录Telnet和Rlogin 14.1 为什么要引入远程登录? 14.2 TELNET协议 14.2.1 Telnet工作原理 14.2.2 网络虚终端 14.2.3 Telnet选项 14.3 Rlogin 14.4 小结 习题 第15章 文件传输与访问 15.1 FTP:文件传输协议 15.1.1 FTP特点 15.1.2 FTP工作原理 15.1.3 FTP连接建立 15.1.4 FTP访问控制 15.2 TFTP:简单文件传输协议 15.3 NFS:网络文件系统 15.4 小结 习题 第16章 电子邮件 16.1 电子邮件系统体系结构 16.1.1 ISO/OSI电子邮件系统 16.1.2 TCP/IP电子邮件系统 16.2 TCP/IP电子邮件地址 16.3 TCP/IP电子邮件标准 16.3.1 TCP/IP电子邮件格式 16.3.2 MIME:多用途Internet邮件扩展 16.3.3 SMTP:简单邮件传输协议 16.4 邮箱访问 16.5 小结 习题 第17章 万维网 17.1 Web页面浏览 17.1.1 浏览器和服务器 17.1.2 HTTP 17.1.3 HTML语言 17.2 交互式动态页面 17.2.1 CGI 17.2.2 Java 17.2.3 ASP 17.3小结 习题 第五部分 网络管理与安全 第18章 网络管理 18.1 互连网管理 18.2 SNMP网管体系 18.2.1 管理员/代理模型 18.2.2 MIB:管理信息库 18.2.3 ASN.1 18.2.4 SNMP 18.3 小结 习题 第19章 网络安全 19.1 基本概念 19.2 网络安全攻击 19.3 安全策略 19.4 安全机制 19.4.1 加密 19.4.2 鉴别 19.4.3 数字签名 19.5 防火墙 19.5.1 包过滤 19.5.2 应用级网关 19.6 小结 习题 第20章 网络技术的未来发展 20.1 新型网络应用技术 20.2 宽带网络技术 20.3 无线接入技术 20.4 统一网络技术 20.5 网络安全技术 20.6 主动网络技术 20.7 小结 参考文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值