计算机网络复习总结1
Posted 王嘻嘻-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络复习总结1相关的知识,希望对你有一定的参考价值。
1. 计算机网络
1.1 请介绍七层网络体系结构
-
为什么分七层
支持异构网络的互联互通。
-
七层简介
(1)物理层
任务:透明地传输比特流。
功能:为数据段设备提供传送数据通路
传输单位:比特
(2)数据链路层
任务:将网络层传输下来的IP数据报组装成帧
功能:
a. 链路连接的建立、拆除和分离
b. 帧定界和帧同步
c.差错检测
传输单位:帧
(3)网络层
任务:
a. 将传输层传下来的报文段封装成分组b. 选择合适的路由,使得传输层传下来的分组能够交付到目的主机
功能:
a. 为传输层提供服务
b. 组包和拆包
c. 路由选择
d. 拥塞控制
传输单位:数据段
(4)传输层
任务:负责主机中两个进程之间的通信
功能:
a. 为端到端连接提供可靠的服务
b. 为端到端连接提供流量控制、差错控制、服务质量等管理服务
传输单位:报文段(TCP)或 用户数据报(UDP)
(5)会话层
任务:不同主机上各进程间的对话
功能:管理主机间的会话进程,包括建立、管理以及终止进程间的会话。是一种端到端的服务。
(6)表示层
负责处理在两个内部数据表示结构不同的通信系统之间交换信息的表示格式,为数据加密和解密以及为提高传输效率提供必需的数据压缩以及解压等功能。
(7)应用层
任务:提供系统与用户的接口
功能:a.文件传输 b. 访问和管理 c. 电子邮件服务
1.2 请介绍五层网络体系结构
-
应用层(application layer)
(1) 应用层是体系结构中最高的。直接为用户的应用进程提供服务。
(2) 在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等等。
-
传输层(transport layer)
(1) 传输层负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。
a. 复用,就是多个应用层进程可同时使用下面运输层的服务。
b. 分用,就是把收到的信息分别交付给上面应用层中相应的进程。
(2) 传输层主要使用以下两种协议:
- 传输控制协议TCP (Transmission Control Protocol):面向连接的,数据传输的单位是报文段,能够提供可靠的交付。
- 用户数据包协议UDP (User Datagram Protocol):无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。
-
网络层(network layer)
(1) 负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把传输层残生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。
(2) 选中合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。
-
数据链路层(data link layer)
常简称为链路层,我们知道,两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,在两个相邻结点之间传送数据是直接传送的(点对点),这时就需要使用专门的链路层的协议。
在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点之间的链路上“透明”地传送帧中的数据。
每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。典型的帧长是几百字节到一千多字节。
”透明”是一个很重要的术语。它表示,某一个实际存在的事物看起来却好像不存在一样。”在数据链路层透明传送数据”表示不管什么样的比特组合的数据都能够通过这个数据链路层。因此,对所传送的数据来说,这些数据就“看不见”数据链路层。或者说,数据链路层对这些数据来说是透明的。
(1) 在接收数据时,控制信息使接收端能知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。
(2) 控制信息还使接收端能检测到所收到的帧中有无差错。如发现有差错,数据链路层就会丢弃这个出了差错的帧,以免浪费网络资源。如需改正错误,就由传输层的TCP协议来完成。
-
物理层(physical layer)
在物理层上所传数据的单位是比特。物理层的任务就是透明地传送比特流。
1.3 了解网络编程协议吗?客户端发送给服务器的请求,怎么确定具体的协议?
了解,客户端发送给服务器端的请求,可以根据统一资源定位系统(uniform resource locator,URL)来确定具体使用的协议。
一个完整的URL包括协议部分、网址、文件地址部分。协议部分以 // 为分隔符,在internet中,我们可以使用多种协议:
HTTP——HyperText Transfer Protocol(超文本传输协议)
FTP——File Transfer Protocol(文件传输协议)
Gopher——The Internet Gopher Protocol(网际Gopher协议)
File——本地文件传输协议
HTTPS——安全套接字层超文本传输协议(http的安全版)
1.4 分别介绍下 TCP、HTTP、FTP
TCP、HTTP、FTP分别属于传输层、应用层、应用层。
-
TCP协议简介
(1)TCP协议的特性
TCP是面向连接的,提供全双工的服务,数据流可以双向传输。也是点对点的,即在单个发送放方和单个接收方之间的连接。
(2)TCP 报文段结构
序号:TCP 的序号是数据流中的字节数,不是分组的序号。表示该报文段数据字段首字节的序号。
确认号:TCP 使用累积确认,确认号是第一个未收到的字节序号,表示希望接收到的下一个字节。
首部长度:通常选项字段为空,所以一般 TCP 首部的长度是 20 字节。
选项字段(可选与变长的):用于发送方与接收方协商 MSS(最大报文段长),或在高速网络环境下用作窗口调节因子。
标志字段
ACK:指示确认字段中的值是有效的
RST,SYN,FIN:连接建立与拆除
PSH:指示接收方应立即将数据交给上层
URG:报文段中存在着(被发送方的上层实体位置)“紧急”的数据
接收窗口:用于流量控制(表示接收方还有多少可用的缓存空间)。
TCP RFC 并没有规定失序到达的分组应该如何处理,而是交给程序员。可以选择丢弃或保留。如果发生超时,TCP 只重传第一个已发送而未确认的分组,超时时间间隔会设置为原来的 2 倍。
(3)流量控制
如果应用程序读取数据相当慢,而发送方发送数据太多、太快,会很容易使接收方的接收缓存溢出,流量控制就是用来进行发送速度和接收速度的匹配。发送方维护一个“接收窗口”变量,这个变量表示接收方当前可用的缓存空间。
-
HTTP(超文本传输协议)简介
(1)HTTP协议的特性
五大特点:a. 支持客户/服务器模式;b. 简单快速;c. 灵活;d. 无连接;e. 无状态。
无连接:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
无状态:指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。
(2)HTTP 客户机及服务器
HTTP 客户机:web 浏览器
HTTP 服务器:web 服务器,包含 web 对象(html 文件、JPEG 文件、java 小程序、视频片段等)
(3)HTTP 方法字段:
GET:绝大部分 HTTP 请求报文使用 GET 方法
POST:用户提交表单时(如向搜索引擎提供关键字),但提交表单不一定要用 POST 方法
HEAD:类似于 GET,区别在于服务器返回的响应报文中不包含请求对象(常用于故障跟踪)
PUT:用于向服务器上传对象
DELETE:用于删除服务器上的对象
(4)HTTP 状态信息
301 Permanently Moved 被请求的资源已永久移动到新位置,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
302 Found 请求的资源现在临时从不同的URL响应请求。301是永久重定向,而302是临时重定向。
200 OK 从客户端发来的请求在服务器端被正确处理
304 Not Modified 告诉浏览器可以从缓存中获取所请求的资源。
400 bad request 请求报文存在语法错误
403 forbidden 对请求资源的访问被服务器拒绝
404 not found 在服务器上没有找到请求的资源
500 internal sever error 表示服务器端在执行请求时发生了错误
503 service unavailable 表明服务器暂时处于超负载或正在停机维护,无法处理请求
(4)HTTP中常见的文件格式
text/html: HTML格式
text/plain:纯文本格式
image/jpeg:jpg图片格式
application/json: JSON数据格式
application/x-www-form-urlencoded: form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据格式)
multipart/form-data: 在表单中进行文件上传时使用
-
FTP(文件传输协议)
FTP 使用两个并行的 TCP 连接来传输文件:
(1)控制连接(持久):传输控制信息,如用户标识、口令、改变远程目录命令、文件获取上传的命令;
(2)数据连接(非持久):传输实际文件。
FTP 客户机发起向 FTP 服务器的控制连接,然后在该连接上发送用户标识和口令、改变远程目录的命令。FTP服务器收到命令后,发起一个到客户机的数据连接,在该连接上准确地传送一个文件并关闭连接。
有状态的协议:FTP 服务器在整个会话期间保留用户的状态信息。服务器必须把特定的用户账号和控制连接联系起来。
-
传输层
(1)传输层的服务基本原理
a. 多路复用和解复用(分路)技术
复用:发送方的不同的应用进程都可以使用同一个传输层协议传送数据;
分路技术:接收方的传输层剥去报文首部之后能把这些数据正确的传输到正确的应用进程上。
b. 可靠数据传输
c. 流量控制和拥塞控制
(2)传输层提供的服务
a. 传输层寻址和端口
端口号就是用来标识应用进程的数字标识。其端口号的长度为16Bit;也就是能够标识2^16个不同的端口号。另外端口号根据端口范围分为2类。分别为服务端使用的端口号(熟知端口号数值范围:0-1023;登记端口号数值范围:1024-49151)和客户端使用的端口号(数值范围为49152-65535)。常见端口号如下:
FTP:21
TELNET:23
SMTP:25
DNS:53
TFTP:69
HTTP:80
SNMP:161 b. 无连接服务和面向连接服务
(3)流量控制和拥塞控制
a. 流量控制:如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。
b. 拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
两者的区别:流量控制是为了预防拥塞。如:在马路上行车,交警跟红绿灯是流量控制,当发生拥塞时,如何进行疏散,是拥塞控制。流量控制指点对点通信量的控制。而拥塞控制是全局性的,涉及到所有的主机和降低网络性能的因素。
-
应用层
应用层的具体内容就是规定应用进程在通信时所遵循的协议。应用层协议分类如下:
(1) 域名系统(Domain Name System,DNS):用于实现网络设备名字到IP地址映射的网络服务。
(2) 文件传输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能。
(3) 简单邮件传送协议(Simple Mail Transfer Protocol, SMTP):用于实现电子邮箱传送功能
(4) 超文本传输协议(HyperText Transfer Protocol,HTTP):用于实现 WWW 服务。
(5) 简单网络管理协议(simple Network Management Protocol,SNMP):用于管理与监视网络设备。
(6) 远程登录协议(Telnet):用于实现远程登录功能。
1.5 讲一下TCP/IP协议。
-
TCP/IP协议定义
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
-
TCP/IP协议组成
TCP/IP结构模型分为应用层、传输层、网络层、链路层(网络接口层)四层,以下是各层的详细介绍:
(1)应用层
应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。
a. 对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议。
b. 能加密、解密、格式化数据。
c. 可以建立或解除与其他节点的联系,这样可以充分节省网络资源。
(2)传输层
作为TCP/IP协议的第二层,传输层在整个TCP/IP协议中起到了中流砥柱的作用。且在传输层中,TCP和UDP也同样起到了中流砥柱的作用。
(3)网络层
网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行建立和终止网络连接,IP寻址等。
(4)链路层(网络接口层)
在TCP/IP协议中,数据链路层位于第四层。由于网络接口层兼并了物理层和数据链路层。所以,网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。
-
TCP/IP协议特点
TCP/IP协议能够迅速发展起来并成为事实上的标准,是它恰好适应了世界范围内数据通信的需要。
(1)协议标准是完全开放的,可以供用户免费使用,并且独立于特定的计算机硬件与操作系统;
(2)独立于网络硬件系统,可以运行在广域网,更适合于互联网;
(3)网络地址统一分配,网络中每一设备和终端都具有一个唯一地址;
(4)高层协议标准化,可以提供多种多样可靠网络服务。
1.6 说一说你对ARP协议的理解。
ARP协议即地址解析协议,是根据 IP 地址获取MAC地址的一个网络层协议。在传输一个 IP 数据报的时候,确定了源 IP 地址和目标 IP 地址后,就会通过主机「路由表」确定 IP 数据包下一跳。然而,网络层的下一层是数据链路层,所以我们还要知道「下一跳」的 MAC 地址。
由于主机的路由表中可以找到下一跳的 IP 地址,所以可以通过 ARP 协议,求得下一跳的 MAC 地址。
那么 ARP 又是如何知道对方 MAC 地址的呢?
简单地说,ARP 是借助 ARP 请求与 ARP 响应两种类型的包确定 MAC 地址的。
- 主机会通过广播发送 ARP 请求,这个包中包含了想要知道的 MAC 地址的主机 IP 地址。
- 当同个链路中的所有设备收到 ARP 请求时,会去拆开 ARP 请求包里的内容,如果 ARP 请求包中的目标 IP 地址与自己的 IP 地址一致,那么这个设备就将自己的 MAC 地址塞入 ARP 响应包返回给主机。
操作系统通常会把第一次通过 ARP 获取的 MAC 地址缓存起来,以便下次直接从缓存中找到对应 IP 地址的 MAC 地址。
不过,MAC 地址的缓存是有一定期限的,超过这个期限,缓存的内容将被清除。
RARP 协议你知道是什么吗?
ARP 协议是已知 IP 地址求 MAC 地址,那 RARP 协议正好相反,它是已知 MAC 地址求 IP 地址。例如将打印机服务器等小型嵌入式设备接入到网络时就经常会用得到。
通常这需要架设一台 RARP 服务器,在这个服务器上注册设备的 MAC 地址及其 IP 地址。然后再将这个设备接入到网络,接着:
- 该设备会发送一条「我的 MAC 地址是XXXX,请告诉我,我的IP地址应该是什么」的请求信息。
- RARP服务器接到这个消息后返回「MAC地址为 XXXX 的设备,IP地址为 XXXX」的信息给这个设备。
最后,设备就根据从 RARP 服务器所收到的应答信息设置自己的 IP 地址。
1.7 IP协议包含哪些字段?
IP所包含字段结构图如下:
IP协议包含字段如下:
4位版本号:指定IP协议的版本,对于IPv4来说就是4
4位头部长度:IP头部长度有多少个4字节,所以头部最大长度就是15*4=60字节
8位服务类型:3位优先权(已弃用),4位TOS字段,1位保留字段(必须设置为0)。4为TOS为:最小延时,最大吞吐量,最高可靠性,最小成本,这四个只能选择一个
16位总长度:IP数据报整体占多少字节
16为标识:唯一的标识主机发送的报文,IP报文在数据链路层被分片,那么每一个片中的标识都是相同的
3位标志字段:第一位保留,第二位置1表示进制分片(报文长度超过MTU,丢弃报文),第三位更多分片,最后一个分片是1,其他是0
13位分片偏移:相对于原始IP报文开始处的偏移
8位生存时间:数据报到达目的地的最大报文跳数,每经过一个路由,TTL-=1,一直到0都没有到达目的地,报文丢弃。
8位协议:表示上层协议类型,把IP交给TCP还是UDP,其中ICMP是1,TCP是6,UDP是17
16位头部校验和:使用CRC校验,鉴别头部是否损坏
32位源地址和32位目标地址:表示发送端和接收端
1.8 应用层都包含什么协议?
- 域名系统(Domain Name System,DNS):用于实现网络设备名字到IP地址映射的网络服务。
- 文件传输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能。
- 简单邮件传送协议(Simple Mail Transfer Protocol, SMTP):用于实现电子邮箱传送功能。
- 超文本传输协议(HyperText Transfer Protocol,HTTP):用于实现WWW服务。
- 简单网络管理协议(simple Network Management Protocol,SNMP):用于管理与监视网络设备。
- 远程登录协议(Telnet):用于实现远程登录功能。
应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递消息。特别是定义了:
- 交换的消息类型,如请求消息和响应消息。
- 各种消息类型的语法,如消息中的各个字段及其详细描述。
- 字段的语义,即包含在字段中的信息的含义。
- 进程何时、如何发送消息及对消息进行响应的规则。
- 有些应用层协议是由RFC文档定义的,因此它们位于公共领域,例如HTTP。
- 有些应用层协议是公司或者个人私有的,位于私人领域,例如QQ。
1.9 应用层报文怎么传输到另一个应用层?
应用层数据(报文)向外发送时,数据是由最上面的应用层向下经过一层层封装后发送给物理层;而接收数据时,数据是由物理层向上经过一层层解封后发给应用层。数据的封装和解封过程如下:
-
数据的封装过程简介
传输层及其以下的机制由内核提供, 应用层由用户进程提供, 应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。 应用层数据通过协议栈发到网络上时,每层协议都要加上一个相对应的头部(header ),该过程称为封装。封装过程如下:
-
数据的解封过程简介
不同的协议层对数据包有不同的称谓 ,在传输层叫段(segment ),在网络层叫做数据报( datagram) ,在链路层叫做帧(frame )。数据封装成帧后发到传输介质上,到达目的主机后,每层协议再剥掉相应的头部,最后将应用层数据交给应用程序处理,该过程称为解封。解封过程如下:
-
举例说明数据封装和解封装过程
(1)从计算机 A 的应用层内网通软件向计算机 B 发出一个消息,生成数据;
(2)请求从计算机 A 的应用层下到计算机 A 的传输层,传输层在上层数据前面加上 TCP 报头,报头中包括目标端口以及源端口;
(3)传输层数据到网络层,计算机A在网络层封装,源 IP地址为计算机A地址,目标IP地址为计算机B地址;
(4)计算机 A 将计算机B 的 IP 地址和子网掩码与自己做比对,可以发现计算机B与自己处于相同的子网。所以数据传输不必经过网关设备;
(5)数据包下到计算机A的数据链路层进行封装,源 MAC 地址为计算机A的 MAC地址,目标 MAC 地址查询自己的 ARP 表。
(6)计算机 A 把帧转换成 bit 流,从物理接口网卡发出;
(7)物理层接收到电信号,把它交给数据链路层进行查看帧的目标 MAC 地址,和自己是否相等,如果相等说明该帧是发送给自己的,于是将MAC帧头解开并接着上传到网络层;
(8)网络层查看目标 IP 地址和自己是否匹配,如果匹配即解开 IP 头封装。然后再把数据上传到传输层;
(9)传输层解开对应的包头之后,继续把数据传给应用层,计算机 B 即可接收到计算机 A 发的消息。
报文、报文段、分组、包、数据报、帧、数据流的概念区别如下:
-
报文(message)
我们将位于应用层的信息分组称为报文。报文是网络中交换与传输的数据单元,也是网络传输的单元。报文包含了将要发送的完整的数据信息,其长短不需一致。报文在传输过程中会不断地封装成分组、包、帧来传输,封装的方式就是添加一些控制信息组成的首部,那些就是报文头。
-
报文段(segment)
通常是指起始点和目的地都是传输层的信息单元。
-
分组/包(packet)
分组是在网络中传输的二进制格式的单元,为了提供通信性能和可靠性,每个用户发送的数据会被分成多个更小的部分。在每个部分的前面加上一些必要的控制信息组成的首部,有时也会加上尾部,就构成了一个分组。它的起始和目的地是网络层。
-
数据报(datagram)
面向无连接的数据传输,其工作过程类似于报文交换。采用数据报方式传输时,被传输的分组称为数据报。通常是指起始点和目的地都使用无连接网络服务的的网络层的信息单元。
-
帧(frame)
帧是数据链路层的传输单元。它将上层传入的数据添加一个头部和尾部,组成了帧。它的起始点和目的点都是数据链路层。
-
数据单元(data unit)
指许多信息单元。常用的数据单元有服务数据单元(SDU)、协议数据单元(PDU)。
SDU是在同一机器上的两层之间传送信息。PDU是发送机器上每层的信息发送到接收机器上的相应层(同等层间交流用的)。
—— 内容源于网络
以上是关于计算机网络复习总结1的主要内容,如果未能解决你的问题,请参考以下文章