计算机面试常见题目-网络

目录

  • 基础概念
    • 数据单元:网络信息传输的基本单位
      • 服务数据单元(SDU):同一台机器上的两层之间传送信息
      • 协议数据单元(PDU):发送机器上信息 到接收机器上的相应层
    • 数据包:每一层的数据包(数据报)就是对应的PDU
      • 传输层:tcp报文段、udp用户数据报
      • 网络层:包(分组 / ip数据报)
      • 数据链路层:帧(数据链路层数据报)
    • 功能
      • 差错控制(每一层):在通信中利用编码方法对传输中产生的差错进行控制,以提高数字消息传输的准确性。
      • 流量控制(数据链路层、传输层):限制发送方的数据流量,不超过接收方的接收能力。
      • 拥塞控制(网络层、传输层):防止过多数据注入网络,保证网络中的路由器或链路不至于过载
      • 拥塞控制和流量控制区别
  • 网络体系结构
    • 1.1 概念:计算机网络、计算机网络分类、时延
      • 电路交换网络、报文交换网络、分组交换网络(主流,本科讨论)
    • 1.2.1协议、接口、服务概念
    • 1.2.2 计算机网络服务
      • 面向连接服务和无连接服务
      • 可靠服务和不可靠服务
      • 有应答服务和无应答服务
    • 1.2.3 OSI七层参考模型
    • 1.2.3 TCP/IP模型
      • TCP/IP协议:能够在多个不同网络间实现信息传输的协议簇。
      • OSI模型与TCP/IP模型区别;五层协议体系结构(OSI与TCP/IP模型的折中)
  • 物理层:在物理媒体上为数据端设备透明地传输原始比特流
    • 通信交互方式:单工通信、半双工通信、全双工通信
  • 数据链路层:加强物理层传输原始比特流的功能,建立点到点无差错逻辑链路
    • 3.1 数据链路层功能:帧、流量控制、差错控制、传输管理
    • 3.2 数据链路层通常可为网络层提供的服务
    • 3.3 PPP(Point-to-Point)协议:不可靠但检错,全双工
      • 为什么不实现可靠传输
      • 为什么不可靠,还对数据帧差错检测
  • 网络层:把网络层的协议单元(分组)从源端传送到目的端,为分组交换网上的不同主机 提供主机到主机通信服务,只讨论IP数据报
    • 4.0 数据报和虚电路(分组交换两种方式,tcp/ip只支持数据报,本科仅讨论数据报)
    • 4.1 网络层功能:异构网络互联、(分组)路由转发、拥塞控制
      • 描述网络层分组转发流程
    • 4.2.1 什么是尽最大努力交付?
    • 4.2.2 为什么有了MAC还要有IP
    • 4.3 IP分组(IP数据报)概念
    • 4.3 IP地址的特点
    • 4.4.1 NAT(网络地址转换):将专用网络地址转换为公用地址
    • 4.4.2 ARP(地址解析协议):根据IP地址获取物理地址 的一个TCP/IP协议。
    • 4.4.2 在一个很大的网络中能否用交换机代替路由器
    • 4.4.3 ip有分片功能,而广域网中的分组不用分片,为什么?
  • 传输层:提供应用进程之间端到端的逻辑通讯。
    • 5.1 传输层功能:流量控制、拥塞控制、差错控制、传输管理
      • 比较一下传输层和网络层
    • 5.2 描述UDP协议、TCP协议
      • IP数据报和UDP数据报的区别
      • TCP协议的特点
      • TCP和网络层虚电路的区别
      • TCP三次握手与四次挥手
      • TCP为什么必不可少
  • 应用层:直接和应用进程提供服务
    • 6.1 访问一个网页的完整过程
    • 6.2 Http-超文本传输协议(HyperText Transfer Protocol)
    • 6.3 Https-Http的安全版。
    • 6.4 Http与Https的区别
    • DNS是什么

基础概念

数据单元:网络信息传输的基本单位

一般网络连接不允许传送任意大小数据包,而是采用分组技术将一个数据分成若干个很小的数据包,并给每个小数据包加上一些关于此数据包的属性信息。

服务数据单元(SDU):同一台机器上的两层之间传送信息

SDU(service Data Unit):服务数据单元,又叫业务数据单元

