我是靠谱客的博主 震动月亮,最近开发中收集的这篇文章主要介绍计算机网络 面试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是计算机网络
是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统.
计算机网络的主要功能有哪些
数据通信、资源共享、提高可靠性、促进分布式数据处理和分布式数据库的发展
计算机网络由哪些部分组成,什么是通信子网和资源子网?试述这种层次结构观的特点以及各层的作用是什么?
通信控制处理机构成的通信子网是网络的内层,或骨架层,是网络的重要组成部分。网上主机负责数据处理,是计算机网络资源的拥有者,它们组成了网络的资源子网,是网络的外层,通信子网为资源子网提供信息传输服务,资源子网上用户间的通信是建立在通信子网的基础上。没有通信子网,网络不能工作,而没有资源子网,通信子网的传输也失去了意义,两者合起来组成了统一的资源共享的两层网络。将通信子络的规模进一步扩大,使之变成社会公有的数据通信网。
写出现代计算机网络的五个方面的应用
企业信息网络、联机事务处理、POS系统、电子邮件系统、电子数据交换系统、万维网(WWW)信息浏览、电子邮件(E-mail)、文件传输(FTP)、远程登录(Telnet)、电子公告牌(bulletin broad system, BBS以及Net-news)、电子商务、和远程教育等。

什么叫计算机对等网络
对等连接(peer-to-peer,简写为 P2P)是指两个主机在通行时并不区分哪一个是服务请求方还是服务提供方。只要两个主机都运行了对等连接软件(P2P软件),它们就可以进行平等的、对等连接通信。对等网是一种投资少、见效快、高性价比的实用型小型网络系统。

简述地址解析协议ARP和反向地址解析协议RARP的作用
ARP用来把一个连在同一个物理网上的IP地址转换成该机的物理地址的协议。
RARP用来将已知的物理地址转换成IP地址。

TCP/IP是什么中英文协议的名称
TCP/IP(Transmission control protocol/Internet protocol)的缩写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议,Internet国际互联网络的基础,简单的说,就是有网络层的ip协议和传输层的TCP协议组成。

OSI参考模型层次结构的七层名称是什么
什么是OSI,OSI是Open System Interconnection 的缩写,意为开放式系统互联参考模型。这个模型把网络通信的工作分为7层,它们由低到高分别是物理层(Physical Layer),数据链路层(Data Link Layer),网络层(Network Layer),传输层(Transport Layer),会话层(Session Layer),表示层(Presentation Layer)和应用层(Application Layer)。第一层到第三层属于OSI参考模型的低三层,负责创建网络通信连接的链路;第四层到第七层为OSI参考模型的高四层,具体负责端到端的数据通信。每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。当然并不是每一通信都需要经过OSI的全部七层,有的甚至只需要双方对应的某一层即可。物理接口之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由器与路由器之间的连接则只需经过网络层以下的三层即可。总的来说,双方的通信是在对等层次上进行的,不能在不对称层次上进行通信。

简述什么叫集线器(HUB)?在那一层工作?
集线器(HUB),是工作于物理层的一种设备,用于简单的网络扩展,是接收单个信号再将其广播到多个端口的电子设备;集线器类型包括:被动集线器、主动集线器和智能集线器

简述局域网中使用的三种基本拓扑结构,星型、环型和总线型的优缺点
星型
优点:
(1)控制简单。任何一站点只和中央节点相连接,因而介质访问控制方法简单,致使访问协议也十分简单。易于网络监控和管理。
(2)故障诊断和隔离容易。中央节点对连接线路可以逐一隔离进行故障检测和定位,单个连接点的故障只影响一个设备,不会影响全网。
(3)方便服务。中央节点可以方便地对各个站点提供服务和网络重新配置。
缺点:
(1)需要耗费大量的电缆,安装、维护的工作量也骤增。
(2)中央节点负担重,形成“瓶颈” ,一旦发生故障,则全网受影响。
(3)各站点的分布处理能力较低。
环形
优点:
(1)信息流在网中是沿着固定方向流动的,两个节点仅有一条道路,故简化了路径选择的控制
(2)环路上各节点都是自举控制,故控制软件简单
缺点:
(1)由于信息源在环路中是串行地穿过各个节点,当环中节点过多时,势必影响信息传输速率,使网络的响应时间延长
(2)环路是封闭的不便于扩充
(3)可靠性低,一个节点故障,将会造成全网瘫痪;维护难,对分支节点故障定位较难。
总线型:
优点:
(1)布线要求简单
(2)扩充容易,端用户失效、增删不影响全网工作。
缺点:
(1)传输速度慢,一次仅能一个端用户发送数据;
(2)媒体访问获取机制较复杂;
(3)网络可靠性差,维护难,任意一节点出现问题会导致整个网瘫痪。
在这里插入图片描述

第一章 计算机网络体系结构

计算机网络的主要功能?

1. 硬件资源共享。
可以在全网范围内提供对处理资源、存储资源、输入输出资源等昂贵设备的共享,使用户节省投资,也便于集中管理和均衡分担负荷。
2. 软件资源共享。
允许互联网上的用户远程访问各类大弄数据库,可以得到网络文件传送服务、远地进程管理服务和远程文件访问服务,从而避免软件研制上的重复劳动以及数据资源的重复存贮,也便于集中管理。
3. 用户间信息交换。
计算机网络为分布在各地的用户提供了强有力的通信手段。用户可以通过计算机网络传送电子邮件、发布新闻消息和进行电子商务活动。
4. 分布式处理
当计算机网络中某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络中的其他计算机系统,从而利用空闲计算机资源以提高整个系统的利用率。

主机间的通信方式?

客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。
对等(P2P):不区分客户和服务器。

电路交换,报文交换和分组交换的区别?

电路交换:整个报文的比特流从源点连续的直达终点,像在一个管道中传输。包括建立连接、传输数据和断开连接三个阶段。最典型的电路交换网络是传统电话网络。
报文交换:将整个报文转发到相邻节点,全部存储下来,查找转发表,转发到下一个节点。是存储-转发类型的网络。
分组交换:将报文分组转发到相邻节点,查找转发表,转发到下一个节点。也是存储-转发类型的网络。

计算机网络的主要性能指标

1、带宽(Bandwidth)
本来表示通信线路允许通过的信号频带范围,但在计算机网络中,带宽表示网络的通信线路所能传送数据的能力,是数字信道所能传送的“最高数据率”的同义词,单位是比特/秒(b/s)。

2、时延(Delay)
总时延 = 排队时延 + 处理时延 + 传输时延 + 传播时延
  (1) 排队时延
  分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。
  (2) 处理时延
  主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等。
  (3) 传输时延(发送时延)
  结点将分组所有比特推向链路所需的时间。
  (4) 传播时延
  电磁波在信道中传播所需要花费的时间,电磁波传播的速度接近光速。 

3、时延带宽积
指发送端发送的第一个比特即将到达终点时,发送端已经发送了多少个比特,因此又称以比特为单位的链路长度,即时延带宽积 = 传播时延 * 信道带宽。

计算机网络提供的服务的三种分类

1、面向连接服务与无连接服务

在面向连接服务中, 通信前双方必须先建立连接, 分配相应的资源(如缓冲区), 以保证通 信能正常进行, 传输结束后释放连接和所占用的资源。因此这种服务可以分为连接建立、数据传 输和连接释放三个阶段。例如TCP就是一种面向连接服务的协议。

在无连接服务中, 通信前双方不需要先建立连接, 需要发送数据时可直接发送,把每个带有 目的地址的包(报文分组) 传送到线路上, 由系统选定路线进行传输。这是一种不可靠的服务。 这种服务常被描述为“尽最大努力交付" (Best-Effort-Delivery), 它并不保证通信的可靠性。例如 IP、UDP就是一种无连接服务的协议。

2、可靠服务和不可靠服务

可靠服务是指网络具有纠错、检错、应答机制, 能保证数据正确、可靠地传送到目的地。 不可靠服务是指网络只是尽晕正确、可靠地传送, 而不能保证数据正确、可靠地传送到目的 地, 是一种尽力而为的服务。

对于提供不可靠服务的网络, 其网络的正确性、可靠性要由应用或用户来保障。例如, 用户 收到信息后要判断信息的正确性, 如果不正确, 那么用户要把出错信息报告给信息的发送者, 以 便发送者采取纠正措施。通过用户的这些措施, 可以把不可靠的服务变成可靠的服务。

3、有应答服务和无应答服务

有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动 实现, 而不由用户实现。所发送的应答既可以是肯定应答, 也可以是否定应答, 通常在接收到的 数据有错误时发送否定应答。例如, 文件传输服务就是一种有应答服务。

无应答服务是指接收方收到数据后不自动给出应答。若需要应答, 则由高层实现。例如, 对 于WWW服务, 客户端收到服务器发送的页面文件后不给出应答。

ISO/OSI参考模型和TCP/IP模型?

五层协议
- 应用层 :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。
- 传输层 :为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。(流量控制、差错控制、服务质量、数据传输管理、端到端)
- 网络层 :为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。(流量控制、拥塞控制、差错控制、网际互联)
- 数据链路层 :网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。(封装成帧、差错控制、流量控制、传输管理)
- 物理层 :考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。

OSI其中表示层和会话层用途如下:
表示层 :数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。
会话层 :建立及管理会话。
五层协议没有表示层和会话层,而是将这些功能留给应用程序开发者处理。

TCP/IP	
它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。	
TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。

端到端通信和点到点通信的区别

  • 从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到点的服务, 而传输层为网络中的主机提供端到端的通信。

  • 直接相连的结点之间的通信称为点到点通信, 它只提供一台机器到另一台机器之间的通信, 不涉及程序或进程的概念。同时,点到点通信并不能保证数据传输的可靠性,也不能说明源主机 与目的主机之间是哪两个进程在通信,这些工作都是由传输层来完成的。

  • 端到端通信建立在点到点通信的基础上,它是由一段段的点到点通信信道构成的,是比点到 点通信更高一级的通信方式,以完成应用程序(进程) 之间的通信。”端” 是指用户程序的端口, 端口号标识了应用层中不同的进程。

第二章物理层

如何理解同步和异步?什么是同步通信和异步通信

在计算机网络中,同步(Synchronous)的意思很广泛,没有统一的定义。例如,协议的三个 要素之一就是“ 同步”。在网络编程中常提到的“同步” 则主要指某函数的执行方式, 即函数调 用者需等待函数执行完后才能进入下一步。异步(Asynchronous)可简单地理解为“ 非同步”。 在数据通信中,同步通信与异步通信区别较大。

同步通信的通信双方必须先建立同步, 即双方的时钟要调整到同一个频率。收发双方不停地 发送和接收连续的同步比特流。主要有两种同步方式: 一种是全网同步, 即用一个非常精确的主 时钟对全网所有结点上的时钟进行同步;另一种是准同步, 即各结点的时钟之间允许有微小的误 差,然后采用其他措施实现同步传输。同步通信数据率较高,但实现的代价也较高。

异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的,但接收端必须时刻做 好接收的准备。发送端可以在任意时刻开始发送字符, 因此必须在每个字符开始和结束的地方加 上标志, 即开始位和停止位,以便使接收端能够正确地将每个字符接收下来。异步通信也可以帧 作为发送的单位。这时,帧的首部和尾部必须设有一些特殊的比特组合,使得接收端能够找出一 帧的开始(即帧定界)。异步通信的通信设备简单、便宜,但传输效率较低(因为标志的开销所占比例较大)。

频分复用 时分复用 波分复用 码分复用

频分复用:给每个信号分配唯一的载波频率并通过单一媒体来传输多个独立信号的方法。

时分复用:把多个信号复用到单个硬件传输信道,它允许每个信号在一个很短的时间使用信道,接着再让下一个信号使用。

波分复用:就是光的频分复用。用一根光纤同时传输多个频率很接近的光载波信号。

码分复用:码分复用是用一组包含互相正交的码字的码组携带多路信号。每一个用户可以在同样的时间使用同样的频带进行通信。由于各用户使用经过特殊挑选的不同码型,各用户之间不会造成干扰,因此这种系统发送的信号有很强的抗干扰能力。

第三章 数据链路层

为什么要进行流量控制

由于接收发双方各自的工作速率和缓存空间的差异,可能出现发送方的发送能力大于接收方的 接收能力的现象,如若此时不适当限制发送方的发送速率(即链路上的信息流量),前而来不及接收的帧将会被后面不断发送辈的帧"淹没",造成帧的丢失而出错。

因此流量控制实际上就是限制发送方的数据流量,使其发送速率不超过接收方的接收能力。 这个过程需要通过某种反馈机制使发送方能够知道接收方是否能跟上自己,即需要有一些规则使得发送方知道在什么情况下可以接着发送下一帧而在什么情况下必须暂停发送,以等待收到某种反馈信息后继续发送。

流量控制的常见方式

1、停止-等待流量控制方式基本原理(发送窗口大小=1,接受窗口大小=1)
发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧, 都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直 等待。每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很低。

2、滑动窗口流量控制方式基本原理
在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口用来对发送方进行流量控制,而发送窗口的大小代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。

3、后退N帧协议(GBN)(发送窗口大小>1,接收窗口大小=1)
在后退N 帧式ARQ 中,发送方无须在收到上一个帧的ACK 后才能开始发送下一帧,而是可以连续发送帧。当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了N 个帧后,若发现该N 个帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重传该出错帧及随后的N 个帧。换句话说,接收方只允许按顺序接收帧。(接收窗口大小=1则按序接收)
后退N 帧协议一方面因连续发送数据帧而提高了信道的利用率,另一方面在重传时又必须把原来已传送正确的数据帧进行重传(仅因这些数据帧的前面有一个数据帧出了错),这种做法又使传送效率降低。由此可见,若信道的传输质量很差导致误码率较大时,后退N 帧协议不一定优于停止-等待协议。

