目录

2020-12-27

目录

2020-12-27

计算机网络与通信

体系结构

1、计算机网络的定义

计算机网络是通过通信设施,将地理上分布的、具有自治功能的多个计算机系统互连起来,实现信息交换、资源共享、互操作和协同处理的系统。特点:资源共享、透明操作。 从逻辑上,计算机网络由通信子网和资源子网构成。

2、OSI参考模型、TCP/IP四层体系

https://i-blog.csdnimg.cn/blog_migrate/2540aa7654a08e2ba9896b727b1820a5.png

1)物理层: 透明传输比特流。物理层特性:机械特性、电气特性、功能特性、规程特性。

2)数据链路层: 定义了如何让数据格式化进行传输,以及如何控制对物理介质的访问。这一层通常还提供了错误检测和纠正,以保证数据的可靠传输。

3)网络层:位于不同地理位置的网络中的 两个主机之间提供连接和路径选择 。具体包括:建立/拆除网络连接、路径选择、分段和组块、差错检测和恢复等等。

4)传输层: 在网络层传输基础上,实现端到端传输 。具体包括传输层地址<->网络地址、多路复用、传输连接的建立和释放等等。

5)会话层: 提供一个面向用户的连接服务 。会话:两个用户进程为完成一次完整的通信而建立会话连接。

6)表示层:可以确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。

7)应用层:作为用户进程使用OSI功能的唯一窗口。

3、网络协议

为进行网络中的数据交换而建立的规则,是不同的系统对等层实体间的通信规则。 由语法、语义、同步三方面组成

网络通信技术

1、通信双方的信息交互方式

1)单工通信

2)半双工通信

3)全双工通信

2、信道的最大信息传输速率(香农公式)

C=W log2(1+S/N)(bit/s)

其中,W为信道带宽,单位HZ;S/N为信噪比,S是信道内所传信号的平均功率(瓦),N是信道内部的高斯噪声功率(瓦)。

注意:香农公式中的S/N是为信号与噪声的功率之比,为无量纲单位。但是,当讨论信噪比时,常以分贝(dB)为单位。即SNR(信噪比,单位为dB)=10 lg(S/N)

例题:信道带宽为3KHz,信噪比为30dB,则最大数据速率为多少?
解:	∵信噪比为30dB;
        ∴30 = 10 lg (S/N)
        故信噪比S/N = 1000,代入香农公式有:
       C = W log2(1+S/N) = 3000 * log 2 (1+ 1000) = 30000b/s
答:信道带宽为3000Hz,信噪比为30dB,最大数据速率为30kb/s。

3、差错率衡量信道可靠性

1)误码率:在一定时间内接收到的出错的比特数与总的传输比特数之比。

2)误组率:在一定时间内接收到的出错的组数与总的传输组数之比。

4、信道复用技术(在同一信道中传输多路信号)

1)频分复用

2)时分复用

3)码分复用

数据链路层

1、数据电路与数据链路

数据电路:在传输信道两端加上信号变换设备之后形成的二进制比特流通路。即数据电路由传输信道加DCE组成,是一条物理链路。

数据链路:在数据电路基础上增加传输控制功能,是一条逻辑链路。只有建立起数据链路,才能真正实现数据通信。

2、数据链路层的目标和功能:

目标:在数据链路上提供可靠的信息传输。

功能:数据链路连接的建立和释放、帧同步、流量控制、差错控制等等。

3、流量控制

1)定义:在数据通信中,要求发送方的数据传输速率不能超过接收方的接收和处理速率。因此要采取一些措施控制发送方的发送速率,故 流量控制由接收方主动控制和实现

2)流量控制方法:

1、开关式的流量控制:硬件实现

2、协议式的流量控制:ARQ自动重发请求。具体包含停止-等待协议、滑动窗口协议(连续ARQ、选择ARQ)

3.1、实用的停止-等待协议

停止等待就是每发送完一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组,是最简单的自动重传请求方法。。

https://i-blog.csdnimg.cn/blog_migrate/87d9c7963c944e47b87b0f06e394a9d5.png

核心技术:

1)、 超时重发技术 :解决数据帧丢失、ACK确认帧丢失等问题。

2)、 帧编号 :解决了重复帧问题。

缺点:信道利用率不高,发送方只有在收到ACK确认后才能继续发送数据帧。

