计算机网络实验指导书第八版(计算机网络实验指导书第八版下载)

http://www.itjxue.com  2023-02-12 02:35  来源:未知  点击次数: 

计算机网络第四章(网络层)

4.1、网络层概述

简介

网络层的主要任务是 实现网络互连 ,进而 实现数据包在各网络之间的传输

这些异构型网络N1~N7如果只是需要各自内部通信,他们只要实现各自的物理层和数据链路层即可

但是如果要将这些异构型网络互连起来,形成一个更大的互联网,就需要实现网络层设备路由器

有时为了简单起见,可以不用画出这些网络,图中N1~N7,而将他们看做是一条链路即可

要实现网络层任务,需要解决一下主要问题:

网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)

在数据链路层那课讲过的可靠传输,详情可以看那边的笔记:网络层对以下的 分组丢失 、 分组失序 、 分组重复 的传输错误采取措施,使得接收方能正确接受发送方发送的数据,就是 可靠传输 ,反之,如果什么措施也不采取,则是 不可靠传输

网络层寻址问题

路由选择问题

路由器收到数据后,是依据什么来决定将数据包从自己的哪个接口转发出去?

依据数据包的目的地址和路由器中的路由表

但在实际当中,路由器是怎样知道这些路由记录?

由用户或网络管理员进行人工配置,这种方法只适用于规模较小且网络拓扑不改变的小型互联网

另一种是实现各种路由选择协议,由路由器执行路由选择协议中所规定的路由选择算法,而自动得出路由表中的路有记录,这种方法更适合规模较大且网络拓扑经常改变的大型互联网

补充 网络层(网际层) 除了 IP协议 外,还有之前介绍过的 地址解析协议ARP ,还有 网际控制报文协议ICMP , 网际组管理协议IGMP

总结

4.2、网络层提供的两种服务

在计算机网络领域,网络层应该向运输层提供怎样的服务(“ 面向连接 ”还是“ 无连接 ”)曾引起了长期的争论。

争论焦点的实质就是: 在计算机通信中,可靠交付应当由谁来负责 ?是 网络 还是 端系统 ?

面向连接的虚电路服务

一种观点:让网络负责可靠交付

这种观点认为,应借助于电信网的成功经验,让网络负责可靠交付,计算机网络应模仿电信网络,使用 面向连接 的通信方式。

通信之前先建立 虚电路 (Virtual Circuit),以保证双方通信所需的一切网络资源。

如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点,不丢失、不重复。

发送方 发送给 接收方 的所有分组都沿着同一条虚电路传送

虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。

请注意,电路交换的电话通信是先建立了一条真正的连接。

因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样

无连接的数据报服务

另一种观点:网络提供数据报服务

互联网的先驱者提出了一种崭新的网络设计思路。

网络层向上只提供简单灵活的、 无连接的 、 尽最大努力交付 的 数据报服务 。

网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。

网络层不提供服务质量的承诺 。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。

发送方 发送给 接收方 的分组可能沿着不同路径传送

尽最大努力交付

如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的 主机中的运输层负责可靠交付(包括差错处理、流量控制等) 。

采用这种设计思路的好处是 :网络的造价大大降低,运行方式灵活,能够适应多种应用。

互连网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。

虚电路服务与数据报服务的对比

对比的方面 虚电路服务 数据报服务

思路 可靠通信应当由网络来保证 可靠通信应当由用户主机来保证

连接的建立 必须有 不需要

终点地址 仅在连接建立阶段使用,每个分组使用短的虚电路号 每个分组都有终点的完整地址

分组的转发 属于同一条虚电路的分组均按照同一路由进行转发 每个分组独立选择路由进行转发

当结点出故障时 所有通过出故障的结点的虚电路均不能工作 出故障的结点可能会丢失分组,一些路由可能会发生变化

分组的顺序 总是按发送顺序到达终点 到达终点时不一定按发送顺序

端到端的差错处理和流量控制 可以由网络负责,也可以由用户主机负责 由用户主机负责

4.3、IPv4

概述

分类编制的IPv4地址

简介

每一类地址都由两个固定长度的字段组成,其中一个字段是 网络号 net-id ,它标志主机(或路由器)所连接到的网络,而另一个字段则是 主机号 host-id ,它标志该主机(或路由器)。