即业务部分,然后发给下层之后,下层将其封装在PDU中发送出去。
服务数据单元是从高层协议来的信息单元传送到低层协议。



协议数据单元(PDU):发送机器上信息 到接收机器上的相应层

通过数据发送/接收管理把用户提交的SDU以PDU的形式,通过下层通道发送到对端协议实体。在接收端再将PDU还原成SDU送给收端用户。

在分层网络结构,例如在开放式系统互联(OSI)模型中,在传输系统的每一层都将建立协议数据单元(PDU)。

PDU包含来自上层的信息和当前层的实体附加的信息,这个PDU会被传送到下一较低的层。而在不同层中PDU所代表的都是不同的




数据包:每一层的数据包(数据报)就是对应的PDU

在TCP/IP协议通信传输中的数据单元,也称为“包”。
指自包含的,带有足够寻址信息,可独立地从源主机传输到目的主机,而不需要以来早期地源主机和目的主机之间交换信息以及传输网络地数据包。

数据包:就是从最上层,一层一层封装,最后借由数据链路层发送出去的数据单元。
每一层都有数据包(待定)。

一般来说,数据链路层发送的数据包称为frame,地址是链路层的地址,如mac地址。
网络层发出的数据包称为packet(重名不同义),地址是网络层地址,如IP地址。
传输层发出的数据包称为segment/datagram,地址是传输层地址,比如TCP的端口号



传输层:tcp报文段、udp用户数据报

UDP数据报(封装成IP数据报在网络层传输),UDP数据报信息对路由不可见。

TCP报文段,(可以理解为一个TCP数据报拆分为报文段)



网络层:包(分组 / ip数据报)

数据传送基本单元:数据报(IP分组/IP数据报),IP数据报又可分为若干IP数据报(分片)

IP数据报:ip层的数据报
IP(Internet Protocol)是TCP/IP协议族中的核心协议,所有TCP、UDP、ICMP和IGMP数据都通过IP数据报传输。

数据链路层 MTU 是帧的最大传输单元。

数据包是一个完整的数据单元,如果数据包的大小超过了 MTU ,就要将完整的数据包拆分为几个数据帧进行传输,然后到达接收方再组合



数据链路层:帧(数据链路层数据报)

它包括三部分:帧头、数据部分、帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等。

数据帧:是数据链路层的传输单元。就是数据链路层的协议数据单元
(1)帧头,里面有mac地址,通过这个地址可以在底层的交换机这个层面里顺着网线找到你的计算机。

(2)数据部分,数据部分则包含网络层传下来的数据,比如ip数据报。

(3)帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;


功能

差错控制(每一层):在通信中利用编码方法对传输中产生的差错进行控制,以提高数字消息传输的准确性。

纠错编码为奇偶校验码、循环冗余码;纠错编码有海明码


1、数据链路层差错控制:
由于噪声原因,数据在传输过程中会出现错误。
两种错误:位错误和帧错误。

位错误:是某个位出现了差错。
可以使用CRC(循环冗余码)方式发现错误,通过自动重传请求(ARQ)来重新传输出错的帧。

帧错误:帧的丢失、重复、或失序问题。
引入定时器和编号机制。


2、网络层差错控制:
通信两结点之间约定特定检错规则(如奇偶校验码),能纠错纠错不能纠错就丢弃,确保向上层提交的数据都是无误的。



流量控制(数据链路层、传输层):限制发送方的数据流量,不超过接收方的接收能力。

数据链路层:
数据链路层的流量控制是两个相邻结点之间的流量控制。
通过窗口机制来实现。当接收方的缓存空间开始吃紧,则在发送确认报文时,将其中的窗口值调小版甚至变成0,这样就限制了发送方发送数据的速度了。


使网络中的路由器或链路不至于过载。
有四种算法:慢开始、拥塞避免、快重传、快恢复。
TCP协议还要求发送方维护两个窗口:接受窗口和拥塞窗口。发送窗口的值等于他们两个的最小值。



拥塞控制(网络层、传输层):防止过多数据注入网络,保证网络中的路由器或链路不至于过载

网络层-拥塞控制方法:
(1)开环控制:是一种静态的预防方法,在设计网络时将发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。