4、选择重传协议(SR)(发送窗口大小>1,接收窗口大小>1)
为进一K步提高信道的利用率,可设法只重传出现差错的数据帧或计时器超时的数据帧,但此时必须加大接收窗口,以便先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺序号的数据帧收到后再一并送交主机。这就是选择重传ARQ 协议。
在选择重传协议中,每个发送缓冲区对应一个计时器,当计时器超时时,缓冲区的帧就会重传。另外,该协议使用了比上述其他协议更有效的差错处理策略,即一旦接收方怀疑帧出错,就会发一个否定帧NAK给发送方,要求发送方对NAK中指定的帧进行重传。

可靠传输机制有哪些?

数据链路层的可靠传输通常使用确认和超时重传两种机制来完成。

确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。

超时重传是指发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据帧,直到发送成功为止。

自动重传请求(Auto Repeat reQuest, ARQ) 通过接收方请求发送方重传出错的数据帧来恢复出错的帧,是通信中用于处理信道所带来差错的方法之一。传统自动重传请求分为三种,即停止-等待(Stop-and-Wait) ARQ 、后退N 帧(Go-Back-N) ARQ 和选择性重传(Selective Repeat)ARQ,后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ 协议。注意,在数据链路层中流量控制机制和可靠传输机制是交织在一起的。

第四章 网络层

路由器的主要功能?
路由器主要完成两个功能:
一是路由选择(确定哪一条路径)。根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表
二是分组转发(当一个分组到达时所采取的动作)。处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等。

路由选择。指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。

分组转发。指路由器根据转发表将用户的IP 数据报从合适的端口转发出去。路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化。在讨论路由选择的原理时,往往不去区分转发表和路由表,而是笼统地使用路由表一词。

动态路由算法

1、距离-向量路由算法(例如RIP算法)

在距离-向量路由算法中,所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点。这种路由选择表包含:1.每条路径的目的地(另一结点)。2.路径的代价(也称距离)。

在这种算法中,所有结点都必须参与距离向量交换,以保证路由的有效性和一致性,也就是说,所有的结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新它们的路由选择表:

    被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由。

    发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离(较小的代价)。此种情况下,就用经过发送路由信息的结点的新路由替换路由表中到达那个目的地的现有路由。

2、链路状态路由算法(例如OSPF算法)

链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息,它们执行下述两项任务。第一,主动测试所有邻接结点的状态。两个共享一条链接的结点是相邻结点,它们连接到同一条链路,或者连接到同一广播型物理网络。第二,定期地将链路状态传播给所有其他结点(或称路由结点)

距离-向量路由算法与链路状态路由算法的比较:在距离-向量路由算法中,每个结点仅与它的直接邻居交谈,它为它的邻居提供从自已到网络中所有其他结点的最低费用估计。在链路状态路由算法中,每个结点通过广播的方式与所有其他结点交谈,但它仅告诉它们与它直接相连的链路的费用。相较之下,距离~向量路由算法有可能遇到路由环路等问题。

3、一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP), 也称域内路由选择,具体的协议有RIP 和OSPF 等。

路由信息协议(Routing Information Protocol, RIP) 是内部网关协议IGP) 中最先得到广泛应用的协议。RIP 是一种分布式的基于距离向量的路由选择协议,其最大优点就是简单。
RIP 规定:

网络中的每个路由器都要维护从它自身到其他每个目的网络的距离记录(因此这是一组距离,称为距离向量)。

距离也称跳数(Hop Count), 规定从一个路由器到直接连接网络的距离(跳数)为1 。而每经过一个路由器,距离(跳数)加1 。

RIP 认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径。

RIP 允许一条路径最多只能包含15 个路由器(即最多允许15 跳)。因此距离等于16 时,它表示网络不可达。可见RIP 只适用于小型互联网。距离向量路由可能会出现环路的情况,规定路径上的最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性。

RIP 默认在任意两个使用RIP 的路由器之间每30 秒广播一次RIP 路由更新信息,以便自动建立并维护路由表(动态维护)。

开放最短路径优先(OSPF) 协议是使用分布式链路状态路由算法的典型代表,也是内部网关协议(IGP) 的一种。OSPF 与RIP 相比有以下4 点主要区别:

1.OSPF 向本自治系统中的所有路由器发送信息,这里使用的方法是洪泛法。而RIP 仅向自已相邻的几个路由器发送信息。

2.发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。”链路状态”说明本路由器和哪些路由器相邻及该链路的“度量”(或代价)。而在RIP 中,发送的信息是本路由器所知道的全部信息,即整个路由表。

3.只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并且更新过程收敛得快,不会出现RIP" 坏消息传得慢"的问题。而在RIP 中,不管网络拓扑是否发生变化,路由器之间都会定期交换路由表的信息。
除以上区别外, OSPF 还有以下特点:

OSPF 对不同的链路可根据IP 分组的不同服务类型(TOS) 而设置成不同的代价。因此,OSPF 对千不同类型的业务可计算出不同的路由,十分灵活。

如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这称为多路径间的负载平衡。

所有在OSPF 路由器之间交换的分组都具有鉴别功能,因而保证了仅在可信赖的路由器之间交换链路状态信息

自治系统之间所使用的路由选择协议称为外部网关协议(EGP), 也称域间路由选择,用在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径。具体的协议有BGP
边界网关协议(Border Gateway Protocol, BGP) 是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。边界网关协议常用于互联网的网关之间。路由表包含已知路由器的列表、路由器能够达到的地址及到达每个路由器的路径的跳数。内部网关协议主要设法使数据报在一个AS 中尽可能有效地从源站传送到目的站。在一个AS内部不需要考虑其他方面的策略。然而BGP 使用的环境却不同,主要原因如下:

  1. 因特网的规模太大,使得自治系统之间路由选择非常困难。
  2. 对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。
  3. 自治系统之间的路由选择必须考虑有关策略。
    边界网关协议(BGP) 只能力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非寻找一条最佳路由。BGP 采用的是路径向量路由选择协议,它与距离向量协议和链路状态协议有很大的区别。BGP 是应用层协议,它是基于TCP 的。

BGP 的工作原理如下:每个自治系统的管理员要选择至少一个路由器(可以有多个)作为该自治系统的"BGP 发言人“。一个BGP 发言人与其他自治系统中的BGP 发言人要交换路由信息,就要先建立TCP 连接(可见BGP 报文是通过TCP 传送的,也就是说BGP 报文是TCP 报文的数据部分),然后在此连接上交换BGP 报文以建立BGP 会话,再利用BGP 会话交换路由信息。当所有BGP 发言人都相互交换网络可达性的信息后,各BGP 发言人就可找出到达各个自治系统的较好路由。

网络层转发分组的流程

  1. 从数据报的首部提取目的主机的IP地址D,得出目的网络地址N
  2. 若网络N与此路由器直接相连,则把数据报直接交付给目的主句D,成为路由器的直接交付;否则间接交付,执行步骤3
  3. 若路由表中有目的地址为D的特定主机路由(对特定的目的主机指明一个特定的路由,通常是为了控制或测试网络,或出千安全考虑才采用的),则把数据报传送给路由表中所指明的下一跳路由器;否则执行步骤4)
  4. 若路由表中有到达网络N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行步骤5) 。
  5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行步骤6) 。
  6. 报告转发分组出错。

注意:得到下一跳路由器的IP 地址后并不是直接将该地址填入待发送的数据报,而是将该IP 地址转换成MAC 地址(通过ARP),将其放到MAC 帧首部中,然后根据这个MAC 地址找到下一跳路由器。在不同网络中传送时, MAC 帧中的源地址和目的地址要发生变化,但是网桥在转发帧时,不改变帧的源地址,请注意区分。

IP地址和MAC地址(Media Access Control Address硬件地址)?
IP地址是网络层使用的地址,它是分层次等级的,MAC地址是数据链路层使用的 地址,它是平面式的。在网络层及网络层之上使用IP地址,IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部。通过数据分装,把IP数据包分组分装为MAC帧后,数据链路层看不见数据报分组中的IP地址。

由于路由器的隔离,IP网络中无法通过广播方式依靠MAC地址来完成跨网络的寻址,因此在IP网络的网络层只使用IP地址完成寻址。寻址时,IP每个路由器依据其路由表(依靠金涛路由或动态路由协议生成)选择到目标网络即主机号全为0 的网络地址)需要转发到的下一跳(路由器的物理端口号或下一网络地址),而IP 分组通过多次路由转发到达目标网络后,改为在目标LAN 中通过数据链路层的MAC 地址以广播方式寻址。这样可以提高路由选择的效率。

注意:路由器由于互联多个网络,因此它不仅有多个IP 地址,也有多个硬件地址。

ARP地址解析协议
需要一种方法来完成IP地址到MAC 地址的映射,这就是地址解析协议(Address Resolution Protocol)。每台主机都设有一个ARP 高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC 地址的映射表,称ARP 表。使用ARP 来动态维护此ARP 表。

ARP 工作在网络层,其工作原理如下:主机A 欲向本局域网上的某台主机B 发送IP 数据报时,先在其ARP 高速缓存中查看有无主机B 的IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC 帧,然后通过局域网将该MAC 帧发往此硬件地址。如果没有,那么就通过使用目的MAC 地址为FF-FF-FF-FF-FF-FF 的帧来封装并广播ARP 请求分组,使同一个局域网里的所有主机收到ARP 请求。主机B 收到该ARP 请求后,向主机A 发出响应ARP 分组,分组中包含主机B 的IP 与MAC 地址的映射关系,主机A 在收到后将此映射写入ARP 缓存,然后按查询到的硬件地址发送MAC 帧。ARP 由于“看到了"IP 地址,所以它工作在网络层,而NAT路由器由于“看到了“端口,所以它工作在传输层。

注意: ARP 用于解决同一个局域网上的主机或路由器的IP 地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做,尽管ARP 请求分组是广播发送的,但ARP 响应分组是普通的单播,即从一个源地址发送到一个目的地址。

DHCP动态主机配置协议

动态主机配置协议(Dynamic Host Configuration Protocol, DHCP) 常用于给主机动态地分配IP 地址,它提供了即插即用联网的机制,这种机制允许一台计算机加入新的网络和获取IP 地址而不用手工参与。DHCP 是应用层协议,它是基于UDP 的。

DHCP 的工作原理如下:使用客户/服务器方式。需要IP 地址的主机在启动时就向DHCP 服务器广播发送发现报文,这时该主机就成为DHCP 客户。本地网络上所有主机都能收到此广播报文,但只有DHCP 服务器才回答此广播报文。DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP 地址池中取一个地址分配给该计算机。DHCP 服务器的回答报文称为提供报文。 DHCP 服务器聚合DHCP 客户端的交换过程如下:

    DHCP 客户机广播"DHCP 发现“消息,试图找到网络中的DHCP 服务器,以便从DHCP服务器获得一个IP 地址。

    DHCP 服务器收到"DHCP 发现消息后,向网络中广播"DHCP 提供“消息,其中包括提供DHCP 客户机的IP 地址和相关配置信息。

    DHCP 客户机收到"DHCP 提供“消息,如果接收DHCP 服务器所提供的相关参数,那么通过广播"DHCP 请求“消息向DHCP 服务器请求提供IP 地址。

    DHCP 服务器广播"DHCP 确认“消息,将IP 地址分配给DHCP 客户机。DHCP 允许网络上配置多台DHCP 服务器,当DHCP 客户机发出DHCP 请求时,有可能收到多个应答消息。这时, DHCP 客户机只会挑选其中的一个,通常挑选最先到达的。

DHCP 服务器分配给DHCP 客户的IP 地址是临时的,因此DHCP 客户只能在一段有限的时间内使用这个分配到的IP 地址。DHCP 称这段时间为租用期。租用期的数值应由DHCP 服务器自己决定, DHCP 客户也可在自已发送的报文中提出对租用期的要求。

ICMP网际控制报文协议?

为了提高IP 数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol, ICMP) 来让主机或路由器报告差错和异常情况。ICMP 报文作为IP 层数据报的数据,加上数据报的首部,组成IP 数据报发送出去。ICMP 是IP 层协议。ICMP 报文的种类有两种,即ICMP 差错报告报文和ICMP 询问报文。ICMP 差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况。共有以下5种类型:

    终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。

    源点抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。

    时间超过。当路由器收到生存时间(TTL) 为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。

    参数问题。当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃 该数据报,并向源点发送参数问题报文。

    改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发 送给另外的路由器(可通过更好的路由)。

传输层

传输层的功能

从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属千面向通信部分的最高层,同时也是用户功能中的最低层。传输层位于网络层之上,它为运行在不同主机上的进程之间提供了逻辑通信,而网络层提供主机之间的逻辑通信。显然,即使网络层协议不可靠(网络层协议使分组丢失、混乱或重复), 传输层同样能为应用程序提供可靠的服务。

传输层的功能如下:

l) 传输层提供应用进程之间的逻辑通信(即端到端的通信)。与网络层的区别是,网络层提供的是主机之间的逻辑通信。从网络层来说,通信的双方是两台主机, IP 数据报的首部给出了这两台主机的IP 地址。但“两台主机之间的通信”实际上是两台主机中的应用进程之间的通信,应用进程之间的通信又称端到端的逻辑通信。

    复用和分用。复用是指发送方不同的应用进程都可使用同一个传输层协议传送数据;分用是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。

    传输层还要对收到的报文进行差错检测(首部和数据部分)。而网络层只检查IP 数据报的首部,不检验数据部分是否出错。

    提供两种不同的传输协议,即面向连接的TCP 和无连接的UDP 。而网络层无法同时实现两种协议(即在网络层要么只提供面向连接的服务,如虚电路;要么只提供无连接服务,如数据报,而不可能在网络层同时存在这两种方式)。

UDP协议?