主机号在它前面的网络号所指明的网络范围内必须是唯一的。

由此可见, 一个 IP 地址在整个互联网范围内是唯一的 。

A类地址

B类地址

C类地址

练习

总结

IP 地址的指派范围

一般不使用的特殊的 IP 地址

IP 地址的一些重要特点

(1) IP 地址是一种分等级的地址结构 。分两个等级的好处是:

第一 ,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。

第二 ,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。

(2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口 。

当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为 多归属主机 (multihomed host)。

由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此 一个路由器至少应当有两个不同的 IP 地址 。

(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络 ,因此这些局域网都具有同样的网络号 net-id。

(4) 所有分配到网络号 net-id 的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。

划分子网的IPv4地址

为什么要划分子网

在 ARPANET 的早期,IP 地址的设计确实不够合理:

IP 地址空间的利用率有时很低。

给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。

两级的 IP 地址不够灵活。

如果想要将原来的网络划分成三个独立的网路

所以是否可以从主机号部分借用一部分作为子网号

但是如果未在图中标记子网号部分,那么我们和计算机又如何知道分类地址中主机号有多少比特被用作子网号了呢?

所以就有了划分子网的工具: 子网掩码

从 1985 年起在 IP 地址中又增加了一个“ 子网号字段 ”,使两级的 IP 地址变成为 三级的 IP 地址 。

这种做法叫做 划分子网 (subnetting) 。

划分子网已成为互联网的正式标准协议。

如何划分子网

基本思路

划分子网纯属一个 单位内部的事情 。单位对外仍然表现为没有划分子网的网络。

从主机号 借用 若干个位作为 子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。

凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的 目的网络号 net-id,先找到连接在本单位网络上的路由器。

然后 此路由器 在收到 IP 数据报后,再按 目的网络号 net-id 和 子网号 subnet-id 找到目的子网。

最后就将 IP 数据报直接交付目的主机。

划分为三个子网后对外仍是一个网络

优点

1.? 减少了 IP 地址的浪费? ? ? ? 2.? 使网络的组织更加灵活? ? ? ? 3.? 更便于维护和管理

划分子网纯属一个单位内部的事情,对外部网络透明 ,对外仍然表现为没有划分子网的一个网络。

子网掩码

(IP 地址) AND (子网掩码) = 网络地址 重要,下面很多相关知识都会用到

举例

例子1

例子2

默认子网掩码

总结

子网掩码是一个网络或一个子网的重要属性。

路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。

路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。

若一个路由器连接在两个子网上,就拥有两个网络地址和两个子网掩码。

无分类编址的IPv4地址

为什么使用无分类编址

无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。

CIDR 最主要的特点

CIDR使用各种长度的“ 网络前缀 ”(network-prefix)来代替分类地址中的网络号和子网号。

IP 地址从三级编址(使用子网掩码)又回到了两级编址 。

如何使用无分类编址

举例

路由聚合(构造超网)

总结

IPv4地址的应用规划

给定一个IPv4地址快,如何将其划分成几个更小的地址块,并将这些地址块分配给互联网中不同网络,进而可以给各网络中的主机和路由器接口分配IPv4地址

定长的子网掩码FLSM(Fixed Length Subnet Mask)

划分子网的IPv4就是定长的子网掩码

举例

通过上面步骤分析,就可以从子网1 ~ 8中任选5个分配给左图中的N1 ~ N5

采用定长的子网掩码划分,只能划分出2^n个子网,其中n是从主机号部分借用的用来作为子网号的比特数量,每个子网所分配的IP地址数量相同

但是也因为每个子网所分配的IP地址数量相同,不够灵活,容易造成IP地址的浪费

变长的子网掩码VLSM(Variable Length Subnet Mask)

无分类编址的IPv4就是变长的子网掩码

举例

4.4、IP数据报的发送和转发过程

举例

源主机如何知道目的主机是否与自己在同一个网络中,是直接交付,还是间接交付?

可以通过 目的地址IP 和 源地址的子网掩码 进行 逻辑与运算 得到 目的网络地址

如果 目的网络地址 和 源网络地址 相同 ,就是 在同一个网络 中,属于 直接交付

如果 目的网络地址 和 源网络地址 不相同 ,就 不在同一个网络 中,属于 间接交付 ,传输给主机所在网络的 默认网关 (路由器——下图会讲解),由默认网关帮忙转发

主机C如何知道路由器R的存在?

用户为了让本网络中的主机能和其他网络中的主机进行通信,就必须给其指定本网络的一个路由器的接口,由该路由器帮忙进行转发,所指定的路由器,也被称为 默认网关

例如。路由器的接口0的IP地址192.168.0.128做为左边网络的默认网关

主机A会将该IP数据报传输给自己的默认网关,也就是图中所示的路由器接口0

路由器收到IP数据报后如何转发?

检查IP数据报首部是否出错:

若出错,则直接丢弃该IP数据报并通告源主机

若没有出错,则进行转发

根据IP数据报的目的地址在路由表中查找匹配的条目:

若找到匹配的条目,则转发给条目中指示的吓一跳

若找不到,则丢弃该数据报并通告源主机

假设IP数据报首部没有出错,路由器取出IP数据报首部各地址字段的值

接下来路由器对该IP数据报进行查表转发

逐条检查路由条目,将目的地址与路由条目中的地址掩码进行逻辑与运算得到目的网络地址,然后与路由条目中的目的网络进行比较,如果相同,则这条路由条目就是匹配的路由条目,按照它的下一条指示,图中所示的也就是接口1转发该IP数据报

路由器是隔离广播域的

4.5、静态路由配置及其可能产生的路由环路问题

概念

多种情况举例

静态路由配置

举例

默认路由

举例

默认路由可以被所有网络匹配,但路由匹配有优先级,默认路由是优先级最低的

特定主机路由

举例

有时候,我们可以给路由器添加针对某个主机的特定主机路由条目

一般用于网络管理人员对网络的管理和测试

多条路由可选,匹配路由最具体的

静态路由配置错误导致路由环路

举例

假设将R2的路由表中第三条目录配置错了下一跳

这导致R2和R3之间产生了路由环路

聚合了不存在的网络而导致路由环路

举例

正常情况

错误情况

解决方法

黑洞路由的下一跳为null0,这是路由器内部的虚拟接口,IP数据报进入它后就被丢弃

网络故障而导致路由环路

举例

解决方法

添加故障的网络为黑洞路由

假设。一段时间后故障网络恢复了

R1又自动地得出了其接口0的直连网络的路由条目

针对该网络的黑洞网络会自动失效

如果又故障

则生效该网络的黑洞网络

总结

4.6、路由选择协议

概述

因特网所采用的路由选择协议的主要特点

因特网采用分层次的路由选择协议

自治系统 AS :在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。

自治系统之间的路由选择简称为域间路由选择,自治系统内部的路由选择简称为域内路由选择

域间路由选择使用外部网关协议EGP这个类别的路由选择协议

域内路由选择使用内部网关协议IGP这个类别的路由选择协议

网关协议 的名称可称为 路由协议

常见的路由选择协议

计算机网络第八版差别

计算机网络第八版差别:想说内容依旧是那么混乱,结构没有改进,层次难分,重点不明,不利于学习,如果第8版还没改进,真心不建议使用。第八版还是讲的office 2003。实践操作部分的讲解基本没变,只是理论部分稍作调整。

计算机网络谢希仁第7版和第8版哪个好

第7版。

1、《计算机网络(第7版)》是2017年电子工业出版社出版的图书,作者是谢希仁。

2、2017年发行的第7版又在第6版的基础上进行了一些修订。全书分为9章,比较全面系统地介绍了计算机网络的发展和原理体系结构、物理层、数据链路层(包括局域网)、网络层、运输层、应用层、网络安全、互联网上的音频/视频服务,以及无线网络和移动网络等内容。各章均附有习题(附录A给出了部分习题的答案和提示)。

计算机网络知识点

一、计算机网络概述

1.1 计算机网络的分类

按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);

按照网络使用者:公用网络、专用网络。

1.2 计算机网络的层次结构

TCP/IP四层模型与OSI体系结构对比:

1.3 层次结构设计的基本原则

各层之间是相互独立的;

每一层需要有足够的灵活性;

各层之间完全解耦。

1.4 计算机网络的性能指标

速率:bps=bit/s 时延:发送时延、传播时延、排队时延、处理时延 往返时间RTT:数据报文在端到端通信中的来回一次的时间。

二、物理层

物理层的作用:连接不同的物理设备,传输比特流。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。

物理层设备:

中继器【Repeater,也叫放大器】:同一局域网的再生信号;两端口的网段必须同一协议;5-4-3规程:10BASE-5以太网中,最多串联4个中继器,5段中只能有3个连接主机;

集线器:同一局域网的再生、放大信号(多端口的中继器);半双工,不能隔离冲突域也不能隔离广播域。

信道的基本概念:信道是往一个方向传输信息的媒体,一条通信电路包含一个发送信道和一个接受信道。

单工通信信道:只能一个方向通信,没有反方向反馈的信道;

半双工通信信道:双方都可以发送和接受信息,但不能同时发送也不能同时接收;

全双工通信信道:双方都可以同时发送和接收。

三、数据链路层

3.1 数据链路层概述

数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。数据链路层在不可靠的物理介质上提供可靠的传输。

该层的作用包括: 物理地址寻址、数据的成帧、流量控制、数据的检错、重发 等。

有关数据链路层的重要知识点:

数据链路层为网络层提供可靠的数据传输;

基本数据单位为帧;

主要的协议:以太网协议;

两个重要设备名称:网桥和交换机。

封装成帧:“帧”是 数据链路层 数据的基本单位:

透明传输:“透明”是指即使控制字符在帧数据中,但是要当做不存在去处理。即在控制字符前加上转义字符ESC。

3.2 数据链路层的差错监测

差错检测:奇偶校验码、循环冗余校验码CRC

奇偶校验码–局限性:当出错两位时,检测不到错误。

循环冗余检验码:根据传输或保存的数据而产生固定位数校验码。

3.3 最大传输单元MTU

最大传输单元MTU(Maximum Transmission Unit),数据链路层的数据帧不是无限大的,数据帧长度受MTU限制.

路径MTU:由链路中MTU的最小值决定。

3.4 以太网协议详解

MAC地址:每一个设备都拥有唯一的MAC地址,共48位,使用十六进制表示。

以太网协议:是一种使用广泛的局域网技术,是一种应用于数据链路层的协议,使用以太网可以完成相邻设备的数据帧传输:

局域网分类:

Ethernet以太网IEEE802.3:

以太网第一个广泛部署的高速局域网

以太网数据速率快

以太网硬件价格便宜,网络造价成本低

以太网帧结构:

类型:标识上层协议(2字节)

目的地址和源地址:MAC地址(每个6字节)

数据:封装的上层协议的分组(46~1500字节)

CRC:循环冗余码(4字节)

以太网最短帧:以太网帧最短64字节;以太网帧除了数据部分18字节;数据最短46字节;

MAC地址(物理地址、局域网地址)

MAC地址长度为6字节,48位;

MAC地址具有唯一性,每个网络适配器对应一个MAC地址;

通常采用十六进制表示法,每个字节表示一个十六进制数,用 - 或 : 连接起来;

MAC广播地址:FF-FF-FF-FF-FF-FF。

四、网络层

网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。数据交换技术是报文交换(基本上被分组所替代):采用储存转发方式,数据交换单位是报文。

网络层中涉及众多的协议,其中包括最重要的协议,也是TCP/IP的核心协议——IP协议。IP协议非常简单,仅仅提供不可靠、无连接的传送服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。

与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP。具体的协议我们会在接下来的部分进行总结,有关网络层的重点为:

1、网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;

2、基本数据单位为IP数据报;

3、包含的主要协议:

IP协议(Internet Protocol,因特网互联协议);

ICMP协议(Internet Control Message Protocol,因特网控制报文协议);

ARP协议(Address Resolution Protocol,地址解析协议);

RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。

4、重要的设备:路由器。

路由器相关协议

4.1 IP协议详解

IP网际协议是 Internet 网络层最核心的协议。虚拟互联网络的产生:实际的计算机网络错综复杂;物理设备通过使用IP协议,屏蔽了物理网络之间的差异;当网络中主机使用IP协议连接时,无需关注网络细节,于是形成了虚拟网络。

IP协议使得复杂的实际网络变为一个虚拟互联的网络;并且解决了在虚拟网络中数据报传输路径的问题。

其中,版本指IP协议的版本,占4位,如IPv4和IPv6;首部位长度表示IP首部长度,占4位,最大数值位15;总长度表示IP数据报总长度,占16位,最大数值位65535;TTL表示IP数据报文在网络中的寿命,占8位;协议表明IP数据所携带的具体数据是什么协议的,如TCP、UDP。

4.2 IP协议的转发流程

4.3 IP地址的子网划分

A类(8网络号+24主机号)、B类(16网络号+16主机号)、C类(24网络号+8主机号)可以用于标识网络中的主机或路由器,D类地址作为组广播地址,E类是地址保留。

4.4 网络地址转换NAT技术

用于多个主机通过一个公有IP访问访问互联网的私有网络中,减缓了IP地址的消耗,但是增加了网络通信的复杂度。

NAT 工作原理:

从内网出去的IP数据报,将其IP地址替换为NAT服务器拥有的合法的公共IP地址,并将替换关系记录到NAT转换表中;

从公共互联网返回的IP数据报,依据其目的的IP地址检索NAT转换表,并利用检索到的内部私有IP地址替换目的IP地址,然后将IP数据报转发到内部网络。

4.5 ARP协议与RARP协议

地址解析协议 ARP(Address Resolution Protocol):为网卡(网络适配器)的IP地址到对应的硬件地址提供动态映射。可以把网络层32位地址转化为数据链路层MAC48位地址。

ARP 是即插即用的,一个ARP表是自动建立的,不需要系统管理员来配置。

RARP(Reverse Address Resolution Protocol)协议指逆地址解析协议,可以把数据链路层MAC48位地址转化为网络层32位地址。

4.6 ICMP协议详解

网际控制报文协议(Internet Control Message Protocol),可以报告错误信息或者异常情况,ICMP报文封装在IP数据报当中。

ICMP协议的应用:

Ping应用:网络故障的排查;

Traceroute应用:可以探测IP数据报在网络中走过的路径。

4.7网络层的路由概述

关于路由算法的要求:正确的完整的、在计算上应该尽可能是简单的、可以适应网络中的变化、稳定的公平的。

自治系统AS: 指处于一个管理机构下的网络设备群,AS内部网络自治管理,对外提供一个或多个出入口,其中自治系统内部的路由协议为内部网关协议,如RIP、OSPF等;自治系统外部的路由协议为外部网关协议,如BGP。

静态路由: 人工配置,难度和复杂度高;

动态路由:

链路状态路由选择算法LS:向所有隔壁路由发送信息收敛快;全局式路由选择算法,每个路由器计算路由时,需构建整个网络拓扑图;利用Dijkstra算法求源端到目的端网络的最短路径;Dijkstra(迪杰斯特拉)算法

距离-向量路由选择算法DV:向所有隔壁路由发送信息收敛慢、会存在回路;基础是Bellman-Ford方程(简称B-F方程);

4.8 内部网关路由协议之RIP协议

路由信息协议 RIP(Routing Information Protocol)【应用层】,基于距离-向量的路由选择算法,较小的AS(自治系统),适合小型网络;RIP报文,封装进UDP数据报。

RIP协议特性:

RIP在度量路径时采用的是跳数(每个路由器维护自身到其他每个路由器的距离记录);

RIP的费用定义在源路由器和目的子网之间;

RIP被限制的网络直径不超过15跳;

和隔壁交换所有的信息,30主动一次(广播)。

4.9 内部网关路由协议之OSPF协议

开放最短路径优先协议 OSPF(Open Shortest Path First)【网络层】,基于链路状态的路由选择算法(即Dijkstra算法),较大规模的AS ,适合大型网络,直接封装在IP数据报传输。

OSPF协议优点:

安全;

支持多条相同费用路径;

支持区别化费用度量;

支持单播路由和多播路由;

分层路由。

RIP与OSPF的对比(路由算法决定其性质):

4.10外部网关路由协议之BGP协议

BGP(Border Gateway Protocol)边际网关协议【应用层】:是运行在AS之间的一种协议,寻找一条好路由:首次交换全部信息,以后只交换变化的部分,BGP封装进TCP报文段.

五、传输层

第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。

传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。

网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。

有关网络层的重点:

传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;

包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);