例题:用户A、B通过卫星链路通信,假设传播时延为200ms,数据的传输
速率为50Kb/s,数据帧大小为5000bit。若采用停止-等待流量控制协议
进行通信,则最大链路利用率为(B)
A、0.25      B、0.2   C、0.333   D、0.5

3.2、滑动窗口协议

当发送完一个数据帧后,不是停下来等待ACK确认,而是继续发送若干个数据帧。由于在等待确认时间内可以继续发送数据帧,减少了信道空闲时间,提高了整个通信过程的吞吐量。

3.2.1、连续重传ARQ协议

利用滑动窗口机制,当出现差错时,则从出现差错的数据帧开始 全部连续重发 。若采用n比特对窗口编码,则

最大发送窗口WT = 2^n-1;接收窗口WR = 1。

例题:若采用连续ARQ协议通信,采用3比特对敞口编码,则祖达发送窗
口可达到(C)
A、1      B、3      C、7     D、8
3.2.2、选择重传ARQ协议

利用滑动窗口机制, 不同于连续ARQ,为进一步提高信道利用率,只重传出错的数据帧即可。

最大发送窗口WT = 最大接收窗口WR = 2^n / 2

4、差错控制

4.1、差错控制的目的

确保所有数据帧按顺序正确递交到数据链路层用户。

4.2、差错控制的原理

在发送的数据码元序列中加入监督位,并进行某种变换,使它们和原来相互独立的数据码元之间具有某种约束关系。在接收端检测接收到的数据码元和监督位的约束关系如果被破坏,则在接收端可以发现甚至纠正错误

4.3、差错控制方法及编码

根据变换的不同,可以分为检错码(只能发现错误,但不能自动纠正)和纠错码(可以指定纠正错误)两大类。

4.3.1、检错编码之奇偶校验码
4.3.2、检错编码之CRC循环冗余码
4.3.3、纠错编码之汉明码

5、数据链路控制协议

在物理层提供的比特流传输基础上增加适当的控制功能,使通信变得更加可靠,保证透明传输、流量/差错控制等。

5.1、 HDLC高级数据链路控制规程

5.1.1、 HDLC的定义

一个在同步网上传输数据、面向比特的数据链路层协议。其最大特点是不需要数据必须是规定字符集,对任何一种比特流,均可以实现透明的传输。

5.1.2、 HDLC的帧结构

https://i-blog.csdnimg.cn/blog_migrate/b1c2d54eba9a959db380cdb7ee67782c.png

标志字段Flag为01111110(0X7E),在接收端通过标志Flag可以确定一个数据帧的位置。

为了避免一个帧中两个Flag之间出现连续的6个1,HDLC采用“ 零比特插入法 ”实现透明传输。

https://i-blog.csdnimg.cn/blog_migrate/288a8873c927d10bca838f15c06f87dd.png

5.2、 PPP点对点协议

5.2.1、 PPP的定义

为在同等单元之间传输数据包这样的简单链路设计的面向字符的链路层协议

5.2.1、 PPP的帧结构(类似HDLC)

https://i-blog.csdnimg.cn/blog_migrate/1d66d8911e874a4a00897f5f3ae15e6c.png

https://i-blog.csdnimg.cn/blog_migrate/52895bcad033c6caf098aa5799839044.png

字符填充法

https://i-blog.csdnimg.cn/blog_migrate/8b539113e6e8ea4380e1a45932cd70ee.png

https://i-blog.csdnimg.cn/blog_migrate/1a53c5a6ee9c33a6cd03405b4c615b0a.png

局域网

1、局域网三大基本技术

1)网络拓扑结构(星型、总线型、环形)

2)数据传输基本形式和传输介质(基带传输和宽带传输)

为了使数据链路层更好地适应多种局域网,特地将局域网的数据链路层分为两个子层:LLC(逻辑链路控制)、MAC(介质访问控制)。

3)介质访问控制方法之CSMA/CD协议

2、CSMA/CD

工作原理 :载波监听、冲突检测、多次访问。CSMA/CD协议在发送前进行载波监听,发送过程中对信道进行检测以及时发现冲突。

冲突处理方法 :发现冲突的发送站点向全网发送一个加强冲突的噪声帧后停止发送。等待一个随机长的时间后重新进入发送侦听阶段。