RFC 768 定义的UDP 只是做了传输协议能够做的最少工作,它仅在IP 的数据报服务之上增加了两个最基本的服务:复用和分用以及差错检测。如果应用程序开发者选择UDP 而非TCP,那么应用程序几乎直接与IP 打交道。为什么应用开发人员宁愿在UDP 之上构建应用,也不选择TCP? 既然TCP 提供可靠的服务,而UDP 不提供,那么TCP 总是首选吗?答案是否定的,因为有很多应用更适合用UDP,

主要是因为UDP 具有如下优点:

  • UDP 无须建立连接。因此UDP 不会引入建立连接的时延。试想如果DNS 运行在TCP 而非UDP 上,那么DNS 的速度会慢很多。HTTP 使用TCP 而非UDP, 是因为对于基于文本数据的Web网页来说可靠性是至关重要的。

  • 无连接状态。TCP 需要在端系统中维护连接状态。此连接状态包括接收和发送缓存、拥塞控制参数和序号与确认号的参数。而UDP 不维护连接状态,也不跟踪这些参数。因此,某些专用应用服务器使用UDP 时,一般都能支持更多的活动客户机

  • 分组首部开销小。TCP 有20B 的首部升销,而UDP 仅有8B 的升销。

  • 应用层能更好地控制要发送的数据和发送时间。UDP 没有拥塞控制,因此网络中的拥塞不会影响主机的发送效率。某些实时应用要求以稳定的速度发送,能容忍一些数据的丢失,但不允许有较大的时延,而UDP 正好满足这些应用的需求。UDP 常用于一次性传输较少数据的网络应用如DNS 、SNMP 等,因为对千这此应用,若采用TCP, 则将为连接创建、维护和拆除带来不小的开销。UDP 也常用于多媒体应用(如IP 电话、实时视频会议、流媒体等),显然,可靠数据传输对这些应用来说并不是最重要的,但TCP的拥塞控制会导致数据出现较大的延迟,这是它们不可容忍的。

UDP 提供尽最大努力的交付,即不保证可靠交付,但这并不意味着应用对数据的要求是不可靠的,因此所有维护传输可靠性的工作需要用户在应用层来完成。应用实体可以根据应用的需求来灵活设计自己的可靠性机制。

TCP协议
TCP 是在不可靠的IP 层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复问题。TCP 是TCP/IP 体系中非常复杂的一个协议,

  • 主要特点如下:
  1. TCP 是面向连接的传输层协议。
  2. 每条TCP 连接只能有两个端点,每条TCP 连接只能是点对点的(一对一)。
  3. TCP 提供可靠的交付服务,保证传送的数据无差错、不丢失、不重复且有序。
  4. TCP 提供全双工通信,允许通信双方的应用进程在任何时候都能发送数据,为此TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。发送缓存用来暂时存放以下数据:
    (1)发送应用程序传送给发送方TCP 准备发送的数据;
    (2)TCP 已发送但尚未收到确认的数据。
    接收缓存用来暂时存放以下数据:
    (1)按序到达但尚未被接收应用程序收取的数据;
    (2)不按序到达的数据。
  • TCP连接的建立
    在TCP 连接建立的过程中,要解决以下三个问题:
  1. 要使每一方都能够确知对方的存在。
  2. 要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项、时间戳选项及服务质量等)。
  3. 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。

三次握手建立连接

第一步:客户机的TCP 首先向服务器的TCP 发送一个连接请求报文段。这个特殊的报文段中不含应用层数据,其首部中的SYN(同步序列号)标志位被置为1 。另外,客户机会随机选择一个起始序号seq = x(连接请求报文不携带数据,但要消耗一个序号)。

第二步:服务器的TCP 收到连接请求报文段后,如同意建立连接,就向客户机发回确认,并为该TCP 连接分配TCP 缓存和变量。在确认报文段中, SYN 和ACK 位都被置为1, 确认号字段的值为x+ 1, 并且服务器随机产生起始序号seq= y( 确认报文不携带数据,但也要消耗一个序号)。确认报文段同样不包含应用层数据。

第三步:当客户机收到确认报文段后,还要向服务器给出确认,并且也要给该连接分配缓存和变量。这个报文段的ACK 标志位被置1, 序号字段为x+ 1, 确认号字段ack=y+ 1 。该报文段可以携带数据,若不携带数据则不消耗序号。

成功进行以上三步后,就建立了TCP 连接,接下来就可以传送应用层数据。TCP 提供的是全双工通信,因此通信双方的应用进程在任何时候都能发送数据。另外,值得注意的是,服务器端的资源是在完成第二次握手时分配的,而客户端的资源是在完成第三次握手时分配的,这就使得服务器易于受到SYN 洪泛攻击。

四次握手释放连接
第一步:客户机打算关闭连接时,向其TCP 发送一个连接释放报文段,并停止发送数据,主动关闭TCP 连接,该报文段的FIN 标志位被置1, seq= u, 它等于前面已传送过的数据的最后一个字节的序号加1 (FIN 报文段即使不携带数据,也要消耗一个序号)。TCP 是全双工的,即可以想象为一条TCP 连接上有两条数据通路。发送FIN 报文时,发送FIN 的一端不能再发送数据,即关闭了其中一条数据通路,但对方还可以发送数据。
第二步:服务器收到连接释放报文段后即发出确认,确认号是ack = u + 1, 而这个报文段自己的序号是V, 等于它前面已传送过的数据的最后一个字节的序号加1 。此时,从客户机到服务器这个方向的连接就释放了, TCP 连接处于半关闭状态。但服务器若发送数据,客户机仍要接收,即从服务器到客户机这个方向的连接并未关闭。
第三步:若服务器已经没有要向客户机发送的数据,就通知TCP 释放连接,此时其发出FIN= 1 的连接释放报文段。
第四步:客户机收到连接释放报文段后,必须发出确认。在确认报文段中, ACK 字段被置为1, 确认号ack= w + 1, 序号seq= u + 1 。此时TCP 连接还未释放,必须经过时间等待计时器设置的时间2MSL 后, A 才进入连接关闭状态。

  • 对上述TCP 连接建立和释放的总结如下:

    连接建立。分为3 步: 1、SYN = 1, seq = x 。 2、SYN= 1, ACK= 1, seq= y, ack = x + 1 。 3、ACK= 1, seq= x + 1, ack = y + l 。
    释放连接。分为4 步: 1、FIN= 1, seq =u 。 2、ACK = 1, seq = v, ack = u + 1 。 3、FIN= 1, ACK= 1, seq= w, ack = u + 1 。 4、ACK= 1, seq= u + 1, ack = w + 1。
    

拥塞控制的四种算法
所谓拥塞控制,是指防止过多的数据注入网络,保证网络中的路由器或链路小致过载。出现拥塞时,端点并不了解到拥塞发生的细节,对通信连接的端点来说,拥塞往往表现为通信时延的增加。当然,拥塞控制和流量控制也有相似的地方,即它们都通过控制发送方发送数据的速率来达到控制效果。

  • 拥塞控制与流量控制的区别

    • 拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
    • 相反,流量控制往往是指点对点的通信量的控制,即接收端控制发送端,它所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。

1.慢开始算法(接收窗口rwnd,拥塞窗口cwnd) 在TCP 刚刚连接好并开始发送TCP 报文段时,先令拥塞窗口cwnd = 1, 即一个最大报文段长度MSS 。每收到一个对新报文段的确认后,将cwnd 加1, 即增大一个MSS 。用这样的方法逐步增大发送方的拥塞窗口cwnd, 可使分组注入网络的速率更加合理。使用慢开始算法后,每经过一个传输轮次(即往返时延RTT), 拥塞窗口cwnd 就会加倍,即cwnd 的大小指数式增长。这样,慢开始一直把拥塞窗口cwnd 增大到一个规定的慢开始门限ssthresh(阔值),然后改用拥塞避免算法**。**

2.拥塞避免算法 拥寒避免算法的做法如下:发送端的拥塞窗口cwnd 每经过一个往返时延RTT 就增加一个MSS的大小,而不是加倍,使cwnd 按线性规律缓慢增长(即加法增大),而当出现一次超时(网络拥塞)时,令慢开始门限ssthresh 等于当前cwnd 的一半(即乘法减小)。

3.快重传 快重传技术使用了冗余ACK 来检测丢包的发生。同样,冗余ACK 也用千网络拥塞的检测(丢了包当然意味着网络可能出现了拥塞)。快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。当发送方连续收到三个重复的ACK 报文时,直接重传对方尚未收到的报文段,而不必等待那个报文段设置的重传计时器超时。

4.快恢复 快恢复算法的原理如下:发送端收到连续三个冗余ACK (即重复确认)时,执行“乘法减小”算法,把慢开始门限ssthresh 设置为出现拥塞时发送方cwnd 的一半。与慢开始(慢开始算法将拥塞窗口cwnd 设置为1) 的不同之处是,它把cwnd 的值设置为慢开始门限ssthresh 改变后的数值,然后开始执行拥塞避免算法(“加法增大”)'使拥塞窗口缓慢地线性增大。由于跳过了cwnd 从1 起始的慢开始过程,所以被称为快恢复。

为何不采用“三次握手“释放连接,且发送最后一次握手报文后要等待2MSL 的时间呢
原因有两个:

  1. 保证A 发送的最后一个确认报文段能够到达B 。如果A 不等待2MSL, 若A 返回的最后确认报文段丢失,则B 不能进入正常关闭状态,而A 此时已经关闭,也不可能再重传。
  2. 防止出现“已失效的连接请求报文段“。A 在发送最后一个确认报文段后,再经过2MSL可保证本连接持续的时间内所产生的所有报文段从网络中消失。
    服务器结束TCP 连接的时间要比客户机早一些,因为客户机最后要等待2MSL 后才可进入CLOSED 状态

为什么不采用“两次握手”建立连接呢?
这主要是为了防止两次握手情况下已失效的连接请求报文段突然又传送到服务器而产生错误。考虑下面这种情况。客户A 向服务器B 发出TCP 连接请求,第一个连接请求报文在网络的某个结点长时间滞留, A 超时后认为报文丢失,于是再重传一次连接请求, B 收到后建立连接。数据传输完毕后双方断开连接。而此时,前一个滞留在网络中的连接请求到达服务器B, 而B 认为A 又发来连接请求,此时若使用“三次握手”,则B 向A 返回确认报文段,由于是一个失效的请求,因此A 不予理睬,建立连接失败。若采用的是“两次握手”,则这种情况下B 认为传输连接已经建立,并一直等待A 传输数据,而A 此时并无连接请求,因此不予理睬,这样就造成了B的资源白白浪费

第六章 应用层

DNS域名解析协议
域名解析是指把域名映射成为IP 地址或把IP 地址映射成域名的过程。前者称为正向解析,后者称为反向解析。当客户端需要域名解析时,通过本机的DNS 客户端构造一个DNS 请求报文,以UDP 数据报方式发往本地域名服务器。域名解析有两种方式:递归查询递归与迭代相结合的查询。

FTP文件传输协议
文件传输协议(file Transfer Protocol, FTP) 是因特网上使用得最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。它屏蔽了各计算机系统的细节,因而适合于在异构网络中的任意计算机之间传送文件。
FTP 提供以下功能:

(1)提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。 
(2)以用户权限管理的方式提供用户对远程FTP 服务器上的文件管理能力。 
(3)以匿名FTP 的方式提供公用文件共享的能力。

FTP 采用客户/服务器的工作方式,它使用TCP 可靠的传输服务。一个FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:

一个主进程,负责接收新的请求;
另外有若干从属进程,负责处理单个请求。

其工作步骤如下:

(1)打开熟知端口21 (控制端口),使客户进程能够连接上。 
(2)等待客户进程发连接请求。 
(3)启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
(4)回到等待状态,继续接收其他客户进程的请求。

SMTP简单邮件传输协议
简单邮件传输协议(Simple Mail Transfer Protocol, SMTP) 是一种提供可靠且有效的电子邮件传输的协议,它控制两个相互通信的SMTP 进程交换信息。由于SMTP 使用客户/服务器方式,因此负责发送邮件的SMTP 进程就是SMTP 客户,而负责接收邮件的SMTP 进程就是SMTP 服务器。SMTP 用的是TCP 连接,端口号为25 。SMTP 通信有以下三个阶段:

(1) 连接建立(2) 邮件传送(3) 连接释放。

POP3

邮局协议(Post Office Protocol, POP) 是一个非常简单但功能有限的邮件读取协议,现在使用的是它的第3 个版本POP3 。POP3 采用的是“拉" (Pull) 的通信方式,当用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮箱中的邮件。POP 也使用客户/服务器的工作方式,在传输层使用TCP, 端口号为110 。接收方的用户代理上必须运行POP 客户程序,而接收方的邮件服务器上则运行POP 服务器程序。POP 有两种工作方式:“下载并保留”和“下载并删除"。在“下载并保留”方式下,用户从邮件服务器上读取邮件后,邮件依然会保存在邮件服务器上,用户可再次从服务器上读取该邮件;而使用“下载并删除“方式时,邮件一旦被读取,就被从邮件服务器上删除,用户不能再次从服务器上读取。

随着万维网的流行,目前出现了很多基于万维网的电子邮件,如Hotmail 、Gmail 等。这种电子邮件的特点是,用户浏览器与Hotmail 或Gmail 的邮件服务器之间的邮件发送或接收使用的是HTTP, 而仅在不同邮件服务器之间传送邮件时才使用SMTP

HTTP超文本传输协议
HTTP 定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看, HTTP 是面向事务的(Transaction-oriented) 应用层协议,它规定了在浏览器和服务器之间的请求和响应的格式与规则,是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

用户单击鼠标后所发生的事件按顺序如下(以访问清华大学的网站为例):