重要设备:网关。

5.1 UDP协议详解

UDP(User Datagram Protocol: 用户数据报协议),是一个非常简单的协议。

UDP协议的特点:

UDP是无连接协议;

UDP不能保证可靠的交付数据;

UDP是面向报文传输的;

UDP没有拥塞控制;

UDP首部开销很小。

UDP数据报结构:

首部:8B,四字段/2B【源端口 | 目的端口 | UDP长度 | 校验和】 数据字段:应用数据

5.2 TCP协议详解

TCP(Transmission Control Protocol: 传输控制协议),是计算机网络中非常复杂的一个协议。

TCP协议的功能:

对应用层报文进行分段和重组;

面向应用层实现复用与分解;

实现端到端的流量控制;

拥塞控制;

传输层寻址;

对收到的报文进行差错检测(首部和数据部分都检错);

实现进程间的端到端可靠数据传输控制。

TCP协议的特点:

TCP是面向连接的协议;

TCP是面向字节流的协议;

TCP的一个连接有两端,即点对点通信;

TCP提供可靠的传输服务;

TCP协议提供全双工通信(每条TCP连接只能一对一);

5.2.1 TCP报文段结构:

最大报文段长度:报文段中封装的应用层数据的最大长度。

TCP首部:

序号字段:TCP的序号是对每个应用层数据的每个字节进行编号