争用期 :总线式局域网中端到端的往返时间2t称为争用期,也称为冲突窗口。

3、局域网性能评价

1)硬件特性:介质的速度和网卡的速度。

2)资源分配策略:介质访问控制。

3)网络负载:上网用户数量和每个用户的通信量。

4、以太网的级联和拓展

1) 在物理层使用集线器拓展局域网

https://i-blog.csdnimg.cn/blog_migrate/27c69543755f6a5281d241584c3a07e4.png

2) 在数据链路层使用网桥拓展局域网

例题:
1、集线器Hub组建的局域网的物理拓扑结构是(星型),逻辑上则是(总线型)。

2、以OSI参考模型为参照,Hub工作在(物理)层,交换机工作在(数据链路)层。

3、一个总线式以太网中,两个站点最长距离为1公里,传播速度
为200000km/s,最不利站点要经过多长时间才检测到冲突?(B)
A、5us     B、10us    C、20us     D、任意

IP与路由

1、网络互连设备

https://i-blog.csdnimg.cn/blog_migrate/17ab820421ee930ddbb1fabe182165e6.png

2、IPv4地址

包含网络号和主机号,共32位组成。即 IP地址 = 网络号+主机号

A类地址:8位网络号,网络号范围1-126

B类地址:16位网络号,网络号范围18-191

C类地址:24位网络号,网络号范围192-223

2.1、子网与子网掩码

从主机号中借用若干个连续比特作为子网号,即 IP地址 = 网络号+子网号+主机号

https://i-blog.csdnimg.cn/blog_migrate/011fa1013d6a0c71bff8226b224fd802.png

https://i-blog.csdnimg.cn/blog_migrate/743861484355fa04b7aafba8173f59d8.png

例题:
类型1:在知道IP地址和子网掩码情况下,计算该IP的网络号、主机号?

网络号(子网号) = IP地址 和 子网掩码  按位逻辑与运算
主机号 = 子网掩码取反后 和IP地址 按位逻辑与运算

有一个C类地址192.9.200.13,其子网掩码为255.255.255.0。
故其网络号位为192.9.200.0;主机号为0.0.0.13

类型2:在某一个网络中划分子网,计算可以划分多少个?有多少主机地址?

在202.119.240.0网络中划分子网,如果子网掩码为255.255.255.224,则
在此网络中可以划分多少个子网?每个子网最后有多少个主机地址?

解:224 = 11100000,故从主机号中连续借用3位作为子网号。
子网数 = 2^3 - 2 = 6【扣除全0、全1两个】
每个子网最多有主机 2 ^5 - 2 = 30

网络层服务是一个基于IP数据报的传输系统,是不可靠的,尽最大努力传输的、无连接的数据报存储转发系统。网络层协议包括IP协议、ICMP、ARP/RARP。

2.2、无分类编址CIDR、超网

2.3、IPv4的数据报格式

https://i-blog.csdnimg.cn/blog_migrate/bb109b683eaa31158dd1fec6847c62c5.png

首部的固定部分长度为20字节,可选部分长度1-40字节,用于增加IP数据报的控制功能。

TTL生存时间。

2.4、ICMP互联网控制报文协议

https://i-blog.csdnimg.cn/blog_migrate/23542f16c9a6192c4a99caa834eb8dfd.png

ICMP报文种类有两种:ICMP差错报告报文、ICMP询问报文

Ping命令:测试两个主机之间的连通性,使用ICMP回送请求和回送回答报文,是应用层直接使用网络层ICMP协议的例子

2.5、ARP地址解析协议

根据IP地址获取物理地址 的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

3、IPv6地址

更大的地址空间,从原来的32位拓展到现在的128位。用 冒号16进制记法 表示IP地址—共8个域,每个域16位,且该16位使用十六进制表示,域与域之间用冒号连接。如:68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF。

https://i-blog.csdnimg.cn/blog_migrate/b445da3218a07211717fac558abac3bf.png

https://i-blog.csdnimg.cn/blog_migrate/de9320b4bacdc174ae8f7ce084b74590.png

IPv4到IPv6的过渡(双协议栈或隧道技术!)

https://i-blog.csdnimg.cn/blog_migrate/8d95452a993ac273432b2ae31195099f.png

https://i-blog.csdnimg.cn/blog_migrate/6d144d167608ab7de439150def27d878.png