(2)闭环控制:是一种动态的方法,事先不考虑发生拥塞的各种因素,及时检测并解决问题。

传输层(TCP)-拥塞控制算法
确定发送方发送速率,根据接收方发送速率从全局考虑不要使网络发生拥塞。

TCP协议要求发送方维护两个窗口
1、接收窗口:反映接收方的容量
2、拥塞窗口:发送方根据估算的网络拥塞程度而设置。
(未出现拥塞,则拥塞窗口增大一些,出现拥塞,则小一些)


慢开始和拥塞避免

(1)慢开始:每一个传输轮次逐步地加倍原有的拥塞窗口,一直到门槛为止。(然后改用拥塞避免)

(2)拥塞避免:每一个传出轮次增加一定的拥塞窗口大小,若出现网络拥塞(超时)
慢开始门槛为当前拥塞窗口的一半,拥塞窗口改为1(又开始执行慢开始)

快重传和快恢复(对慢开始和拥塞避免算法的改进)
(3)快重传:当发送方连续收到三个重复的ACK报文时,直接重传对方尚未收到的报文段
(用冗余ACK:重复确认 来检测丢包或网络拥塞)

(4)快恢复:发送端连续收到三个冗余ACK时,将慢开始门限和新拥塞窗口都设置为 当前拥塞窗口的一半。



拥塞控制和流量控制区别

拥塞控制是全局性的,于网络中的所有因素都有关。

流量控制是点对点的,为了抑制发送端发送速率。




网络体系结构

1.1 概念:计算机网络、计算机网络分类、时延

1.1.1 计算机网络:一些互联的、自治的计算机系统的集合。
广义观点认为只要能实现远程信息处理并进一步达到资源共享的系统,都是计算机网络。

计算机网络的主要功能是数据通信、资源共享及分布式处理,其中数据通信是最基本的功能。

计算机网络系统的组成 按照功能 可分为通信子网和逻辑子网。


1.1.2 计算机网络分类
(1)按照分布范围分类:广域网(WAN)、城域网(MAL)、局域网(LAN)、个人区域网(PAN)
物理网络:各种类型的局域网(如以太网),或公共数据网络

( 2)按照传输技术分类:广播式网络、点对点网络
(3)按照拓扑结构分类:总线型、星型、环形、网状型
(4)按照使用者分类:公用网、专用网
(5)按交换技术分类:电路交换网络、报文交换网络、分组交换网络(主流,本科讨论)



1.1.3 时延
排队时延:分组在路由器中等待处理或转发的时间
处理时延:分组在路由器为存储转发做的一些必要处理,所花费的时间

传输(发送)时延:结点将分组所有比特推向链路的时间
传播时延:一个比特从链路的一端到链路另一端花费的时间



电路交换网络、报文交换网络、分组交换网络(主流,本科讨论)

1、电路交换网络:
在源结点和目的结点之间建立一条专用的通路用于传送数据,包括建立连接、传输数据和断开连接三个阶段。

优点:直接传送、时延小(不存在存储转发)
缺点:线路利用率低、不便于进行差错控制

2、报文交换网络(存储转发):
报文(交换与传输数据单元):用户数据+辅助信息(报文交换网络)
存储转发:整个报文先传送到相邻结点,全部存储后查找转发表,转发到下一个结点。

优点:
(1)无须建立连接,不存在连接时延。
(2)提高线路利用率
(3)可以实现差错控制
(4)提供多目标服务,一个报文可以同时发送给多个目的的地址

缺点:
(1)存储转发有时延(存在传输时延)
(2)辅助信息开销大、
(3)对报文大小无限制,要求网络结点需要较大的缓存空间,缓冲区难以管理


3、分组交换网络(存储转发):
将数据分成较短的固定长度的数据块,加上目的地址等信息组成分组(包)
单个分组是报文的一部分,传送到相邻结点,存储后查找转发表,转发到下一个结点。

优点:除报文交换网络的优点以外还有 缓冲利于管理

缺点:
(1)存在传输时延(相对电路交换)
(2)需要传输额外的信息量(每个数据块要加上源地址、目的地址等)
(3)分组交换采用数据报服务时,可能失序等,需要对分组编号,很麻烦。采用虚电路(面向连接),又会增加开销。