确认序号字段:期望从对方接收数据的字节序号,即该序号对应的字节尚未收到。用ack_seq标识;

TCP段的首部长度最短是20B ,最长为60字节。但是长度必须为4B的整数倍

TCP标记的作用:

5.3 可靠传输的基本原理

基本原理:

不可靠传输信道在数据传输中可能发生的情况:比特差错、乱序、重传、丢失

基于不可靠信道实现可靠数据传输采取的措施:

差错检测:利用编码实现数据包传输过程中的比特差错检测 确认:接收方向发送方反馈接收状态 重传:发送方重新发送接收方没有正确接收的数据 序号:确保数据按序提交 计时器:解决数据丢失问题;

停止等待协议:是最简单的可靠传输协议,但是该协议对信道的利用率不高。

连续ARQ(Automatic Repeat reQuest:自动重传请求)协议:滑动窗口+累计确认,大幅提高了信道的利用率。

5.3.1TCP协议的可靠传输

基于连续ARQ协议,在某些情况下,重传的效率并不高,会重复传输部分已经成功接收的字节。

5.3.2 TCP协议的流量控制

流量控制:让发送方发送速率不要太快,TCP协议使用滑动窗口实现流量控制。

5.4 TCP协议的拥塞控制

拥塞控制与流量控制的区别:流量控制考虑点对点的通信量的控制,而拥塞控制考虑整个网络,是全局性的考虑。拥塞控制的方法:慢启动算法+拥塞避免算法。