https://i-blog.csdnimg.cn/blog_migrate/0180b97f5738348181463c1fa19c8f5a.png

4、路由

4.1、基本概念

路由(route)就是分组在因特网上从一台计算机传输到另一台计算机的实际路径,主要功能是实现 跨网络通信

路由器是一种典型的网络连接设备,用来进行路由选择和报文转发 。每个路由器都存储有一张表,称为路由表(routing table),路由器正是依据路由表的内容将各个 IP 分组转发到正确的去处。

路由协议是路由器之间维护路由表的规则,用于发现路由,生成路由表,并指导报文转发。依据来源的不同,路由可以分为三类:

1、通过链路层协议发现的路由称为直连路由。

2、通过网络管理员手动配置的路由称为静态路由。

3、通过动态路由协议发现的路由称为动态路由(重点)。

根据作用范围不同,动态路由协议可以分为两类:

1、内部网关协议IGP(Interior Gateway Protocol):

在一个自治系统内部运行。常见的IGP协议包括RIP、OSPF和IS-IS。

2、外部网关协议EGP(Exterior Gateway Protocol):

运行于不同自治系统之间。BGP是目前最常用的EGP协议。

根据使用算法不同,路由协议可分为:

1、距离矢量协议(Distance-Vector Protocol):

包括RIP和BGP。其中,BGP也被称为路径矢量协议(Path-Vector Protocol)。

2、链路状态协议(Link-State Protocol):

包括OSPF和IS-IS。

https://i-blog.csdnimg.cn/blog_migrate/b0c1db1d49eb3a8a4d5f5f2de4c7066d.png

https://i-blog.csdnimg.cn/blog_migrate/c9d8cea85047656c37babd07679778d8.png

ps、 自治系统AS

在互联网中,一个自治系统(AS)就是一个 有权自主地决定在本系统中应采用何种路由协议的小型单位 。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。 同时在自治系统内的所有路由器都必须是连通的

https://i-blog.csdnimg.cn/blog_migrate/3372652d979dac733597f0939e097bf9.png

4.2、RIP协议与距离向量算法

路由信息协议RIP(Routing Information Protocol)是 一种分布式的基于距离向量的路由选择协议,最大优点是简单

RIP协议要求网络中的每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录

**距离的定义:注意指路由器到目的路由器的距离。

通常为跳数,定义从路由器到直接相连的网络的距离为1;每经过一个路由器跳数加1。RIP允许一条路径最多包含15个路由器,因此距离16表示网络不可达,同时可以看出RIP协议只适用于小型互联网!**

https://i-blog.csdnimg.cn/blog_migrate/29be914c8040f4d86bea10aebfdfe46b.png

对路由器2的路由表:

到网络B距离为1,直接交付;

到网络A、C距离为2,间接交付。

问题一:RIP协议中路由器和谁交换信息?

仅和 相邻路由器 交换信息。

问题二:交换什么东西?

交换的是 自己的路由表

问题三:多久交换一次信息?

30秒 交换一次路由信息,然后路由器根据信息更新路由表。如果超过180秒没收到信息,则判断相邻路由器可能出现问题或者链路出现问题,最后更新路由表。

总结:每隔30秒和相邻路由器交换路由表信息!!!

https://i-blog.csdnimg.cn/blog_migrate/dc199ba33b3eadbe4a95d6c5bf161efe.png

https://i-blog.csdnimg.cn/blog_migrate/15364592cad5618c83af0bcca0e021a7.png

核心:距离向量算法

https://i-blog.csdnimg.cn/blog_migrate/849de04e0140a041a7493598782af9f6.png

案例:

https://i-blog.csdnimg.cn/blog_migrate/2f4b4ba67eb3b490396b9a75bf54eba8.png

https://i-blog.csdnimg.cn/blog_migrate/f3229b3070343e20e3d8919a4cef1374.png

https://i-blog.csdnimg.cn/blog_migrate/bd9d1c0c7034828de6dca6356d34be36.png

https://i-blog.csdnimg.cn/blog_migrate/f8a694fd248aef0cdbd71f4d09b0ac87.png

RIP协议报文格式

RIP是应用层协议,使用UDP传送数据

https://i-blog.csdnimg.cn/blog_migrate/e5f99c74f373fc05fdb9a81e2bd2b2ba.png