浏览器分析链接指向页面的URL (http://www.tsinghua.edu.cn /chn/index.htm) 。
浏览器向DNS 请求解析www.tsinghuaaedu.CR 的IP 地址。-
域名系统统DNS 胪祈出清毕大学服务器的IP 地址。
浏览器与该服务器建立TCP 连接(默认端口号为80) 。
浏览器发出HTTP 请求: GET /chn/index.htm 。
服务器通过HTTP 响应把文件index.htm 发送给浏览器。
TCP 连接释放。
浏览器解释文件index.htm, 并将Web 页显示给用户。

Http、ftp的区别
FTP和HTTP一样都是Internet上广泛使用的协议,用来在两台计算机之间互相传送文件。
1.http(Hyper Text Transfer Protocol)超文本传输协议
ftp(File Transfer Protocol)文件传输协议
http是面向网页的,ftp是面向文件的
2.FTP比HTTP复杂
因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
3.FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式
两种方式的命令连接方法时一样的,而数据链路的建立方法完全不同
4.HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等

使用Web浏览器时,这两个协议之间的差异几乎不会对使用的方便性及下载时间产生影响。不过,两者却拥有各自不同的结构。
HTTP是一种为了将位于全球各个地方的Web服务器中的内容发送给不特定多数用户而制订的协议。也就是说,可以把HTTP看作是旨在向不特定多数的用户“发放”文件的协议。
HTTP使用于从服务器读取Web页面内容。Web浏览器下载Web服务器中的HTML文件及图像文件等,并临时保存在个人电脑硬盘及内存中以供显示。
使用HTTP下载软件等内容时的不同之处只是在于是否以Web浏览器显示的方式保存,还是以不显示的方式保存而已。结构则完全相同。因此,只要指定文件,任何人都可以进行下载。
另一方面,FTP是为了在特定主机之间“传输”文件而开发的协议。因此,在FTP通信的起始阶段,必须运行通过用户ID和密码确认通信对方的认证程序。
FTP下载和HTTP下载的区别之一就在与此。


TCP/IP 协议可以说成 3 层、4 层、5 层,怎么理解
传输控制协议/网络协议,是Internet最基本的协议,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备接入互联网和数据传输。
TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。
而IP是给因特网的每台电脑规定一个地址。
TCP/IP协议族常用协议:

Telnet提供远程登录系统、
FTP远程文件传输协议、
SMTP简单邮政传输协议、
UDP用户数据包协议
OSI 7层模型TCP/IP 4层5层主要协议
应用层 (文件传输)应用层应用层http、ftp、dns、Dhcp、Vpn、私有协议等
表示层(数据格式化、代码转换、数据加密)
会话层(建立,解除会话)
传输层(提供端对端的接口)传输层传输层Tcp、udp
网络层(为数据包选择路由)网络层网络层Icmp
数据链路层(传输有地址的帧)链路层链路层ARP
物理层(二进制的数据形式在物理媒体上传输数据)物理层以太网、WIFI、4G
在这里插入图片描述每一层的作用
  • 物理层(Physical layer):OSI模型的最低层或第一层,规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性,为上层协议提供了一个传输数据的物理媒体
    • 协议数据单元为比特(bit)。
    • 在物理层的互联设备包括:集线器(Hub)、中继器(Repeater)等。
    • 相关接口或协议:RJ45 就是水晶头、CLOCK、IEEE802.3
  • 数据链路层(Datalink layer)OSI模型的第二层,控制网络层与物理层之间的通信,主要功能是在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等
    • 协议数据单元为帧(frame)
    • 互联设备:网桥(Bridge)、交换机(Switch)等
    • 协议:PPP适用于点到点数据链路、VLAN虚拟局域网、MAC、CSMA/CD适用于广播通信
  • 网络层也称IP层(Network Layer)OSI 模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。该层的作用包括:对子网间的数据包进行路由选择,实现拥塞控制、网际 互连等功能。
    • 协议数据单元为数据包(packet)
    • 在网络层的互联设备包括:路由器(Router)等。
    • 协议:网际协议 IP、因特网控制信息协议 ICMP、ARP、RARP、开放最短路径优先协议 OSPF、 路由信息协议 RIP、内部网关路由协议 IGRP、 Internet 组管理协议 IGMP
  • 传输层(Transport Layer) OSI 模型中最重要的一层,是第一个端到端,即主机到主机的层次。其主要功能是负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。
    • 协议数据单元为数据段(segment)
    • 传输层协议的代表包括:TCP、UDP、SPX 等
  • 会话层(Session Layer) OSI 模型的第五层,管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。其主要功能是建立通信链接,保持会话过程通信链接的畅通,利用在数据中插入校验点来同步两 个结点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。
    • 应用:网络文件系统 NFS、SQL、网上基本输入输出系统 NETBIOS、远程过程调用 RPC
  • 表示层(Presentation Layer) OSI 模型的第六层,应用程序和网络之间的翻译官,负责对上层数据或信息进行变换以保证一 个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的解密和加 密、压缩、格式转换等。
    • 应用:JPEG、MPEG、ASII
  • 应用层(Application Layer) OSI 模型的第七层,负责为操作系统或网络应用程序提供访问网络服务的接口。术语“应用层” 并不是指运行在网络上的某个特别应用程序,应用层提供的服务包括文件传输、文件管理以及 电子邮件的信息处理。
    • 在应用层的互联设备包括:网关(Gateway)等。
    • 文件传输协议 FTP(File Transfer Protocol),端口号为 21;
    • 超文本传输协议 HTTP(HypertextTransfer Protocol),端口号为 80; -
    • 简单网络管理协议 SNMP(SimpleNetwork Management Protocol)
    • 域名服务协议 DNS(Domain Name Service)
    • 网络文件系统 NFS(Network File System)

OSI 参考模型和网络设备的对应关系:

  • 传输层以上是网关(地址类型端口),
  • 网络层是路由器 和交换机(地址类型:网络地址),
  • 链路层是网桥(地址类型 MAC 地址),
  • 物理层是中继器 和集线器,调制解调器

数据链路层三个问题

  • 封装成帧
  • 透明传输
  • 差错检测

互联网组管理协议(IGMP, Internet Group Management Protocol)是因特网协议家族中的一个组播协议,是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。
双向的功能:

1.主机通过IGMP通知路由器希望接收或离开某个特定组播组的信息。
2.路由器通过IGMP周期性地查询局域网内的组播组成员是否处于活动状态,实现所连网段组成员关系的收集与维护

IP协议
IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务,是选路的协议

一个IP数据包由首部和数据两部分组成。首部的前一部分是固定长度20字节。
数据包不分片最大 1500 字节其中包括首部 20 字节
因为mac数据帧最大1500 即最大传输单元MTU,IP数据包首部固定长度20字节,所以想不分片一个数据包发送完,信息最大长度1500-20字节
在这里插入图片描述

网络畅通条件:数据包有去有回

静态路由和动态路由的区别

  1. 静态路由是指由网络管理员手工配置的路由信息。

    优点:使用静态路由的另一个好处是网络安全保密性高。动态路由因为需要路由器之间频繁地交换各自的路由表,
         而对路由表的分析可以揭示网络的拓扑结构和网络地址等信息。
         因此,网络出于安全方面的考虑也可以采用静态路由。不占用网络带宽,因为静态路由不会产生更新流量。
    缺点:大型和复杂的网络环境通常不宜采用静态路由。
         一方面,网络管理员难以全面地了解整个网络的拓扑结构;
         另一方面,当网络的拓扑结构和链路状态发生变化时,路由器中的静态路由信息需要大范围地调整,这一工作的难度和复杂程度非常高。当网络发生变化或网络发生故障时,不能重选路由,很可能使路由失败。
     1)为什么要有默认路由
     路由得查看路由表而决定怎么转发数据包,用静态路由一个个的配置,繁琐易错。如果路由器有个邻居知道怎么前往所有的目的地,可以把路由表匹配的任务交给它,省了很多事。
     例,网关会知道所有的路由,如果一个路由器连接到网关,就可以配置默认路由,把所有的数据包都转发到网关。
     2)为什么默认路由是0.0.0.0
     匹配IP地址时,0表示wildcard, 任何值都可以。所以0.0.0.0和任何目的地址匹配都会成功,造成默认路由要求的效果。
    
  2. 动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际实际情况的变化适 时地进行调整。

    特点
     1、无需管理员手工维护,减轻了管理员的工作负担。
     2、占用了网络带宽。
     3、在路由器上运行路由协议,使路由器可以自动根据网络拓朴结构的变化调整路由条目;
     4、网络规模大、拓扑复杂的网络
    常见动态路由协议
    RIP 路由信息协议是内部网关协议IGP中最先得到广泛使用的协议。RIP是一种分布式的基于距离向量的路由选择协议,是因特网的标准协议,其最大优点就是实现简单,开销较小。
    OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。
    IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)路由协议最初是ISO(the International Organization for Standardization,国际标准化组织)为CLNP(Connection Less Network Protocol,无连接网络协议)设计的一种动态路由协议。
    BGP 边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。
    

IP地址

  • IP地址的分类
    A 类地址:以 0 开头, 第一个字节范围:0~127(1.0.0.0 - 126.255.255.255);
    B 类地址:以 10 开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);
    C 类地址:以 110 开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255); 10.0.0.0—10.255.255.255 , 172.16.0.0—172.31.255.255 , 192.168.0.0— 192.168.255.255 。(Internet 上保留地址用于内部)
  • IP 地址与子网掩码相与得到主机号
  • IP 地址组成:网络号+地址类型号+主机号
  • 域名和 IP 地址的关系:IP 地址与域名是一对多的关系。一个 IP 地址可以对应多个域名,但一 个域名只有一个 IP 地址

ARP 是地址解析协议,简单语言解释一下工作原理。
网络层以上的协议用IP地址来标识网络接口,但以太数据帧传输时,以物理地址来标识网络接口。因此我们需要进行IP地址与物理地址之间的转化。

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

  • 对于IPv4来说,我们使用ARP地址解析协议来完成IP地址与物理地址的转化(IPv6使用邻居发现协议进行IP地址与物理地址的转化,它包含在ICMPv6中)。
  • ARP协议提供了网络层地址(IP地址)到物理地址(mac地址)之间的动态映射。ARP协议 是地址解析的通用协议。

主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:

  • 第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址
  • 第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
  • 第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
  • 第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
  • 第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了

谈一谈 DNS 域名系统的工作原理
DNS(Domain Name System,域名系统)
因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)

每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。

主机名到IP地址的映射有两种方式:DNS
  1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;
  2)动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。
  通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

比如我们游览一个网站的时候,打开一个网址, 这个时候 我们的电脑会首先发送一个数据包个 DNS系统 ,DNS系统回应一个数据包给我们,然后再转到我们游览的网站! 那个数据包里面就包含这个 我们访问的这个网站,然后返回来的数据包是 解析成了IP地址,然后就能通过TCP/IP协议通信了!
再比如我们发送baidu.com到DNS服务器,DNS服务器发给我们百度的服务器的IP,如果我们直接输入IP就绕开了解析这一个步骤