慢开始和拥塞避免:

【慢开始】拥塞窗口从1指数增长;

到达阈值时进入【拥塞避免】,变成+1增长;

【超时】,阈值变为当前cwnd的一半(不能2);

再从【慢开始】,拥塞窗口从1指数增长。

快重传和快恢复:

发送方连续收到3个冗余ACK,执行【快重传】,不必等计时器超时;

执行【快恢复】,阈值变为当前cwnd的一半(不能2),并从此新的ssthresh点进入【拥塞避免】。

5.5 TCP连接的三次握手(重要)

TCP三次握手使用指令:

面试常客:为什么需要三次握手?

第一次握手:客户发送请求,此时服务器知道客户能发;

第二次握手:服务器发送确认,此时客户知道服务器能发能收;

第三次握手:客户发送确认,此时服务器知道客户能收。

建立连接(三次握手):

第一次: 客户向服务器发送连接请求段,建立连接请求控制段(SYN=1),表示传输的报文段的第一个数据字节的序列号是x,此序列号代表整个报文段的序号(seq=x);客户端进入 SYN_SEND (同步发送状态);

第二次: 服务器发回确认报文段,同意建立新连接的确认段(SYN=1),确认序号字段有效(ACK=1),服务器告诉客户端报文段序号是y(seq=y),表示服务器已经收到客户端序号为x的报文段,准备接受客户端序列号为x+1的报文段(ack_seq=x+1);服务器由LISTEN进入SYN_RCVD (同步收到状态);