注意TCP/IP只能实现IP数据报






1.2.1协议、接口、服务概念

1、协议:对等层实体之间进行逻辑通信而定义的规则的集合,由语法、语义和同步三部分组成
语法:规定了传输数据的格式
语义:规定了所要完成的功能
同步:规定了执行各种操作的条件、时序关系等


2、接口:同一结点内相邻两层间交换信息的连接点
只能为相邻层次之间定义接口,实际上是逻辑接口,与设备之间的硬件接口并不相等。


3、服务:下层为紧邻的上层提供的功能调用
本层为上一层提供服务,要实现本层协议又需要下一层所提供的服务



1.2.2 计算机网络服务

面向连接服务和无连接服务

面向连接的服务:通讯双方在通讯之前必须建立连接,通讯过程中连接不断开,整个传输服务是可靠的。
但是要消耗资源,协议数据单元的头部要占用较大空间。


无连接的服务:通讯双方通讯不需要建立连接,直接发送信息到网络上,尽力保证送达。整个服务是不可靠的,但速度更快、实时性好。


可靠服务和不可靠服务

可靠服务是指网络具有纠错、检错应答机制能保证数据正确、可靠地传送到目的地。

不可靠服务是指网络只是尽量正确、可靠地传送数据,而不能保证数据正确、可靠地传送到目的地。



有应答服务和无应答服务

有应答服务是指接收方在收到数据后向发送方给出相应的应答

无应答服务是指接收方收到数据不给出应答



1.2.3 OSI七层参考模型

自下而上依次为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

应用层、表示层、会话层 称为资源子网,相当于计算机系统,完成数据的处理。

网络层、数据链路层、物理层 称为通信子网,它是为了联网而附加的通信设备,完成数据的传输功能


1、物理层
(1)传输单位是比特
(2)功能是 在物理媒体上为数据端设备透明地传输原始比特流
(3)物理媒体不在物理层协议之内,而在物理层的下面,有时称为0层


2、数据链路层(提供点到点通信)
(1)传输单位是帧
(2)功能:将网络层的IP数据报组装成帧,差错控制、流量控制和传输管理等。
(3)差错控制:原始物理连接在传输比特流时可能发生错误,两个结点如果规定了数据链路层协议,那么就可以检测出这些差错,并丢弃错误信息。
(4)流量控制:协调两个结点的速率,使数据发送速率等于接受的速率。
(5)数据链路层协议:PPP协议
(6)封装:在分组上增加源物理地址和目的物理地址和控制信息,封装成帧

3、网络层(主机到主机)
(1)传输单位是数据报
(2)任务:把网路层的协议单元(分组)从源端传送到目的端,为分组交换网上的不同主机提供通信服务
(3)功能:对分组进行路由选择、差错控制、流量控制、拥塞控制和网际互连等
(4)差错控制:通信两结点之间约定的特定检错规则(如奇偶检验码),出现差错能纠错纠错,不能纠错就丢弃,保证向上层提交的数据都是无误的
(5)网际互连:将大量异构网络通过路由器相互连接起来。
(6)网络层协议:无连接的网际协议(IP),和许多路由选择协议。
(7)封装:将高层协议数据封装成分组,增加网络地址和控制信息。

4、传输层(提供端到端通信,只支持TCP)
(1)传输单位是报文段(TCP) 或 用户数据报(IP)
(2)任务 :负责主机两个进程之间的通信
(3)功能 :为端到端连接 提供可靠的传输服务、流量控制、拥塞控制、差错控制和数据传输管理等服务
(4)通过传输层服务,用户直接进行端到端数据传输,从而忽略(屏蔽)通信子网的存在
(5)传输层协议:TCP、UDP
(6)封装:增加源和目的接口信息

5、会话层、表示层、应用层
(1)功能:直接对应用进程提供服务
(2)会话层允许不同主机各个进程通话、表示层处理交换信息的表示方式、应用层对应用提供服务接口
(3)应用层协议:用于文件传送的FTP、用于电子邮件的SMTP、用于万维网的HTTP
(6)封装:增加?



1.2.3 TCP/IP模型