RIP协议的特点:好消息传得快,坏消息传得慢

https://i-blog.csdnimg.cn/blog_migrate/898eaf08dd0597d2356d08703e0c05ce.png

https://i-blog.csdnimg.cn/blog_migrate/d443de50756bd4846d327f2994c19ae7.png

注意:这里如果R1在收到R2更新报文之前就已经更新自己到网1距离为16,就不用这样返回循环了。

https://i-blog.csdnimg.cn/blog_migrate/d8b7ccc261b4b5cdacd668773cb474aa.png

https://i-blog.csdnimg.cn/blog_migrate/4dd7670c8feb597b96b8c5650da7e6e1.png

4.3、OSPF协议与链路状态算法

开放最短路径优先OSPF(Open Shortest Path First)是一种 分布式链路状态协议 。“开放”说明OSPF协议公开发表,不受某一厂家限制;“最短路径优先”是英文使用了 Dijkstra算法

问题一:和谁交换?

使用洪泛法向自治系统内所有路由器发送信息

问题二:交换什么?

相邻的所有路由器的链路状态 。链路状态指和本路由器相邻的路由器有哪些以及该链路的度量标准(费用、时延等等)。

问题三:多久交换?

只有当链路状态发生变化时 ,路由器才向所有路由器洪泛发送信息。

由于各路由器之间频繁交换链路状态信息,因此最终所有路由器会形成一个 链路状态数据库—-全网拓扑图

总结: 只有当链路状态改变时,路由器才使用洪泛法向所有路由器发送链路状态信息

https://i-blog.csdnimg.cn/blog_migrate/8adbfb7b8af3320fef2e97e8dff312c5.png

https://i-blog.csdnimg.cn/blog_migrate/eb03e23598d55f9caab1b3b53e905f93.png

OSPF是网络层协议,直接使用IP数据报传输数据

4.4、Dijkstra算法

https://i-blog.csdnimg.cn/blog_migrate/d48dd2112a71e78a7e52e34f42085a5d.png

https://i-blog.csdnimg.cn/blog_migrate/31743554b43940b049ae440554ba2041.png

https://i-blog.csdnimg.cn/blog_migrate/ddaee8fe6ee459838d770379ad9e11c5.png

案例:

https://i-blog.csdnimg.cn/blog_migrate/aa48161f541a8972cbde9c1397f2008d.png

https://i-blog.csdnimg.cn/blog_migrate/104bdc5248005d99f4f8a0c706931e31.png

https://i-blog.csdnimg.cn/blog_migrate/9f2d8b8e562668b8256f7506f9aefa59.png

https://i-blog.csdnimg.cn/blog_migrate/392b0ff9a990b395f7365ff2f39d45eb.png

https://i-blog.csdnimg.cn/blog_migrate/635bddd009fa253f9b0f8d16c851bc87.png

https://i-blog.csdnimg.cn/blog_migrate/27c1b3db1f9d6f1e330966e68ebbafc1.png

最后形成最短路径树:

https://i-blog.csdnimg.cn/blog_migrate/2cc58b75600a3ef10dba87ac4439ed26.png

4.5、BGP协议

BGP是一个路径向量协议,BGP所交换的网络可达性信息就是要到达某个网络所要经历的一系列自治系统

问题一:和谁交换?

其它自治系统的邻站BGP发言人 交换信息。

https://i-blog.csdnimg.cn/blog_migrate/7f901d6df0da7e78a2c25f27ab53df72.png

问题二:交换什么?

交换 网络可达性信息,即要到达某个网络锁要经过的一些列自治系统

问题三:多久交换?

发生变化 时才会有更新。

注意:BGP只是找一条能够到达目的网络比较好的路由,并不是最佳路由。

https://i-blog.csdnimg.cn/blog_migrate/de3539ff4fe9a4a9ddc363fe7d792dc7.png

案例:

https://i-blog.csdnimg.cn/blog_migrate/3575b177973e28dec6f26a3426611649.png

https://i-blog.csdnimg.cn/blog_migrate/c0f03cf38a3501605f1adb90fb6d5eba.png

BGP协议是应用层协议,借助TCP传送数据。

https://i-blog.csdnimg.cn/blog_migrate/a6c01785faa95a12dd56c00cb294fb46.png

4.6、三种路由协议的比较:

RIP:分布式基于距离向量的内部网关路由选择协议,通过广播 UDP 报文来交换路由信息。

OSPF:分布式基于链路状态协议,同样是一个内部网关路由选择协议,直接使用 IP数据报 传输信息。

BGP:路径向量协议,是一个外部网关路由选择协议。在不同自治系统间交换路由信息,由于网络环境复杂需要保证可靠传输,故采用 TCP 传输信息。

https://i-blog.csdnimg.cn/blog_migrate/4778264cbc469949761a3181fb93e976.png

传输层

传输层的功能:

1、提供进程间端到端的逻辑通信(网络层提供主机间的逻辑通信)。

2、复用(所有应用进程都可以通过传输层在传输到网络层)与分用(传输层从网络层收到数据后交付给指明的应用进程)。

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

套接字socket = 主机IP地址 + 端口号,故使用套接字可以唯一标识网络中的一个主机和它上面的进程。

1、UDP协议

无连接的用户数据报协议。在传输数据前不需要建立连接,收到UDP报文后也不需要确认。不可靠、无连接、时延小,适用于小文件。

2、TCP协议

面向连接、全双工、可靠的字节流服务 。特点:TCP不提供广播或多播服务。由于TCP要提供可靠、面向连接的传输服务,因此不可避免地增加了许多控制开销。这不仅使协议数据单元的首部增大很多,还要占用许多处理集资源。 TCP适合大量数据传输的应用

https://i-blog.csdnimg.cn/blog_migrate/7e61993363ed0a8b307dd67e98df9c9e.png

1) 序号 :本报文段所发送数据的 第一个字节的序号 。例如,发送数据123456,那么序号就是1;发送数据789序号就是7。

2) 确认号 :期望收到 下一个报文段的第一个字节的序号 。例如,确认号N,说明前N-1个数据正确收到。

3) 6个控制位(掌握ACK、SYN即可)

URG(urgent)紧急位:当URG=1时,发送方有紧急数据发送,不用在缓存中排队。

ACK确认位 :在TCP连接建立后所有传送报文的ACK=1

PSH推送位:当PSH=1时,接收方尽快交给应用进程,不用等到缓存满了再交付。

SYN同步位 :当SYN=1时,表明是一个 连接请求/连接接受的报文 (TCP三次握手建立连接时会有)。

4) 窗口 :指接收窗口,即允许发送方的发送数据大小(参考数据链路层的流量控制的滑动窗口)

2.1、TCP传输连接管理

1、TCP连接传输三个阶段: 连接建立、数据传送、连接释放

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

TCP三次握手建立连接:

https://i-blog.csdnimg.cn/blog_migrate/ab7bee4be00b56c268292a8c9cc365d1.png

SYN洪泛攻击和SYN Cookie了解即可!

为什么需要TCP三次握手?:为了防止服务器端开启一些无用的连接增加服务器开销以及防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。

TCP四次挥手释放连接

https://i-blog.csdnimg.cn/blog_migrate/61b8b54d29fb6bc23ea9c03884bdb56d.png

参与一条TCP连接的两个进程中的 任何一个都能终止进程 ,在释放连接后,主机中的资源将被释放。

如上图:

第一步:客户端发送一个 释放连接报文段(FIN=1) ,主动关闭TCP连接。

第二步:服务器端回送一个 确认报文段(ACK=1) ,呈现 半关闭状态 (客户-服务器方向的连接被释放了)。

第三步:服务器端发送一个 释放连接报文段(FIN=1、ACK=1) ,主动关闭服务器-客户端方向的TCP连接。

第四步:客户端回送一个 确认报文段(ACK=1) ,再等到计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭。

2.2、TCP如何保证可靠传输?

可靠传输:接收方进程从缓冲区读出的字节流和发送方发出的字节流一样。TCP通过校验、序号、确认、重传四步保证可靠传输。

1)为每个已发送的报文段启动一个超时定时器,若在定时器超时前收到接收方应答信息则释放该报文段占用的缓冲区;否则重传该报文段,直到收到应答或重传次数过多。

2)接收方收到报文段后进行校验,如果正确把数据交给上层协议,再给发送方发送一个确认报文段表明数据已收到。

2.3、TCP流量控制

参考前面的数据链路层的流量控制,TCP利用 滑动窗口机制 实现流量控制。