ICMP 协议: 因特网控制报文协议。它是 TCP/IP 协议族的一个子协议,用于在 IP 主机、 路由器之间传递控制消息。测试网络是否畅通 (ping 一下)
HTTP 协议 :超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速 的方式,适用于分布式超媒体信息系统。用于实现 WWW 服务。
(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
NAT(Network Address Translation 网络地址转换协议):当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。

功能:不仅能解决IP地址不足的问题,
     而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
 1.宽带分享:这是 NAT 主机的最大功能。
 2.安全防护:NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP,所以 Client 端的 PC 当然就具有一定程度的安全了,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC 
实现方式
    静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
	动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
	端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。

DHCP 动态主机配置协议(Dynamic Host Configuration Protocol):该协议允许服务器向客户端动态分配 IP 地址和配置信息。一个局域网的网络协议,使用 UDP 协议工作。

  • DHCP协议支持C/S(客户端/服务器)结构,主要分为两部分:
    1、DHCP客户端:通常为网络中的PC、打印机等终端设备,使用从DHCP服务器分配下来的IP信息,包括IP地址、DNS等。
    2、DHCP服务器:所有的IP网络设定信息都由DHCP服务器集中管理,并处理客户端的DHCP请求。
  • DHCP采用UDP作为传输协议,客户端发送消息到DHCP服务器的的67号端口,服务器返回消息给客户端的68号端口。

文件传输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能。
是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。

简单邮传输送协议(Simple Mail Transfer Protocol, SMTP):用于实现电子邮箱传送功能。
简单网络管理协议(simple Network Management Protocol,SNMP):用于管理与监视网络设备。
远程登录协议(Telnet):用于实现远程登录功能。

TCP 和 UDP 的区别?
TCP(Transmission Control Protocol)提供面向连接的可靠的基于字节流的传输层通信协议,
而 UDP(User Datagram Protocol) 提供的是无连接的不可靠快速传输,发送IP数据包。
区别:

  1. TCP面向连接(即传送数据前要先建立连接); UDP是无连接的,即发送数据之前不需要建立连接
  2. TCP提供可靠的服务,实行顺序控制、重发控制、流量控制、拥塞控制。即通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP只尽最大努力交付,不保证可靠交付
  3. TCP是面向字节流,实际上是TCP把数据看成一连串无结构的字节流; UDP是面向报文
  4. 每一条TCP连接只能是一对一; 而UDP支持一对一,一对多,多对一和多对多的交互通信
  5. TCP首部开销大,20字节; UDP的首部开销小,只有8个字节。TCP对系统资源要求较多,UDP对系统资源要求较少
  6. UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信

TCP 传输单位称为 TCP 报文段,UDP 传输单位称为用户数据报。 TCP 需要将传输的文件分段,建立会话,流量控制,例如 QQ 传文件。UDP 一个数据包就能完 成通信不需要分段,不需要流量控制,例如 QQ 聊天。 TCP 注重数据安全性,UDP 数据传输快,因为不需要连接等待,少了许多操作,但是其安全 性却一般。
在这里插入图片描述

什么时候会使用TCP,什么时候使用UDP?(结合应用层的一些协议)
TCP
当对网络通讯质量有要求的时候,比如整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,如HTTP、HTTPS、FTP、SMTP等传输文件的协议。
下载时,Telnet
UDP
效率要求相对高,对准确性要求相对低的场景,比如即时通讯,速度要求高,但是出现偶尔断续不是太大问题。
1.包总量较少的通信(DNS、SNMP等);
2.视频、音频等多媒体通信(即时通信);
3.限定于 LAN 等特定网络中的应用通信;
4.广播通信(广播、多播)

广域网和局域网的主流技术
广域网由一些节点交换机及连接这些交换机的链路组成。节点交换机的功能是将分组存储并转发。节点之间都是点到点的连接,但为了提高网络的可靠性,通常一个结点交换机往往与多个节点交换机相连。路由选择和分组转发,路由选择协议负责搜索分组从某个节点到目的节点的最佳传输路径,以便构造路由表,然后从路由表再构造出转发分组的转发表。分组是通过转发表进行转发的。
局域网的使用协议主要在数据链路层(还有少量在物理层),而广域网使用的协议主要在网络层。

广域网局域网
覆盖范围很广,通常跨区域很小,通常在一个区域内
连接方式节点之间都是点到点连接,但为了提高网络的可靠性,一个节点交换机往往与多个节点交换机相连普遍采取多点接入
OSI层次三层:物理层、数据链路层、网络层两层:物理层、数据链路层
联系和相似点1.广域网和局域网都是互联网的重要组成构件从互联网上看,二者是平等的;2.连接一个广域网或一个局域网上的主机在该网内进行通信时,只需要使用其网络的物理地址
着重点强调资源共享强调数据传输

划分最基本的标准:“是否一跳可达”
广域网(WAN,Wide Area Network),也称远程网(lpng haul network)。

  • 通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
  • 广域网的通信子网主要使用分组交换技术
  • 广域网的通信子网可以利用公用分组交换网、卫星通信网和 无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。

局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机 组。一般是方圆几千米以内。

  • 局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。
  • 局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。

与传统共享式局域网相比,使用局域网交换机的交换局域网为什么能改善网络的性能和服务质量
传统的核心设备是集线器,而交换式局域网的核心是以太网交换机。在使用共享式集线器的传统局域网中,在任何时刻只能有一个节点能够通过共享通信信道发送数据;
交换机可以在它的多个端口之间加你多个并发连接,从而实现结点之间数据的并发传输,有效地改善网络性能和服务质量

TCP建立连接的三次握手
第一次握手:起初两端都处于CLOSED关闭状态,Client将标志位SYN置为1,随机产生一个值seq=x,并将该数据包发送给Server,Client进入SYN-SENT状态,等待Server确认;

第二次握手:Server收到数据包后由标志位SYN=1得知Client请求建立连接,Server将标志位SYN(Synchronize Sequence Numbers同步序列编号)和ACK(Acknowledge character确认符号)都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN-RCVD状态,此时操作系统为该TCP连接分配TCP缓存和变量;

第三次握手:Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=y+1,并且此时操作系统为该TCP连接分配TCP缓存和变量,并将该数据包发送给Server,Server检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client和Server就可以开始传输数据。

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数 据。理想状态下,TCP 连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连 接都将被一直保持下去。
在这里插入图片描述

CLOSED:表示初始状态
LISTEN:表示服务器端的某个SOCKET处于监听状态,可以接受连接了
SYN_RCVD:这个状态表示接受到了SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,故意将三次TCP握手过程中最后一个ACK报文不予发送。因此这种状态时,当收到客户端的ACK报文后,它会进入到ESTABLISHED状态。
SYN_SENT:当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,因此也随即它会进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。
ESTABLISHED:表示连接已经建立
FIN_WAIT_1:其实FIN_WAIT_1和FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET即进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情况下,无论对方何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1状态一般是比较难见到的,而FIN_WAIT_2状态还有时常常可以用netstat看到。
FIN_WAIT_2:实际上FIN_WAIT_2状态下的SOCKET,表示半连接,也即有一方要求close连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。

三次握手的必要性:
假如只进行一次握手,客户端发送连接请求后,没有收到服务端的应答,是没法判断连接是否成功的。
假如只进行两次握手,客户端发送连接请求后,会等待服务器端的应答。但是会出现的 问题是,假如客户端的 SYN 迟迟没有到达服务器端,此时客户端超时后,会重新发送 一次连接,假如重发的这次服务器端收到了,且应答客户端了,连接建立了。但是建立 后,第一个 SYN 也到达服务端了,这时服务端会认为这是一个新连接,会再给客户端 发送一个 ACK,这个 ACK 当然会被客户端丢弃。但是此时服务器端已经为这个连接分 配资源了,而且服务器端会一直维持着这个资源,会造成浪费三次握手,
两次握手的问题在于服务器端不知道SYN 的有效性
所以如果是三次握手,服务器端会等待客户端的第三次握手,如果第三次握手迟迟不来,服务器端就会释放相关资源。
假如第三次握手没有到达服务器端呢?但是这时客户端认 为连接已经建立了。但是其实这种情况下,只要客户端向服务器端写数据,就会收到服务器端的 RST(复位) 应答,这时客户端就能知道出现问题了。

四次挥手 与建立连接的“三次握手”类似,断开一个 TCP 连接则需要“四次握手”。
(1) TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
(2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
(3) 服务器关闭客户端的连接,发送一个FIN给客户端。
(4) 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

  • 第一次挥手:主动关闭方发送一个 FIN(finish),用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在 fin 包之前发送出去的数据,如果没有收到对应的 ack 确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可以接受数据。
  • 第二次挥手:被动关闭方收到 FIN 包后,发送一个 ACK 给对方,确认序号为收到序号+1(与 SYN 相同,一个 FIN 占用一个序号)。
  • 第三次挥手:被动关闭方发送一个 FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告 诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
  • 第四次挥手:主动关闭方收到 FIN 后,发送一个 ACK 给被动关闭方,确认序号为收到序号+1,至 此,完成四次挥手。

四次挥手必要性 其实是客户端和服务端的两次挥手,也就是客户端和服务端分别释放连接的过程。可以 看到,客户端在发送完最后一次确认之后,还要等待 2MSL 的时间。主要有两个原因,
一个是为了让服务端能够按照正常步骤进入 CLOSED 状态
二是为了防止已经失效的 请求连接报文出现在下次连接中。
解释:
1)由于客户端最后一个 ACK 可能会丢失,这样服务端就无法正常进入 CLOSED 状 态。于是服务端会重传请求释放的报文,而此时客户端如果已经关闭了,那就收不到服务 端的重传请求,就会导致服务端不能正常释放。而如果客户端还在等待时间内,就会收到 服务端的重传,然后进行应答,这样服务端就可以进入 CLOSED 状态了。
2)在这 2MSL(报文最大生存时间)等待时间里面,本次连接的所有的报文都已经从网络中消失,从而不会出现在下次连接中。

停止等待协议:“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认再发送下一个分组。

  • 优点:简单,好实现。
  • 缺点:效率太低,信道利用率太低。

连续 ARQ(自动重传请求)协议
连续 ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。如果原来已经发送了前 5 个分组,那么现在就可以发送窗口内的第 6 个分组了。 接收方一般都是采用累积确认的方式,也就是说,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认,这就表示:到这个分组分组为止的所有分组都已正确收到了。
累计确认优点:容易实现,即使确认丢失也不必重传。
缺点:不能向发送方反映出接收方已经正确收到所有的分组的信息。

TCP 还有滑动窗口技术和流量控制
TCP滑动窗口技术通过动态改变窗口大小来调节两台主机间数据传输。每个TCP/IP主机支持全双工数据传输,因此TCP有两个滑动窗口:一个用于接收数据,另一个用于发送数据。TCP使用肯定确认技术,其确认号指的是下一个所期待的字节。
假定发送方设备以每一次三个数据包的方式发送数据,也就是说,窗口大小为3。发送方发送序列号为1、2、3的三个数据包,接收方设备成功接收数据包,用序列号4确认。发送方设备收到确认,继续以窗口大小3发送数据。当接收方设备要求降低或者增大网络流量时,可以对窗口大小进行减小或者增加,本例降低窗口大小为2,每一次发送两个数据包。当接收方设备要求窗口大小为0,表明接收方已经接收了全部数据,或者接收方应用程序没有时间读取数据,要求暂停发送。发送方接收到携带窗口号为0的确认,停止这一方向的数据传输。
滑动窗口机制为端到端设备间的数据传输提供了可靠的流量控制机制。然而,它只能在源端设备和目的端设备起作用,当网络中间设备(例如路由器等)发生拥塞时,滑动窗口机制将不起作用。

网络 红蓝军打仗通信问题 2
两军问题可以这样描述:一支白军被围困在一个山谷中,山谷的两侧是蓝军。困在山谷中 的白军人数多余山谷两侧的任意一支蓝军,而少于两支蓝军的总和。若一支蓝军对白军单 独发起进攻,则必败无疑;但若两支蓝军同时发起进攻,则可取胜。两只蓝军希望同时发 起进攻,这样他们就要传递消息,以便确定发起进攻的具体时间。假设他们只能派遣士兵 穿越白军所在的山谷(唯一的通信信道)来传递消息,那么在穿越山谷是,士兵有可能被 俘虏,从而造成消息的丢失。现在的问题是:如何通信,以便蓝军必胜。下面我们进行设计。
假设一支蓝军指挥官发出消息:“我建议在明天佛晓发起进攻,请确认。”如果消息到达了 另一支蓝军,其指挥官同意这一建议,并且他的回信也安全的送到,那么能否进攻呢?不 能。这是一个两步握手协议,因为该指挥官无法知道他的回信是否安全送到了,所以,他 不能发起进攻,改进协议,将两步握手协议改为三步握手协议,这样,最初提出建议的指 挥官必须确认对该建议的应答信息。假如信息没有丢失,并收到确认消息,则他必须将收 到的确认信息告诉对方,从而完成三步握手协议。然而,这样他就无法知道消息是否被对 方收到,因此,他不能发起进攻。那么现在采用四步握手协议会如何呢?结果仍是于事无 补。

结论是:不存在使蓝军必胜的通信约定(协议)
该结论可以用反证法证明,证明如下:

假如存在某种协议,那么协议中最后一条信息要么是必要的,要么不是。
如果不是,可以删除它,知道剩下的每条信息都是至关重要的。若最后一条消息没有安全到达目的地,则会怎样呢?刚才说过每条信息都是必要的,因此, 若它丢了,则进攻不会如期进行。
由于最后发出信息的指挥官永远无法确定该信息是否安全到达,所以他不会冒险发动攻击。
同样,另一只蓝军也明白这个道理,所以也不会发动进攻。

IPV4 和 IPV6
目前的全球因特网所采用的协议族是 TCP/IP 协议族。IP 是 TCP/IP 协议族中网络层的协议, 是 TCP/IP 协议族的核心协议。目前 IP 协议的版本号是 4(简称为 IPv4),发展至今已经使用 了 30 多年。
IPv4(网际协议版本4) 的地址位数为 32 位,也就是最多有 2 的 32 次方的电脑可以联到 Internet 上。 是无连接的协议,操作在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付数据包,意即它不保证任何数据包均能送达目的地,也不保证所有数据包均按照正确的顺序无重复地到达。这些方面是由上层的传输协议(如传输控制协议)处理的。
IPv6 是下一版本的互联网协议,用于替代IPv4的下一代IP协议。IPv6 采用 128 位地 址长度,几乎可以不受限制地提供地址。按保守方法估算 IPv6 实际可分配的地址,整个地 球的每平方米面积上仍可分配 1000 多个地址。在 IPv6 的设计过程中除了一劳永逸地解决 了地址短缺问题以外,还考虑了在 IPv4 中解决不好的其它问题,主要有端到端 IP 连接、 服务质量(QoS)、安全性、多播、移动性、即插即用等。
IPv4与IPv6之间的区别

  1. 地址长度
    IPv4协议具有32位(4字节)地址长度;IPv6协议具有128位(16字节)地址长度

  2. 地址的表示方法
    IPv4地址是以小数表示的二进制数。 IPv6地址是以十六进制表示的二进制数。

  3. 地址配置
    IPv4协议的地址可以通过手动或DHCP配置(动态主机配置协议)的。
    IPv4协议需要使用Internet控制消息协议版本6(ICMPv6)或DHCPv6的无状态地址自动配置(SLAAC)

  4. 数据包的区别
    包的大小

    IPv4协议的数据包需要576个字节,碎片可选 。
    IPv6协议的数据包需要1280个字节,不会碎片
    

    包头

    IPv4协议的包头的长度为20个字节,不识别用于QoS处理的数据包流,包含checksum,包含最多40个字节的选项字段。
    IPv6协议的包头的长度为40个字节,包含指定QoS处理的数据包流的Flow Label字段,不包含checksum;IPv6协议没有字段,但IPv6扩展标头可用。
    

    数据包碎片

    IPv4协议的数据包碎片会由转发路由器和发送主机完成。
    IPv6协议的数据包碎片仅由发送主机完成。
    
  5. DNS记录
    IPv4协议的地址(A)记录,映射主机名;指针(PTR)记录,IN-ADDR.ARPA DNS域。

    IPv6协议的地址(AAAA)记录,映射主机名;指针(PTR)记录,IP6.ARPA DNS域

  6. IPSec(IP Security用于提供IP层的安全性)支持
    IPv4协议的IPSec支持只是可选的。IPv4协议有内置的IPSec支持。

  7. 地址解析协议
    IPv4协议:地址解析协议(ARP)可用于将IPv4地址映射到MAC地址。
    IPv6协议:地址解析协议(ARP)被邻居发现协议(NDP Neighbor Discovery Protocol)的功能所取代。

    邻居发现协议主要与IPv6共同使用。它工作在网络层,负责在链路上发现其他节点和相应的地址,并确定可用路由和维护关于可用路径和其他活动节点的信息可达性。
    