从低到高依次为网络接口层(物理层、数据链路层)、网际层、传输层、应用层(回话层、表示层、应用层)
计算机面试常见题目-网络_第1张图片
1、网络接口层(物理层和数据链路层):表示与物理网络的接口
从主机或结点接收IP分组,并把他们发送到指定的物理网络上。

TCP/IP本身并未真正描述这一部分,只是指出主机必须使用某种协议与网络连接,以便在其上传递IP分组。


2、网际层(只支持IP数据报,主机-主机):TCP/IP体系结构的关键部分
将分组发往任何网络。并为之独立地选取合适的路由,但它不保证各个分组有序地到达,分组有序交付由更高层负责。

网际层定义了标准的分组格式和协议,即IP…


3、传输层(应用-应用或进程-进程):使得发送端和目的端主机上的对等实体进行会话
主要使用以下两种协议
(1)TCP(传输控制协议,Transmission Control Protocol):面向连接
数据传输的单位是报文段,能够提供可靠的交付

(2)UDP(用户数据数据报协议,User Datagram Protocol):无连接
数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”


4、应用层(用户-用户):包含所有的从高层协议
包括文件传输协议(FTP)、域名解析服务(DNS)、电子邮件协议(SMTP)、超文本传输协议(HTTP)



TCP/IP协议:能够在多个不同网络间实现信息传输的协议簇。

TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

TCP/IP协议体系结构详见TCP/IP协议模型。



OSI模型与TCP/IP模型区别;五层协议体系结构(OSI与TCP/IP模型的折中)

国际标准化OSI设计了OSI模型,实际执行标准为TCP/IP

OSI:传输层仅支持面向连接(TCP)
网络层支持无连接和面向连接通信(IP、虚电路),

TCP/IP:网络层仅支持无连接通信(IP)
传输层支持无连接和面向连接的通信

五层协议体系结构(OSI与TCP/IP模型的折中)
从下到上依次为:物理层、数据链路层、网络层、传输层、应用层




物理层:在物理媒体上为数据端设备透明地传输原始比特流

物理层考虑的是怎样才能在 连接各台计算机的传输媒体上 传输数据的比特流,
而不是连接计算机的具体物理设备或具体传输媒体。
也就是物理层涉及的多是如何传输数据的概念,而不是具体实现。

物理层设备:中继器、集线器


通信交互方式:单工通信、半双工通信、全双工通信

单工通信:只有一个方向通信,仅需要一条信道。

半双工通信:通信的双方都可以接受和发送信息,但任何一方都不能同时发送和接受信息。
需要两条信道。

全双工通信:通信双方可以同时发送和接受信息,也需要两条信道。




数据链路层:加强物理层传输原始比特流的功能,建立点到点无差错逻辑链路

3.1 数据链路层功能:帧、流量控制、差错控制、传输管理

数据链路层在物理层的基础上向网络层提供服务,它将数据组装成帧,并提供差错检验.

主要是加强物理层传输比特流的功能,将物理层可能出错的物理连接改造成逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

主要功能可总结为:为网络层提供服务、链路管理、帧的封装、流量控制、差错控制。


对物理层来说:
数据链路层在物理层提供服务的基础上 向网络层提供服务
主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路。

对网络层来说:数据链路层的基本任务是将源机器中来自网络层的数据传输到目标机器的网络层。


3.2 数据链路层通常可为网络层提供的服务

(1)无确认的无连接服务
源机器发送数据帧时不需先建立链路连接,目的机器收到数据帧时不需发回确认。
对丢失的帧,数据链路层不负责重发而交给上层处理。

(2)有确认的无连接服务
源机器发送数据帧时不需先建立链路连接,目的机器收到数据帧时必须发回确认。
对丢失的帧,必须重传。

(3)有确认的面向连接服务
建立数据链路-传输帧-释放数据链路
目的机器对收到的每一帧都要给出确定,源机器收到确认后才能发送下一帧。

有连接一定要有确认,不存在无确认的面向连接的服务。



3.3 PPP(Point-to-Point)协议:不可靠但检错,全双工

为什么不实现可靠传输

(1)开销太大
(2)放入的是IP数据报,网络层已经不可靠
(3)可以保证无差错接受(循环冗余码方式)


为什么不可靠,还对数据帧差错检测