第三次: 客户对服务器的同一连接进行确认.确认序号字段有效(ACK=1),客户此次的报文段的序列号是x+1(seq=x+1),客户期望接受服务器序列号为y+1的报文段(ack_seq=y+1);当客户发送ack时,客户端进入ESTABLISHED 状态;当服务收到客户发送的ack后,也进入ESTABLISHED状态;第三次握手可携带数据;

5.6 TCP连接的四次挥手(重要)

释放连接(四次挥手)

第一次: 客户向服务器发送释放连接报文段,发送端数据发送完毕,请求释放连接(FIN=1),传输的第一个数据字节的序号是x(seq=x);客户端状态由ESTABLISHED进入FIN_WAIT_1(终止等待1状态);

第二次: 服务器向客户发送确认段,确认字号段有效(ACK=1),服务器传输的数据序号是y(seq=y),服务器期望接收客户数据序号为x+1(ack_seq=x+1);服务器状态由ESTABLISHED进入CLOSE_WAIT(关闭等待);客户端收到ACK段后,由FIN_WAIT_1进入FIN_WAIT_2;

第三次: 服务器向客户发送释放连接报文段,请求释放连接(FIN=1),确认字号段有效(ACK=1),表示服务器期望接收客户数据序号为x+1(ack_seq=x+1);表示自己传输的第一个字节序号是y+1(seq=y+1);服务器状态由CLOSE_WAIT 进入 LAST_ACK (最后确认状态);