IPv6 静态路由分为三种:
配置直连 IPv6 静态路由(就是配置出接口
配置递归 IPv6 静态路由(就是配置下一跳出口
配置默认 IPv6 静态路由(就是配置零路由后面可以使下一跳或者出接口

IPv6 地址类型可分为单播地址,组播地址和任播地址。
单播地址:可作为原地址和目的地址。单点发送。
组播地址和任播地址,目的地址可有多个。
任播地址:标识网络中的一组主机,只可作为 IPv6 分组的目的地址,但当向一个任播地址发送 IP 分组时,只有该任播地址标识的任播组的某个成员收到该 IP 分组。
组播地址是组播地址标识的多播组每个成员都会收到一个该 IP 分组的一个副本。

CS 即 Client/Server(客户机/服务器)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。

  • 客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的局域网内使用。

C/S 结构在技术上很成熟,它的主要特点是

  • 交互性强
  • 具有安全的存取模式
  • 网络通信量低
  • 响应速度快
  • 利于处理大量数据。

但是该结构的程序是针对性开发

  • 变更不够灵活
  • 维护和管理的难度较大
  • 通常只局限于小型局域网
  • 不利于扩展。
  • 由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的局限性。
  • 要求具有一定专业水准的技术人员去完成。

BS 即 Browser/Server(浏览器/服务器)结构
对C/S结构的一种改进。在这种结构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在Web服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构

就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。B/S 结构应用程序相对于传统的 C/S 结构应用程序是一个非常大的进步。B/S 结构的主要特点是

  • 分布性强
  • 维护方便
  • 开发简单且共享性强
  • 总体拥有成本低

  • 数据安全性问题
  • 对服务器要求过高
  • 数据传输速度慢
  • 软件的个性化特点明显降低,

这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如:通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。此外,实现复杂的应用构造有较大的困难。

C/S与B/S比较
1.数据安全性比较。

  • 由于C/S结构软件的数据分布特性,客户端所发生的病毒、黑客等都成了可怕的数据杀手,C/s必须在各地安装多个服务器,并在多个服务器之间进行数据同步。因此每个数据节点上的数据安全都影响整个应用的数据安全。
  • B/S 数据集存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也无需进行数据同步

2.数据一致性比较。

  • C/S很难实现数据一致,B/S数据集中存放

3.数据实时性
C/S结构不可能随时随地看到当前业务的发生情况,B/S可以实时看到当前发生的所有业务,方便了快速决策,有效地避免了企业损失。

4.服务响应及时性比较。
C/S结构软件,由于其应用是分布的,需要对每一个使用节点进行程序安装,所以,即使非常小的程序缺陷都需要很长的重新部署时间,重新部署时,为了保证各程序版本的一致性,必须暂停一切业务进行更新(即“休克更新”),其服务响应时间基本不可忍受。而B/S结构的软件不同,其应用都集中于总部服务器上,各应用结点并没有任何程序,一个地方更新则全部应用程序更新,可以做到快速服务响应。
5. 网络应用限制比较。C/S结构软件仅适用于局域网内部用户或宽带用户;
而我们的B/S结构软件可以适用于任何网络结构(,特别适于宽带不能到达的地方(例如迪信通集团的某些分公司,仅靠电话上网即可正常使用软件系统)

交换机(Switch)
在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的 MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的 MAC 若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表 中。 交换机工作于 OSI 参考模型的第二层,即数据链路层。交换机内部的 CPU 会在每个端口成功连接时,通过 ARP 协议学习它的 MAC 地址,保存成一张 ARP 表。在今后的通讯中,发往该 MAC 地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。 交换机被广泛应用于二层网络交换,俗称“二层交换机”。 交换机的种类有:二层交换机、三层交换机、四层交换机、七层交换机分别工作在 OSI 七 层模型中的第二层、第三层、第四层盒第七层,并因此而得名。

集线器、交换机、路由器、中继器及网关、网桥之间区别

  • 物理层——中继器和集线器
    二者均起数字信号放大和中转的作用
    中继器(REPEATER),用来延长网络距离的互连设备。(局域网络互连长度是有限制,不是无限,例如在10M以太网中,任何两个数据终端设备允许的传输通路最多为5个中继器、4个中继器组成)。REPEATER可以增强线路上衰减的信号,它两端即可以连接相同的传输媒体,也可以连接不同的媒体,如一头是同轴电缆另一头是双绞线。
    集线器(HUB)实际上就是一个多端口的中继器,它有一个端口与主干网相连,并有多个端口连接一组工作站。它应用于使用星型拓扑结构的网络中,连接多个计算机或网络设备。集线器就是一种共享设备,HUB本身不能识别目的地址,当同一局域网内的A主机给B主机传输数据时,数据包在以HUB为架构的网络上是以广播方式传输的,由每一台终端通过验证数据包头的地址信息来确定是否接收。

  • 逻辑链路层——网桥和交换机
    数据链路层的作用包括数据链路的建立、维护和拆除、帧包装、帧传输、帧同步、帧差错控制以及流量控制等。
    网桥工作在数据链路层,将两个局域网(LAN)连起来,根据MAC地址(物理地址)来转发帧,可以看作一个“低层的路由器”(路由器工作在网络层,根据网络地址如IP地址进行转发)。它可以有效地联接两个LAN,使本地通信限制在本网段内,并转发相应的信号至另一网段,网桥通常用于联接数量不多的、同一类型的网段。
    交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。
    其实交换机的前身就是网桥。交换机是使用硬件来完成以往网桥使用软件来完成过滤、学习和转发过程的任务。交换机速度比HUB快,这是由于HUB不知道目标地址在何处,发送数据到所有的端口。而交换机中有一张路由表,如果知道目标地址在何处,就把数据发送到指定地点,如果它不知道就发送到所有的端口。这样过滤可以帮助降低整个网络的数据传输量,提高效率。但是交换机的功能还不止如此,它可以把网络拆解成网络分支、分割网络数据流,隔离分支中发生的故障,这样就可以减少每个网络分支的数据信息流量而使每个网络更有效,提高整个网络效率。目前有使用SWITCH代替HUB的趋势

    交换机功能
    -学习:以太网交换机了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起来存放在交换机缓存中的MAC地址表中。
    -转发/过滤:当一个数据帧的目的地址在MAC地址表中有映射时,它被转发到连接目的节点的端口而不是所有端口(如该数据帧为广播/组播帧则转发至所有端口)。
    -消除回路:当交换机包括一个冗余回路时,以太网交换机通过生成树协议避免回路的产生,同时允许存在后备路径。
    -交换机除了能够连接同种类型的网络之外,还可以在不同类型的网络(如以太网和快速以太网)之间起到互连作用。如今许多交换机都能够提供支持快速以太网或FDDI等的高速连接端口,用于连接网络中的其它交换机或者为带宽占用量大的关键服务器提供附加带宽。
    
  • 网络层——路由器

用于连接多个逻辑上分开的网络,几个使用不同协议和体系结构的网络。当一个子网传输到另外一个子网时,可以用路由器完成。它具有判断网络地址和选择路径的功能,过滤和分隔网络信息流。一方面能够跨越不同的物理网络类型(DDN、FDDI、以太网等等),另一方面在逻辑上将整个互连网络分割成逻辑上独立的网络单位,使网络具有一定的逻辑结构。

  • 应用层——网关
    网关 (Gateway) 又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连
    网关的结构也和路由器类似,
    不同的是互连层(交换机是数据链路层,路由器是网络层,网关是传输层)。
    网关既可以用于广域网互连,也可以用于局域网互连。
    网关是一种充当转换重任的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。

网卡
网卡(NetWork Interface Card,简称NIC),也称网络适配器,是电脑与局域网相互连接的设备。

  • 网卡的功能:
    一是将电脑的数据封装为帧,并通过网线(对无线网络来说就是电磁波)将数据发送到网络上去;
    二是接收网络上其它设备传过来的,并将帧重新组合成数据,发送到所在的电脑中。网卡能接收所有在网络上传输的信号,但正常情况下只接受发送到该电脑的帧和广播帧,将其余的帧丢弃。然后,传送到系统 CPU 做进一步处理。当电脑发送数据时,网卡等待合适的时间将分组插入到数据流 中。接收系统通知电脑消息是否完整地到达,如果出现问题,将要求对方重新发送

WiFi 用的协议:
802.1x 协议起源于 802.11 协议,后者是标准的无线局域网协议,802.1x 协 议的主要目的是为了解决无线局域网用户的接入认证问题。

以太网的类型:同轴电缆以太网、光纤以太网、全双工以太网。
进化:快速以太网、千兆 以太网、万兆以太网
以太网设备:集线器、网桥、交换机

10M 以太网应遵循 5-4-3 规则。
为什么共享式以太网要遵循5-4-3规则?5-4-3规则是什么?
指在10M以太网中,网络总长度不得超过5个区段4台网络延长设备,且5个区段中只有3个区段可接网络设备
即:一个网段最多只能分5个子网段;一个网段最多只能有4个中继器;一个网段最多只能有三个子网段含有pc。在 10BSE-T 网络中,只允许级连 4 个 HUB(集线器)。可以使用可堆叠的集线器,可堆叠集线器如 DE1824,可 以堆叠 8 个,在逻辑上这 8 个 HUB 栈可以看作一个 HUB。或者可以使用交换机和 HUB 连 接。避免了 5-4-3 规则的限制,而增加端口数。

MAC 地址类型:单播、广播、多播

开放式最短路径优先 Ospf(Open Shortest Path First) 和路由信息协议 Rip(Routing Information Protocol) 的区别
一、适用范围不同。
RIP 适用于中小网络,比较简单。没有系统内外、系统分区,边界等概念,用到不是分类 的路由。 OSPF 适用于较大规模网络。它把自治系统分成若干个区域,通过系列内外路由的不同处理,区域内和区域间路由的不同处理方法,减少网络数据量大传输。
二、运行有区别。
RIP 运行时,首先向外发送请求报文,其他运行 RIP 的路由器收到请求后,马上把自己的路由表发送过去,在没收到请求时,会将路由删除,并广播自己新的路由表。
OSPF 要求每个路由器周期性的发送链路状态信息,使得区域内所有路由器最终都能形成一个跟踪网络链路状态的链路状态数据库。利用链路状态数据库,每一个路由器都可以自己为“根”,建立一个最短路径优先树,用来描述以自己出发,到达每个目的网络所需的开 销。
三、使用情况不同
OSPF 占用的实际链路带宽比 RIP 少;
OSPF 使用的 CPU 时间比 RIP 少;
OSPF 适用的内存比 RIP 大;
RIP 在网络上达到平衡用的时间比 OSPF 多。

网络协议的三个重要因素以及作用
(1) 语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。
(2) 语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。
(3) 时序是对事件发生顺序的详细说明。(也可称为“同步”)。
人们形象地把这三个要素描述为:语义表示要做什么,语法表示要怎么做,时序表示做的顺序。

传输介质
1.双绞线:屏蔽双绞线 STP (Shielded Twisted Pair) 无屏蔽双绞线 UTP (Unshielded Twisted Pair)

  • 特点:

    • 容易受到外部高频电磁波的干扰,误码率高,
      - 但因为其价格便宜,且安装方便
      - 既 适于点到点连接,又可用于多点连接,故仍被广泛应用。
  • 优缺点:

    • 成本低,密度高,节省空间,安装容易,高速率
    • 抗干扰性一般,连接距离较短。

2.同轴电缆:50 W 同轴电缆 75 W 同轴电缆

  • 特点:
    • 高带宽(高达 300~400Hz)、低误码率、性能价格比高,所以用在 LAN 中
  • 优缺点:抗干扰性好,接入复杂

3、光缆

  • 特点:直径小、重量轻;传输频带宽、通信容量大;抗雷电和电磁干扰性能好,无串音干 扰,保密性好,误码率低。但光电接口的价格较昂贵。光纤被广泛用于电信系统铺设主干 线。
  • 优缺点:通信容量大,传输损耗小,抗干扰性好,保密性好,体积小重量轻,需要专用设 备连接。

4、无线传输:短波通信/微波/卫星通信。

  • 特点:频率高,频带范围宽,通信信道的容量大;信号所受工业干扰较小,传输质量高, 通信比较稳定;不受地理环境的影响,建设投资少。

    1.短波通信 
       优缺点:通信质量较差,速率低。 
    2.微波通信又分地面微波接力通信和卫星通信 地面微波接力通信 
       优缺点:信道容量大,传输质量高,投资少,相邻站点间直视,易受天气影响,保密性 差。
    3.卫星通信 
       优缺点:通信距离远,通信容量大,传播时延大 270ms。
    

香农定理(Shannon Theory)
在这里插入图片描述
其中C是可得到的链路速度,W是链路的带宽,S是平均信号功率,N是平均噪声功率,信噪比(S/N)通常用分贝(dB)表示,分贝数=10×log10(S/N)。
给出了信道信息传送速率的上限(比特每秒)和信道信噪比及带宽的关系。香农定理可以解释现代各种无线制式由于带宽不同,所支持的单载波最大吞吐量的不同。

奈奎斯特采样定理
在这里插入图片描述
其中W是理想低通信道的带宽,单位为赫兹;K是多相调制的相数。
解释了采样率和所测信号频率之间的关系。 阐述了采样率 fs 必须大于被测信号最高频率分量的两倍。 该频率通常被称为奈奎斯特频率 fN。

无线局域网上发送数据帧后要对方必须放回确认帧,
以太网就不需要对方发回确认帧以太网相当于有线的局域网

子网掩码作用
1.屏蔽部分 IP 地址,区分网络标识和主机标识,解释 IP 地址是在局域网上还是在远程网络上;
2.将一个大的 IP 网络划分为几个小的子网络。

  • 子网划分的作用或好处
    1.减少广播域
    2.有效利用和规划 IP
    3.安全考虑,方便管理

主机号不能全 0 或全 1
IP 地址决定终点,MAC 地址决定下一跳

超网(supernetting)是与子网类似的概念,也称无类别域间路由选择(CIDR),IP 地址根据子网掩码被分为独立的网络地址和主机地址。但是,与子网把大网络分成若干小网络相反,它是把一些小网络组合成一个大网络–超网
超网的优点是可以充分利用C类网络空间资源。在多数情况下,使用超网地址分配乐意使分配的网络空间与实际所需的结点数量相匹配,因而提高了地址空间的利用率。
问题路由表规模的增长。路由表规模与网络数量成正比。一个物理网络对应多个C类网络地址,使得该网络在路由表中对应于多个C类的前缀表项,使路由表过于庞大。

vpn 的作用
VPN(Virtual Private Network)虚拟私人网络,,指在公用网络上建立专用网络,进行加密通讯
1)加密传输,使网络更加安全、保密
2)更换ip:更换ip可以使用google、Facebook等服务;加速,通过ip的改变,降低延迟达到加速的效果

用途
1、互联网远程访问
如员工到不同的城市出差时需要访问企业的内部网络
2、局域网互联
两个局域网联系在一起。在这种工作模式下,整个远程网络可以加入到一个不同的公司网络,以形成一个扩展的企业内部网。该解决方案是采用一台VPN服务器, 实现两个局域网的互联。
3、内部网络的vpn使用
比如,在每一个公司,由于每个人的职位与职责不一样,内部网络也可以利用VPN技术来实现一个私有网络内的受控访问单个子网。在这种操作模式下,VPN客户端连接到一个VPN服务器作为网络网关。
这种类型的VPN使用不会影响互联网服务提供商(ISP)或公共网络布线。但是,它允许组织内部署VPN的安全利益。作为企业保护他们的无线本地网络的一种方式,这种方法目前比较受欢迎。
4、访问一些原本被限制ip访问的网站
如,由于某些政治因素,某些国家不容许他的国民登录一些网站(如facebook、yooutube等),尽管法律上没有任何一条规定说不允许访问这些网站。这时,使用vpn可以换到其他国家ip,这时就可以访问facebook等网站。

1)个人远程 VPN 访问到公司的内部网络;例如一般为企业内部员工出差,休假或者特殊 情况下远离办公室的时候,又需要访问到公司的内部网络获取资源时。就可以通过 VPN 拨 号到公司内部,
2)企业内部网络之间的通讯;例如:各大超市之间业务结算等
3)互联网公司多 IDC 机房之间的互联。