为了不接受错误帧,并发送给上层。




网络层:把网络层的协议单元(分组)从源端传送到目的端,为分组交换网上的不同主机 提供主机到主机通信服务,只讨论IP数据报

4.0 数据报和虚电路(分组交换两种方式,tcp/ip只支持数据报,本科仅讨论数据报)

分组交换根据其通信子网向端点提供的服务,进一步可分为面向连接的虚电路方式和无连接的数据报方式。
这两种服务都由网络层提供。

4.0.1 数据报
特点:
(1)发送分组前不需要建立连接,发送方随时发送分组,网络结点随时接受分组
(2)网络尽最大努力交付,传输不保证可靠性
(3)发送的分组中包括发送端和接收端的完整地址,以便可以独立传输
(4)存储转发时延一般较小
(5)收发双方不独占某一链路,资源利用率高



4.0.2 虚电路:虚电路方式试图将数据报方式和电路交换方式结合起来。
在分组发送之前,要求在发送方和接收方建立一条逻辑上相连的虚电路,并且连接一旦建立,就固定了虚电路所对应的物理路径。

特点:分组首部不包括目的地址,仅包括虚电路标识符,相对数据报方式开销较小



4.1 网络层功能:异构网络互联、(分组)路由转发、拥塞控制

4.1.1 异构网络互联:将不同协议和不同结构的网络通过路由器连接起来。通过IP进行通讯,看起来像是一个统一的网络。
屏蔽了具体的异构网络细节。


4.1.2 路由与转发:
(1)路由选择(确定路径):根据 从各相邻路由器获得的关于整个网络拓扑的变化情况, 来动态改变所选择的路由。
根据特定的路由选择协议构造出路由表,同时不断更新和维护

(2)分组转发(分组到达时动作):路由器根据转发表,将IP数据报从合适的端口转发出去。

描述网络层分组转发流程

1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。 (IP地址分两部分:网络地址+主机地址)

2)若网络N与此路由直接相连,则进行直接交付,不需要在经过其他的路由器,直接把数据报交付目的主机。

若路由表中(3)有目的地址为D的 特定 主机路由、(4)有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则执行5)

5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由;否则,执行6)

6)报告转发分组出错。



4.2.1 什么是尽最大努力交付?

(1)不保证源主机发送出来的IP数据报一定(1)无差错、(2)准时、(3)有序、(4)不重复 地交付到目的主机。

(5)不故意丢弃IP数据报。
丢弃IP数据报的情况是:路由器检测出首部检验和 有错误;或由于网络中通信量过大,路由器或目的主机中的缓存已无空闲空间。



4.2.2 为什么有了MAC还要有IP

(1)只拥有MAC地址,不能跨网络区域进行数据传输。

(2)需要借助因特网来传输给连接因特网上的机器。



4.3 IP分组(IP数据报)概念

IP定义数据传送的基本单元-:IP分组,由首部和数据两部分组成。

一个链路层数据报能承载的最大数据量称为MTU,如果一个IP数据报大小超过了MTU,就要将其分片,分成若干较小的IP数据报。
到达目标主机后在组合起来。

IP首部重要字段:
(1)标识:这个字段是为了让目标主机确定一个新到达的数据报属于哪一个原始IP数据报
同一个原始IP数据报的所有片(子IP数据报)它们的标识相同。

(2)标志:MF(more fragment),表示“更多段”,MF=1标识后面还有分片
第二位是DF(don’t fragment)标识“不分段”,当DF=0时才允许分片。

(3)片偏移量:较长的分组在分片后,某片在原分组中的相对位置。
片偏移以8个字节为单位,因此除了最后一个分片,其它的分片中的有效数据载荷都是8的倍数

(4)生存时间TTL:数据报在网络中可通过的路由数的最大值。
路由器在分组转发前,先把TTL减去1,如果TTL变成0,就把它丢弃。



4.3 IP地址的特点

1、所有的网络号是对等的。

2、每一个IP地址都有网络号+主机号两部分组成。(IP地址分两部分:网络地址+主机地址)

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

4、不同局域网的主机由于网络号不同,必须通过路由器连接起来。(交换机是数据链路层上的设备,用它连接起来的主机仍然属于同一个网络。)