第四次: 客户向服务器发送确认段,确认字号段有效(ACK=1),表示客户传输的数据序号是x+1(seq=x+1),表示客户期望接收服务器数据序号为y+1+1(ack_seq=y+1+1);客户端状态由FIN_WAIT_2进入TIME_WAIT,等待2MSL时间,进入CLOSED状态;服务器在收到最后一次ACK后,由LAST_ACK进入CLOSED;

为什么需要等待2MSL?

最后一个报文没有确认;

确保发送方的ACK可以到达接收方;

2MSL时间内没有收到,则接收方会重发;

确保当前连接的所有报文都已经过期。

六、应用层

为操作系统或网络应用程序提供访问网络服务的接口。应用层重点:

数据传输基本单位为报文;

包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)。

6.1 DNS详解

DNS(Domain Name System:域名系统)【C/S,UDP,端口53】:解决IP地址复杂难以记忆的问题,存储并完成自己所管辖范围内主机的 域名 到 IP 地址的映射。

域名解析的顺序:

【1】浏览器缓存,

【2】找本机的hosts文件,

【3】路由缓存,

【4】找DNS服务器(本地域名、顶级域名、根域名)-迭代解析、递归查询。

IP—DNS服务—便于记忆的域名

域名由点、字母和数字组成,分为顶级域(com,cn,net,gov,org)、二级域(baidu,taobao,qq,alibaba)、三级域(www)(12-2-0852)

6.2 DHCP协议详解

DHCP(Dynamic Configuration Protocol:动态主机设置协议):是一个局域网协议,是应用UDP协议的应用层协议。作用:为临时接入局域网的用户自动分配IP地址。

6.3 HTTP协议详解

文件传输协议(FTP):控制连接(端口21):传输控制信息(连接、传输请求),以7位ASCII码的格式。整个会话期间一直打开。

HTTP(HyperText Transfer Protocol:超文本传输协议)【TCP,端口80】:是可靠的数据传输协议,浏览器向服务器发收报文前,先建立TCP连接,HTTP使用TCP连接方式(HTTP自身无连接)。

HTTP请求报文方式:

GET:请求指定的页面信息,并返回实体主体;

POST:向指定资源提交数据进行处理请求;

DELETE:请求服务器删除指定的页面;

HEAD:请求读取URL标识的信息的首部,只返回报文头;

OPETION:请求一些选项的信息;

PUT:在指明的URL下存储一个文档。

6.3.1 HTTP工作的结构

6.3.2 HTTPS协议详解

HTTPS(Secure)是安全的HTTP协议,端口号443。基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护

原文地址:

(责任编辑:IT教学网)

更多

推荐HTML/Xhtml文章