NAT (Network Address Translation)是网络地址转换,比方说有一万用户一千个 IP,每个用户一个 IP 肯定不够,但同时上线的用户可能只有 500,于是分给用户私网 IP,等他上线时 NAT 设备进行私网 IP 和公网 IP 的映射转化。

  • 作用
    • 解决IP地址不足的问题,宽带分享
    • 有效避免来自网络外部的攻击,隐藏并保护网络内部的计算机
      安全防护:NAT之间的PC联机到Internet上是,它所显示的Ip的NAT主句的公共IP,所以 Client 端的 PC 当然就具有一定程度的安全了,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC 。
  • 实现方式
    • 静态转化
      指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
      - 动态转化
      指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。
      - 端口多路复用
      指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。
      - ALG(Application level Gateway)应用程序级网关技术

PAT 是端口地址转换,比方说有一万个用户而只有一百个 IP,同时上线的用户也许好几百 个,这样 NAT 的方法也就满足不了了,于是只好把用户的私网 IP+端口映射到一个公网 IP+端口上,当然其他的用户也可以映射到相同的 IP 上,最后通过端口号来区分。
1、PAT 是 NAT 的一种,NAT 包括静态 NAT 和动态 NAT 还有就是 PAT。
2、静态 NAT 是一对一,一个内网地址对一个公网地址,动态 NAT 是一对多,可重复利 用,PAT 是接口地址转换。
在这里插入图片描述

点 到 点 网 络 的 子 网 掩 码 最 好 是 252 , 点 到 点 表 明 只 有 两 台 计 算 机 故 子 网 掩 码 为 255.255.255.252 二进制表示为[11111111.11111111.11111111.11111100]

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

RLP(Radio Link Protocol): 无线连接协议,是一种严格的纠错方式。当数据在接收端被 “查出”有错后,接收端可要求电话重新进行数据传输,如有必要,反复进行,直至接收数据完全正确为止。

比特填充法(bit stuffing)为了避免在传送的数据信息中心出现相同比特组合被误认为是帧的首、尾标志,必须对其进行比特填充,即使用“零比特插入、删除"技术具体地说,发送端的数据链路层遇到数据比特流中出现 5 个连续“1”的时候,它就自动在输出比特流中插入一个“0”;接收端遇到 5 个输入比特为“1”,且后面紧接的是“0” 时,自动将其删除

Internet 与 Intranet 区别
Internet 中文翻译叫因特网。因特网(Internet),又叫做国际互联网。它是由那些使用公 用语言互相通信的计算机连接而成的全球网络。一旦你连接到它的任何一个节点上,就意 味着您的计算机已经连入 Internet 网上了。因特网(Internet),是一个全球性的巨大的计 算机网络体系,它把全球数百万个计算机网络,数亿台计算机主机连接起来,包含了无穷 无尽的信息资源,向全世界提供信息服务。它是一组全球信息资源的总汇。
Intranet 称为企业内部网,或称内部网、内联网、内网,是一个使用与因特网同样技术的计算机网络,它通常建立在一个企业或组织的内部并为其成员提供信息的共享和交流等服 务,例如万维网,文件传输,电子邮件等。

OSPF和RIP的区别是什么,在具体应用上有什么区别
在这里插入图片描述
ip地址到物理地址的转换
采用ARP(地址解析协议)。在局域网中,网络中实际传输的是帧,帧里面是目标主机的MAC地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。这个MAC地址就是通过地址解析协议获得的。所谓地址解析就是主机在发送帧将目标IP地址转换成目标MAC地址的过程。ARP协议的功能就是通过目标设备的ip地址,查询目标设备的MAC地址,以保证通信的顺利进行。

MAC(Media Access Control或者Medium Access Control)地址,或称为物理地址,用来定义网络设备的位置。物理地址是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一定是全球唯一的。

ARP将IP地址解析为MAC地址 RARP将MAC地址解析为IP地址
用白军和蓝军解释下没有100%可靠的通信
蓝军对白军发电文说:明天中午发起攻击,请协同作战,收到请确认
白军收到电文并加以确认:收到,请确认
蓝军:收到,请确认
白军:收到,请确认
就这样,蓝军和白军-一直在信息确认中,谁都不确定对方是否收到电文。所以设计不出100%
可靠的协议。


点对点和端到端工作在那层?工作机制是什么?
点对点协议工作在链路层,通常用在两个结点之间建立直接的连接,主要在利用电话来连接两台计算机,很多因特网服务提供商使用PPP协议给用户提供接入服务。PPP协议被设计用来代替非标准的协议SLIP,它既支持同步链路连接,也支持异步链路连接,它还可以支持多种网络层的协议,被设计有循环冗余校验来防止链路噪声,检查每- -个单独的帧是否有错误。
端到端协议工作在运输层,主要是指TCP传输协议,它提供一个全双工的面向连接的服务,同时它还提供-一个其它不同的服务以确保传输的可靠性,如超时重传和拥塞控制。TCP协议通过初始的三次握手建立连接(发送SYN报文),而关闭TCP连接是通过发送.FIN报文,TCP通过累积确认的方式来确认自己已经收到的报文段。

点对点协议(Point to Point Protocol)的缩写为PPP,是TCP/IP网络协议包的一个成员。PPP是TCP/IP的扩展,它增加了两个额外的功能组:
(1)它可以通过串行接口传输TCP/IP包;
(2)它可以安全登录。
数据传输的可靠性是通过数据链路层和网络层的点对点和传输层的端对端保证的。点对点是基于MAC地址或者IP地址,是指一个设备发数据给另外一个设备,这些设备是指直连设备包括网卡,路由器,交换机。端对端是网络连接,应用程序之间的远程通信。端对端不需要知道底层是如何传输的,是一条逻辑链路。

端到端与点到点是针对网络中传输的两端设备间的关系而言的。

  • 端到端传输指的是在数据传输前,经过各种各样的交换设备,在两端设备问建立一条链路,就像它们是直接相连的一样,链路建立后,发送端就可以发送数据,直至数据发送完毕,接收端确认接收成功。
    优点:链路建立后,发送端知道接收设备一定能收到,而且经过中间交换设备时不需要进行存储转发,因此传输时延小
    缺点

    • 直到接收端收到数据为止,发送端的设备一直要参与传输。如果整个传输的延迟很长,那么对发送端的设备造成很大的浪费。
    • 如果接收设备关机或故障,那么端到端传输不可能实现
  • 点到点系统指的是发送端把数据传给与它直接相连的设备,这台设备在合适的时候又把数据传给与之直接相连的下一台设备,通过一台一台直接相连的设备,把数据传到接收端。
    优点

    • 发送端设备送出数据后,它的任务已经完成,不需要参与整个传输过程,这不会浪费发送端设备的资源
    • 即使接收端设备关机或故障,点到点传输也可以采用存储转发技术进行缓冲。

    缺点

    • 发送端发出数据后,不知道接收端能否收到或何时能收到数据。

在一个网络系统的不同分层中,可能用到端到端传输,也可能用到点到点传输。如Internet网,IP及以下各层采用点到点传输,IP层以上采用端到端传输。

端对端,主要服务于Application Layer,是说两台主机(终端),跨过网络直接连接
点对点,是说两台主机(终端)在局域网中传输。

网络时延又拿几部分组成?各产生于何处?
网络时延主要由发送时延(传输时延),传播时延,处理时延组成。发送时延是指结点在发送数据时使数据块从结点进入到传输媒体所需的时间,也就是从数据块的第一个比特开始发送算起,到最后一个比特发送完毕所需的时间。发送时延又称为传输时延,它的计算公式是:
发送时延=数据块长度/信道带宽
信道带宽就是数据在信道上的发送速率,它也常称为数据在信道上的传输速率。
传播时延是指从发送端发送数据开始,到接收端收到数据(或者从接收端发送确认帧,到发送端收到确认帧),总共经历的时间。
传播时延 = d/s
d = 物理链路的长度
s = 介质的信号传播速度 (~2x108 m/sec)
处理时延是指计算机处理数据所需的时间,与计算机CPU的性能有关。

结合Internet,说说有连接服务和无连接的服务
面向连接服务具有连接建立、数据传输和连接释放这三个阶段。面向连接服务是在数据交换之前,必须先建立连接。当数据交换结束后,则必须终止这个连接。在传送数据时是按序传送的,是可靠交付。面向连接服务比较适合于在一定期间内要向同一日的地发送许多报文的情况。
无连接服务,两个实体之间的通信不需要先建立好一个连接因此其下层的有
关资源不需要事先进行预定保留。这些资源将在数据传输时动态地进行分配。
无连接服务的优点是灵活方便和比较迅速。但无连接服务不能防止报文的丢失、重复或失序。是一种不可靠的服务。这种服务常被描述为"尽量大努力支付"。.
以太网,无限局域网发送数据后是否需要对方确认
以太网不需要,无线局域网需要
网络里时延和带宽的概念
带宽对计算机的意义
在计算机系统中,用带宽作为标识总线和内存性能的指标之一
总线带宽指的是总线在单位时间内可以传输的数据总量
内存带宽指的是内存总线所能提供的数据传输能力

ip地址几部分组成,和域名的关系
IP(Internet Protocol[proʊtə.kɔl])意思是网络之间互连的协议。是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。就像家庭住址,被用来给Internet上的电脑编号。
网络名和主机地址组成。

A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。
B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。
C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”

域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站一种服务。域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
域名与Ip是对应关系。
域名由四部分组成,依次:服务器、域、机构、国家,很多情况国家部分省略

服务器是开展网络业务所必须的,ip是服务器所必须的,域名是辅助开展网络业务的,没有服务器存在数据,就无法展示我们的信息,没有ip我们就无法使用服务器,没有域名无法让用户快速的记住我们,业务的生命力也就不强,所以我们在开展网络业务之前一定要先准备好服务器、ip以及域名

ICMP 是什么协议?处于哪一层?
ICMP(Internet Control Message Protocol)是Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。属于网络层协议。
控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

协议的三要素是什么,请分别说明?
语法,定义了数据与控制信息的格式
语义,定义了需要发出何种控制信息,完成何种响应动作以及作出何种响应
同步,定义了事件实现顺序的详细说明

何为网络延时?何为完整性约束?
时延(delay或latency)是指一个报文或分组从一个网络(或一条链路)的一端传送到另一端所需的时间。

数据完整性约束指的是为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。
简单理解:按照一定的约束条件防止不符合规范的数据进入数据库

TCO/IP网络协议的核心是什么,如何引出“over everything" 和“everything over ?”
TCP/IP协议的核心是TCP、UDP和IP协议
分层次画出具体的协议来表示TCP/IP协议族,它的特点是上下两头大而中间小:应用层和网络接口都有很多协议,而中间的IP层很小,上层的各种协议都向下汇聚到一个IP协议中。这种很像沙漏计时器形状的TCP/IP协议族表明:TCP/IP协议可以为各种各样的应用提供服务(everything over ip) 同时TCP/IP协议也允许IP协议在各种各样的网络构成的互联网上运行(IP over everything)。

何为网桥?防火墙的端口防护是指什么?
网桥:网桥(Bridge)像一个聪明的中继器。中继器从一个网络电缆里接收信号, 放大它们,将其送入下一个电缆。相比较而言,网桥对从关卡上传下来的信息更敏锐一些。网桥是一种对帧进行转发的技术,根据MAC分区块,可隔离碰撞。网桥将网络的多个网段在数据链路层连接起来。
网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,它能将一个大的LAN分割为多个网段,或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器。