5、实际上一个IP地址用来标志一个主机或一个路由器。
当一个主机同时连接到两个网络时(如:实验室的代理服务器)。该主机必须具有两个相应的IP地址,也就必须具备两块网卡。



4.4.1 NAT(网络地址转换):将专用网络地址转换为公用地址

从而对外隐藏内部管理的IP地址,大大节省了IP地址的消耗,同时隐藏了内部结构从而降低了内部网络受到攻击的风险。


4.4.2 ARP(地址解析协议):根据IP地址获取物理地址 的一个TCP/IP协议。

IP地址是网络层使用的地址,硬件地址是数据链路层使用的地址(如MAC地址)。

IP地址放在IP数据报的首部,MAC地址放在MAC帧的首部



4.4.2 在一个很大的网络中能否用交换机代替路由器

不行,因为交换机无法连接异构网络,而路由器可以。



4.4.3 ip有分片功能,而广域网中的分组不用分片,为什么?

广域网中能够通过的分组最大长度是该广域网中所有结点事先知道的,源点不可能发送网络不支持的分组。因此没有必要再分片。

ip数据报要经过许多网络,而源节点事先不知道这些网络所能通过的分组的最大长度,等数据报到达某个网络时,中间结点发现这个数据报太长了,就要分组。



传输层:提供应用进程之间端到端的逻辑通讯。

逻辑通讯:传输层之间的通信好像是沿水平方向传送数据,但事实上这两个传输层之间没有一条水平方向的物理连接。

5.1 传输层功能:流量控制、拥塞控制、差错控制、传输管理

1、提供应用进程之间的逻辑通讯。

2、分用和复用

3、对接受到的报文进行差错检验,检验部分包括首部和数据部分

4、提供TCP和UDP两种传输协议。



比较一下传输层和网络层

1、服务对象:网络层提供主机到主机的逻辑通讯,传输层提供端到端逻辑通讯,;

2.1 复用:
(1)传输层的复用是发送方不同的应用进程都可使用统一传输层协议传送数据,

(2)网络层的复用是发送方的不同协议数据都可以封装成IP数据报发出去

2.2 分用:
(1)传输层是接收方的传输层在剥去报文的首部后能够把这些数据正确交付到应用进程。

(2)网络层是接收方的网络层在剥去首部后把数据交付给相应的协议。


3、传输层差错检测时要检查首部和数据,而网络层只检查IP数据报的首部。


4、传输层可以提供有链接和无连接的两种协议,而网络层只能提供其中之一,不能同时存在两个。



5.2 描述UDP协议、TCP协议

TCP/IP协议族在IP层之上使用了两个传输协议:
(1)面向连接的TCP,传输层向上提供一条全双工的可靠逻辑通道
(Transmission Control Protocol)

(2)无连接的UDP,传输层向上提供一条不可靠的逻辑信道
他仅在IP数据报服务上增加了两个最基本的功能:多路复用和对数据的错误检查。远程主机不需要给出确认。
(User Datagram Protocol)

UDP的优点:不用建立连接;无连接状态;分组首部开销小;没有拥塞控制,应用层能更好地控制送时间 。

UDP的工作过程:UDP面向报文,发送方UDP对应用层的报文,在添加了首部之后就向下交付给IP层,不合并也不拆分,而是保留这些报文的边界;接收方除去IP首部之后,就原封不动地交给上层应用进程,一次交付一个完整的报文,因此UDP是数据报处理的最小单位。


IP数据报和UDP数据报的区别

IP数据报经过路由要存转发,而UDP是封装在IP数据报内的,对路由是不可见的。



TCP协议的特点

TCP在不可靠的IP层上实现可靠的数据传输协议,它主要解决传输的可靠性、有序、不丢失和不重复的问题。

TCP的特点有:面向连接的传输层协议;每条TCP链接两个端口;全双工通讯;面向字节流通讯。



TCP和网络层虚电路的区别

TCP报文段对路由器不可见,虚电路对路由器可见,虚电路锁经过的结点都必须保存虚电路的状态信息。
在网络层如果采用虚电路,则无法提供无连接服务;



TCP三次握手与四次挥手

一握手:客户机发送连接请求
二握手:服务器回应请求(同时分配服务器资源)
三握手:客户机给出连接确认,同时可以携带数据(同时分配客户机资源)。

二次握手(少了第三次握手)错,会造成已失效的连接请求又传到服务器端,造成双方不一致而产生资源浪费。


一挥手:客户机发送连接释放请求(同时停发客户机数据)
二挥手:服务器回应请求(客户到服务器数据信道关闭,目前半关闭)
三挥手:通知TCP释放
四挥手:客户机确认TCP释放


TCP为什么必不可少

①报文到达目的地会有失序问题

②由于路由计算出现失误,IP数据报可能会在互联网中转圈,最后可能丢弃。

③由于路由器可能出现大流量,导致一些数据报被丢弃。

IP协议保证不了可靠,为了保证可靠传输,TCP是必须的。



应用层:直接和应用进程提供服务

6.1 访问一个网页的完整过程

建立一个完整的socket连接需要的5个参数,分别是:(本机ip,本机端口号,使用的网络协议,要访问的机器的ip,要访问机器的端口号)

假设访问百度,输入www.baidu.com,然后回车,
(1)此时要确定的是百度的ip地址,使用dns协议,向dns服务器发送数据包(dns服务器开启的是53端口),DNS服务器返回给我们百度的ip地址。
利用子网掩码判断要访问的ip是否和本地主机是同一个网段,假设要访问的ip跟我们不是同一个网段,那么向百度发送数据包必须通过网关转发。

(2)接下来通过应用层,浏览器访问使用的是http协议,构造一个http数据包
假定其长度为4960个字节,他会被嵌在tcp数据包之中。

(3)然后传输层,Tcp数据包需要设置端口
接收方的默认端口是80,本机的端口是一个随机生成的1024到65535之间的整数。假定为8888。Tcp数据包的包头长度为20字节,加上http数据包,为4980字节。

(4)然后经过网络层,tcp数据包再嵌入ip数据包,ip数据包需设置双方ip【已知】
Ip数据包的头长度为20字节,总共是5000字节。IP数据包经过网关转发,进入以太网。

(5)接下来到数据链路层。Ip数据包嵌入以太网数据包,以太网数据包需设置双方mac地址【已知】,接收方mac地址即网关mac地址【通过arp协议得到】。
以太网数据包的数据部分最大为1500字节,因此ip数据包必须分包,因为每个包都有自己的ip标头,因此四个包的ip数据包的长度分别是1500,1500,1500,560。

(6)然后是物理层。物理线路则只负责该数据以bit为单位从主机传输到下一个目的地。
下一个目的地接受到数据后,从物理层得到数据然后经过逐层的解包到链路层到网络层,然后开始上述的处理,在经网络层、链路层、物理层将数据封装好继续传往下一个地址。



6.2 Http-超文本传输协议(HyperText Transfer Protocol)

是互联网上应用最为广泛的一种网络协议。
设计Http最初的目的是为了提供一种发布和接收HTML页面的方法。它可以使浏览器更加高效。

Http协议是以明文方式发送信息的,如果黑客截取了Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。

Http原理:

① 客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP 来完成的,
一般 TCP 连接的端口号是80。 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。

② 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容。



6.3 Https-Http的安全版。

是以安全为目标的Http通道,Https的安全基础是SSL。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
SSL协议可分为两层:
(1)SSL记录协议(SSL Record Protocol),它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
(2)SSL握手协议(SSL Handshake Protocol),它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。


Https设计目标:

(1)数据保密性: 保证数据内容在传输的过程中不会被第三方查看。就像快递员传递包裹一样,都进行了封装,别人无法获知里面装了什么 。

(2)数据完整性::及时发现被第三方篡改的传输内容。就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收 。

(3)身份校验安全性: 保证数据到达用户期望的目的地。就像我们邮寄包裹时,虽然是一个封装好的未掉包的包裹,但必须确定这个包裹不会送错地方,通过身份校验来确保送对了地方 。



6.4 Http与Https的区别

1、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

2、http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。 (无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

3、https协议需要到CA (证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。

4、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。



DNS是什么

域名系统,是因特网使用的命名系统。采用客户/服务器模型,其协议运行在UDP之上。
域名系统解析域名,得到对应主机IP地址

你可能感兴趣的:(面试)