防火墙端口防护:指通过对防火墙的端口开关的设置,关闭一些非必需端口,达到一定安全防护目的行为。

电路交换与分组交换的区别? 优劣对比。
一、定义不同
1、电路交换(SCN),是指按照需求建立连接并允许专用这些连接直至它们被释放这样一个过程。电路交换网络包含一条物理路径,并支持网络连接过程中两个终点间的单连接方式。
2、分组交换,在通信过程中,通信双方以分组为单位、使用存储-转发机制实现数据交互的通信方式。

二、结构不同
1、电路交换。 其基本结构是由交换单元按照一定的拓扑结构扩展而成的,所构成的交换网络也称为互连网络。
2、分组交换。其网络结构一般由分分组交换组交换机、网络管理中心、远程集中器、分组装拆设备、分组终端/非分组终端和传输线路等基本设备组成。

三、优缺点不同
1、电路交换。
(1)电路交换方式的优点是数据传输可靠、迅速,数据不会丢失,且保持原来的序列。
(2)缺点是在某些情况下,电路空闲时的信道容量被浪费。

2、分组交换。
(1)分组交换方式的优点是不同的数据分组可以在同一条链路上以动态共享和复用方式进行传输,通信资源利用率高,使得信道的容量和吞吐量有了很大的提升。
(2)缺点是有时延抖动、开销大。

网络协议的三个核心要素,及概念:即协议、服务、接口
解释一下网络体系结构,它的实现和理论有什么区别

计算机网络和分布式计算机系统的区别

电路和分组交换的区别
PPP协议
P2P网络编程的特点?
DNS的递归查询和迭代查询
计算机网络的接入类型有哪些?
中继器、集线器、交换机、网桥、网关、路由器的功能作用?区别是什么
IP和MAX的特点
多路复用与多路分用
计算机网络接入方式?
什么是虚电路网络什么是数据报网络
简述C/S和P2P混合结构的特点
公司配置域名服务器,你是挽留过管理员该如何配置?
计算进网络,有哪几种校验码算法
子网掩码和默认网关是什么?及作用
网络中数据的分片与重组发生在什么时候
如何实现IPV4和IPV6的通信双协议栈、隧道技术
在浏览器中输入网址之后执行会发生什么
网络拥塞

UDP和TCP套接字编程的区别
发送序号和确认序号的作用
ARP协议过程
防火墙端口防护:指通过对防火墙的端口开关的设置,关闭一些非必需端口,
5G,第五代移动通信技术,有三个关键特征
协议和服务有何区别?
简述CSMA/CD的工作原理,无线网为什么用CSDA/CA
简述Internet的域名结构
代理服务器的作用
万维网怎么标志分布在整个因特网上的文档
交互式局域网和共享是局域网的区别
物理层的接口有哪些特性
简述MPLS、IP、ATM
简述ARQ协议的工作原理


有线局域网中点对点链接是否需要建立链接,无线局域网是否需要,区别是什么
点对点链接是指网络上两台计算机之间的直接连接。除了将电缆连接到两台计算机的NIC卡之外,点对点不需要任何其他网络设备

请求转发和重定向

  1. forward(请求转向):服务器程序内部请求转向,这个特性允许前一个程序用于处理 请求,而后一个程序用来返回响应。
  2. Redirect(重定向):服务端发送给客户端一个重定向的临时响应头,这个响应头包含 重定向之后的 URL,客户端用新的 URL 重新向服务器发送一个新的请求。
  3. 本质区别 1)请求转发发生在服务器端,由服务器(比如 servlet)控制。 2)重定向发生在客户端,由客户(通常是浏览器)控制。
  4. 请求和响应次数 1)请求转发过程在同一个请求当中完成,只会返回一个响应。 2)重定向过程则发生在两个不同的请求中,会返回两个不同响应
    在这里插入图片描述
    POST和GET
    POST 和 GET 都是向服务器提交数据,并且都会从服务器获取数据。 区别: 1、传送方式:get 通过地址栏传输,post 通过报文传输。
    2、传送长度:get 参数有长度限制(受限于 url 长度),而 post 无限制 3、GET 和 POST 还有一个重大区别,简单的说: GET 产生一个 TCP 数据包;POST 产生两个 TCP 数据包 长的说: 对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应 200 (返回数据); 而对于 POST,浏览器先发送 header,服务器响应 100 continue,浏览器再发送 data,服 0 务器响应 200 ok(返回数据)。 也就是说,GET 只需要汽车跑一趟就把货送到了,而 POST 得跑两趟,第一趟,先去和服 务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。
    cookie: 在网站中,http 请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie 的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第 二次请求的时候,就会自动的把上次请求存储的 cookie 数据自动的携带给服务器,服务器通过 浏览器携带的数据就能判断当前用户是哪个了。cookie 存储的数据量有限,不同的浏览器有不 同的存储大小,但一般不超过 4KB。因此使用 cookie 只能存储一些小量的数据。
    session 和 cookie 的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie 是存储 在本地浏览器,而 session 存储在服务器。存储在服务器的数据会更加的安全,不容易被窃 取。但存储在服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至 今,一些 session 信息还是绰绰有余的。

cookie 和 session 的区别
1、存储位置不同 cookie 的数据信息存放在客户端浏览器上。 session 的数据信息存放在服务器上。
2、存储容量不同 单个 cookie 保存的数据<=4KB,一个站点最多保存 20 个 Cookie。 对于 session 来说并没有上限,但出于对服务器端的性能考虑,session 内不要存放过多的 东西,并且设置 session 删除机制。
3、存储方式不同 cookie 中只能保管 ASCII 字符串,并需要通过编码方式存储为 Unicode 字符或者二进制数 据。session 中能够存储任何类型的数据,包括且不限于 string,integer,list,map 等。
4、隐私策略不同 cookie 对客户端是可见的,别有用心的人可以分析存放在本地的 cookie 并进行 cookie 欺 骗,所以它是不安全的。 session 存储在服务器上,对客户端是透明的,不存在敏感信息泄漏的风险。
5、有效期上不同 开发可以通过设置 cookie 的属性,达到使 cookie 长期有效的效果。 session 依赖于名为 JSESSIONID 的 cookie,而 cookie JSESSIONID 的过期时间默认为-1, 只需关闭窗口该 session 就会失效,因而 session 不能达到长期有效的效果。
6、服务器压力不同 cookie 保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie 是很好的 选择。 session 是保管在服务器端的,每个用户都会产生一个 session。假如并发访问的用户十分 多,会产生十分多的 session,耗费大量的内存。

pageContext 对象的范围只适用于当前页面范围,即超过这个页面就不能够使用了。所以使用 pageContext 对象向其它页面传递参数是不可能的。
request 对象的范围是指在一 JSP 网页发出请求到另一个 JSP 网页之间,随后这个属性就失 效。
session 的作用范围为一段用户持续和服务器所连接的时间,但与服务器断线后,这个属性就 无效。比如断网或者关闭浏览器。
application 的范围在服务器一开始执行服务,到服务器关闭为止。它的范围最大,生存周期最 长。

PreparedStatement 和 Statement 的区别
1.Statement 主要用于执行静态的 SQL 语句,内容固定不变。(对数据库只执行一次性存取)
2.PreparedStatement 对象不仅包含了 SQL 语句,而且大多数情况下这个语句已经被预编译 过,因而当其执行时,只需 DBMS 运行 SQL 语句,而不必先编译。当你需要执行 Statement 对 象多次的时候,PreparedStatement 对象将会大大降低运行时间,当然也加快了访问数据库的 速度。
3.PrepareStatement 这种转换也给你带来很大的便利,不必重复 SQL 语句的句法,而只需更改 其中变量的值,便可重新执行 SQL 语句。选择 PreparedStatement 对象与否,在于相同句法的 SQL 语句是否执行了多次,而且两次之间的差别仅仅是变量的不同。如果仅仅执行了一次的 话,它应该和普通的对象毫无差异,体现不出它预编译的优越性。
4.除了缓冲的问题之外,使用 PreparedStatement 对象,那就是安全性(预防 SQL 注入攻击 )。
SQL 注入即是指 web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情 况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相 应的数据信息。

HTTP 中, POST 与 GET 的区别
1)Get是从服务器上获取数据,Post是向服务器传送数据。
2)Get是把参数数据队列加到提交表单的Action属性所指向的URL中,值和表单内各个字段一一对应,在URL中可以看到。
3)Get传送的数据量小,不能大于2KB;Post传送的数据量较大,一般被默认为不受限制。
4)根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。
https://blog.csdn.net/qq_43562262/article/details/104794480

HEAD
HEAD就像GET,只不过服务端接受到HEAD请求后只返回响应头,而不会发送响应内容。当我们只需要查看某个页面的状态的时候,使用HEAD是非常高效的,因为在传输的过程中省去了页面内容。

head只请求页面的首部,head方法和get方法相同,只不过服务器响应时不会返回消息体,一个head请求的响应中,HTTP头中包含的元信息应该和一个get请求的响应消息相同,这种方法可以用来获取请求中隐含的元信息,而不用传输实体本身,这个也经常用来测试超链接的有效性和可用性,
Head请求有以下特点:

  • 只请求资源的首部,
  • 检查超链接的有效性
  • 检查网页是否被修改
  • 用于自动搜索机器人获取网页的标志信息,获取rss种子信息,或者传递安全认证信息等

数据封装
在通过网络传输信息之前将信息分解成更小的可管理的过程。在这个过程中,源和目的地址与奇偶校验一起附加到标题中。

描述网络拓扑
指计算机网络的布局。它显示了设备和电缆的物理布局以及如何连接到彼此。

网络拓扑如何影响您在建立网络时的决策
网络拓扑决定了互联设备必须使用什么媒介。它还作为适用于设置的材料、连接器和终端的基础

什么是 NOS
NOS 或网络操作系统是专门的软件,其主要任务是向计算机提供网络连接,以便能够与其他计算机和连接的设备进行通信
什么是 DoS
DoS 或拒绝服务攻击是试图阻止用户访问互联网或任何其他网络服务。这种攻击可能有不同的形式,由一群永久者组成。这样做的一个常见方法是使系统服务器过载,使其无法再处理合法流量,并将被强制重置

地址共享的优点是什么
cdn原理
CDN的全称Content Delivery Network,即内容分发网络。CDN的基本原理是广泛用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应。

**说一下用户从输入url到显示页面这个过程发生了什么 **
DNS解析
TCP连接
发送HTTP请求
服务器处理请求并返回HTTP报文
浏览器解析渲染页面
连接结束

HTTP的头部包含哪些内容,常见的请求方法
accept 请求报头域,指定客户端可以接收的类型有哪些
accept-encoding:指定客户端可接收的内容编码
accept-language:指定客户端可接收的编码语言
host:用户指定请求资源的主机和端口号
cookies:用于存储本地的数据
refer:用于标识这个请求是从哪个页面来的,如登录前是从主页来的,就显示主页的信息
user-agent(UA):用于识别用户的使用的客户端版本等信息
content-type:用于标识具体请求的媒体类型,这里是表单类型
常见的请求方法有get,post,get用来请求数据,post用来提交数据,form表单使用get时数据会以querystring形式存在url中,因而不够安全也存在数据大小限制,而post不会,post将数据存放在http报文体中,获取数据应该用get,提交数据用post

URL
Uniform Resource Locator,统一资源定位器。url由三部分组成:资源类型、存放资源的主机域名、资源文件名;也可认为由四部分组成:协议(protocol)、主机(hostname)、端口port、路径path。

什么是response的状态码?
Response 消息中的第一行叫做状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
1XX 提示信息 - 表示请求已被成功接收,继续处理
2XX 成功 - 表示请求已被成功接收,理解,接受
3XX 重定向 - 要完成请求必须进行更进一步的处理
4XX 客户端错误 - 请求有语法错误或请求无法实现
5XX 服务器端错误 - 服务器未能实现合法的请求
301和302的区别:301:永久移动,请求的网页已永久移动到新的位置,服务器返回此响应,会自动将请求者转到新位置,302:临时移动,服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来继续以后的请求,
200 OK成功响应状态码。该请求被成功地完成,所请求的资源发送回客户端
302 Found 重定向,新的URL会在response 中的Location中返回,浏览器将会自动使用新的URL发出新的Request
304 Not Modified 代表上次的文档已经被缓存了, 还可以继续使用
400 Bad Request 客户端请求与语法错误,不能被服务器所理解
403 Forbidden 服务器收到请求,但是拒绝提供服务
404 Not Found 请求资源不存在(输错了URL)

HTTP缓存机制
HTTP缓存即是浏览器第一次想一个服务器发起HTTP请求后,服务器会返回请求的资源,并且在响应头中添加一些有关缓存的字段如:cache-control,expires,last-modifed,ETag,Date,等,之后浏览器再向该服务器请求资源就可以视情况使用强缓存和协商缓存,

强缓存:浏览器直接从本地缓存中获取数据,不与服务器进行交互,

协商缓存:浏览器发送请求到服务器,服务器判断是否可使用本地缓存,

知道什么跨域方式吗,jsonp具体流程是什么,如何实现原生Jsonp封装,优化,对于CORS,服务器怎么判断它该不该跨域呢
常见的跨域方式大概有七种,大致分为iframe、api跨域
1、JSONP,全称为json with padding,解决老版本浏览器跨域数据访问问题,原理是web页面调用JS文件不受浏览器同源策略限制,所以通过script标签可以进行跨域请求,流程如下:
首先前端设置好回调参数,并将其作为URL的参数
服务器端收到请求后,通过该参数获取到回调函数名,并将数据放在参数中返回
收到结果后因为是script标签,所以浏览器当做脚本运行,

最后

以上就是震动月亮为你收集整理的计算机网络 面试的全部内容,希望文章能够帮你解决计算机网络 面试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部