计算机网络基础知识点+面试

目录

 

一、计算机网络五层体系结构

(1)概述

五层体系结构 由 应用层,运输层,网络层,数据链路层,物理层组成。

(2)物理层

(3)数据链路层

(4)网络层

(5)运输层

(6)应用层

(7)一个例子

二、TCP协议的三次握手和四次挥手

(1)三次握手

为什么要三次握手

为什么要传回 SYN

传了 SYN,为啥还要传 ACK

(2)四次挥手

为什么要四次挥手

三、TCP和UDP 的区别

TCP 协议如何保证可靠传输

停止等待协议

自动重传请求 ARQ 协议

连续ARQ协议

滑动窗口.流量控制.拥塞控制   需要再细看

五 、在浏览器中输入url地址 ->> 显示主页的过程

六、HTTPS协议

七、状态码

八、HTTP 长连接和短连接


一、计算机网络五层体系结构

参考:https://blog.youkuaiyun.com/g1607058603/article/details/80874298

(1)概述

1.基本术语

结点:网络中的结点可以是计算机、集线器、交换机或路由器

链路:从一个结点到另一个结点的一段物理线路,中间没有任何其他交点

主机:连接在因特网上的计算机

ISP(internet service provider): 因特网服务提供者(提供商)

IXP(Internet eXchange Point): 互联网交换点IXP的作用是允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发

RFC:请求评议,包含了internet几乎所有的重要的文字资料

广域网(WAN): 任务是通过长距离运送主机发送的数据

城域网(MAN): 用来将多个局域网进行互联

局域网LAN:学校和企业大多拥有多个互连的局域网

个人区域网PAN:在个人工作的地方把属于个人使用的电子设备用无线技术连接起来的网络。

分组:因特网中传送的数据单元。由首部header和数据段组成。分组又称为包,首部可称为包头

分组转发:路由器收到一个分组(包),先存储下来,在检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发(就想送快递包裹一样)

带宽:在计算机网络中,表示在单位时间内从网络中的某一点到另一点所能通过的最高数据率。常用来表示网络的通信线路所能传送数据的能力。单位是“比特每秒”,记为b/s

吞吐量:表示在单位时间内通过某个网络(或信道、接口)的数据量。

五层体系结构 由 应用层,运输层,网络层,数据链路层,物理层组成。

运输层最主要的协议是TCP和UDP协议。网络层最重要的协议是IP协议

OSI下3层(物理层,数据链路层和网络层)的主要任务是数据通信,上3层(会话层,表示层和应用层)的任务是数据处理。而传输层恰好是OSI模型的第4层,是通信子网和资源子网的接口和桥梁,起到承上启下的作用。

(2)物理层

它实现了相邻计算机节点之间比特流的透明传送,并尽可能地屏蔽掉具体传输介质和物理设备的差异,使其上层(数据链路层)不必关心网络的具体传输介质

物理层的主要任务就是确定与传输媒体接口有关的一些特性,如机械特性,电气特性,功能特性,过程特性。

(3)数据链路层

作用:在相邻节点间无差错的传送帧。负责建立和管理节点间的链路,控制网络层与物理层之间的通信。它完成了数据在不可靠的物理线路上的可靠传递。

 

接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层。此外,该层还负责提供物理地址寻址、数据的成帧、流量控制、差错控制等功能。差错控制是指处理接收端发回的确认帧的信息(对等层通信),以便提供可靠的数据传输;流量控制是指抑止发送方的传输速率,使接收方来得及接收。

工作在该层的硬件是网桥

链路:一个结点到相邻结点的一段物理链路

数据链路:把实现控制数据运输协议的硬件和软件加到链路上就构成了数据链路

循环冗余检验CRC(Cyclic Redundancy Check):为了保证数据传输的可靠性,CRC是数据链路层广泛使用的一种检错技术

帧:一个数据链路层的传输单元,由一个数据链路层首部和其携带的封包所组成协议数据单元。

MTU(Maximum Transfer Uint ):最大传送单元。帧的数据部分的的长度上限。

PPP(Point-to-Point Protocol ):点对点协议。即用户计算机和ISP进行通信时所使用的数据链路层协议。

MAC地址(Media Access Control或者Medium Access Control):

意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。
在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。
因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址  。
地址是识别某个系统的重要标识符,“名字指出我们所要寻找的资源,地址指出资源所在的地方,路由告诉我们如何到达该处”

网桥(bridge):一个用于数据链路层实现中继,连接两个或多个局域网的网络互连设备

交换机(switch :其实质是一个多接口的网桥

数据链路层传输的协议数据单元是帧。数据链路层的三个基本问题是:封装成帧透明传输差错检测

循环冗余检验CRC是一种检错方法,而帧检验序列FCS是添加在数据后面的冗余码

点对点协议PPP是数据链路层使用最多的一种协议,它的特点是:简单,只检测差错而不去纠正差错,不使用序号,也不进行流量控制,可同时支持多种网络层协议

计算机与外接局域网通信需要通过通信适配器(或网络适配器),它又称为网络接口卡或网卡。计算器的硬件地址就在适配器的ROM中

(4)网络层

 网络层主要任务是将网络地址翻译成对应的物理地址,并通过路由选择算法为分组通过通信子网选择最适当的路径。特别地,网络层将通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A 到另一个网络中节点B的最佳路径。

 网络层最重要的一个功能就是:路由选择。网路层会依据速度、距离(步跳数)、价格和拥塞程度等因素在多条通信路径中找一条最佳路径。所谓路由,一般包括路由表和路由算法两个方面。事实上,每个路由器都必须建立和维护其路由表,一种是静态维护,也就是人工设置,只适用于小型网络;另一种是动态维护,是在运行过程中根据网络情况自动地动态维护路由表。

网络层的产品:路由器

网络层的传输是不可靠的

IP数据报分为首部和数据两部分。首部的前一部分是固定长度,共20字节,是所有IP数据包必须具有的(源地址,目的地址,总长度等重要地段都固定在首部)。一些长度可变的可选字段固定在首部的后面。IP首部中的生存时间给出了IP数据报在互联网中所能经过的最大路由器数。可防止IP数据报在互联网中无限制的兜圈子。

要解决IP地址耗尽的问题,最根本的办法是采用具有更大地址弓箭的新版本IP协议-IPv6。IPv6所带来的变化有①更大的地址空间(采用128位地址)②灵活的首部格式③改进的选项④支持即插即用⑤支持资源的预分配⑥IPv6的首部改为8字节对齐。另外IP数据报的目的地址可以是以下三种基本类型地址之一:单播,多播和任播

(5)运输层

向用户提供端到端的传输,提供差错和流量控制,保证报文的正确传输,是可靠的。传输层的作用是向高层屏蔽下层数据通信的细节,即向用户透明地传送报文

网络层为主机提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。

在应用层对于不同功能的进程需要不同的协议,但是运输层并不针对特定的协议,多种应用(浏览器请求响应、发送邮件、FTP文件传输)都可以使用同一个运输层服务。由于一台主机允许多个进程同时进行,所以运输层有复用和分用的功能。复用就是多个运用层进程可以同时使用运输层服务,分用就是运输层可以将收到的信息分别交给不同的运用层进程。

是一台主机的进程和另一台主机中的一个进程交换数据的过程(另外注意通信真正的端点不是主机而是主机中的进程,也就是说端到端的通信是应用进程之间的通信)

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

TCP:传输控制协议

UDP:  用户数据报协议

i、传输控制协议 TCP(Transmission Control Protocol) 
TCP协议是一种面向连接的、可靠地数据传输服务,传输的单位是报文段,也就是说,通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达,TCP提供全双工通信,TCP是面向字节流的,TCP把应用程序交下来的数据块看成无结构的字节流,TCP不保证接收方应用程序收到的数据块和发送方应用程序所发出的数据块具有对应的大小关系。例如: 
发送方应用程序交给发送方TCP共10个数据块,但接收方的TCP可能只用4个数据块就把收到的字节流交付给了上层的应用程序,但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样)
ii、用户数据报协议 UDP 
提供无连接的、尽最大努力的数据传输服务(不保证数据传输的可靠性),UDP是面向报文的,UDP没有拥塞控制,因此网络出现的拥塞不会使源主机发送速率降低,UDP支持一对一、一对多、多对一、多对多的交互通信,UDP的首部开销小。其数据传输的单位是用户数据报。

端口的目的是为了确认对方机器是那个进程在于自己进行交互,比如MSN和QQ的端口不同,如果没有端口就可能出现QQ进程和MSN交互错误。端口又称协议端口号。 

UDP的主要特点是①无连接②尽最大努力交付③面向报文④无拥塞控制⑤支持一对一,一对多,多对一和多对多的交互通信⑥首部开销小(只有四个字段:源端口,目的端口,长度和检验和)

TCP的主要特点是①面向连接②每一条TCP连接只能是一对一的③提供可靠交付④提供全双工通信⑤面向字节流

TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点。这样的端点就叫做套接字(socket)或插口。套接字用(IP地址:端口号)来表示。每一条TCP连接唯一被通信两端的两个端点所确定。

TCP和UDP的区别

UDP是面向报文的,在传送数据之前不需要先建立连接,远地主机在收到UDP报文后,不需要给出任何确认。支持一对一,一对多和多对多的通信。并且没有拥塞控制。 TCP提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。连接只能是1对1的。提供全双工通信。

(6)应用层

为用户的应用进程提供网络通信服务。该层具有的各种应用程序可以完成和实现用户请求的各种服务。

于不同的应用需要不同的协议。比如:在浏览器上我们浏览网页,浏览器向服务器请求数据就是通过HTTP协议。我们发送邮件采用的是SMTP协议。进行文件传输可以采用FTP协议。查找域名IP采用的是DNS协议等。应用层之间的交互数据单元为报文。什么是报文呢?就拿HTTP写来说,我们无论是发送请求或者接受响应都是通过报文的格式。其中包括报文报文首部(请求行)、消息报头、报文主体。如下图: 

域名系统DNS:  万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

(7)一个例子

两个主机之间的一次数据传输

è¿éåå¾çæè¿°

如图: 
假定左边的是主机1,右边的是主机2,主机1的一个应用进程要给主机2传送数据。 
1、应用程序要传送的数据先传送到应用层进行打包,打包成报文的格式(有控制信息H5以及数据,如http报文)。报文格式就是下一层(运输层)的数据单元、 
2、运输层接收到数据单元后将报文分割成报文段,加上序号方便后续组装,加上本层的控制信息H4打包成报文段或者用户数据包作为下一层(网络层)的数据单元。 

3.到达网络层将数据分组(按八字节倍数进行分组),打包成IP数据报传送
4.经过数据链路层和物理层传送的数据变成了比特流
5.比特流通过物理媒体传送到主机2,主机2的的物理层接收到比特流之后按照上面的反方向传送到应用层,最后应用程序获取到主机1发送的数据。

二、TCP协议的三次握手和四次挥手

(1)三次握手

 

 

 

为什么要三次握手

三次握手最主要的目的就是双方确认自己与对方的发送与接收都是正常的。建立可靠的通信。

为什么要传回 SYN

为了告诉发送端,你的传输无误,你发送的信息我全部接收到了

传了 SYN,为啥还要传 ACK

为了证明接收方的发送通道也没有问题,需要ack来确认

(2)四次挥手

为什么要四次挥手

因为需要双方去确认对方的关闭信号,不能单方面去停止服务。

任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。因为需要双方去确认关闭

三、TCP和UDP 的区别

UDP是面向报文的,在传送数据之前不需要先建立连接,远地主机在收到UDP报文后,不需要给出任何确认。支持一对一,一对多和多对多的通信。并且没有拥塞控制。 TCP提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。连接只能是1对1的。提供全双工通信。

TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认机制,重传机制(停止等待协议,连续ARQ协议),拥塞控制机制等,在数据传完后,还会断开连接用来节约系统资源

TCP 协议如何保证可靠传输

  1. 应用数据被分割成 TCP 认为最适合发送的数据块。
  2. TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
  3. 校验和: TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。
  4. TCP 的接收端会丢弃重复的数据。
  5. 流量控制: TCP 连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。 (TCP 利用滑动窗口实现流量控制)
  6. 拥塞控制: 当网络拥塞时,减少数据的发送。
  7. 停止等待协议 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。
  8. 超时重传: 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。

停止等待协议

  • 停止等待协议是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组;
  • 在停止等待协议中,若接收方收到重复分组,就丢弃该分组,但同时还要发送确认

自动重传请求 ARQ 协议

停止等待协议中超时重传是指只要超过一段时间仍然没有收到确认,就重传前面发送过的分组(认为刚才发送过的分组丢失了)。因此每发送完一个分组需要设置一个超时计时器,其重传时间应比数据在分组传输的平均往返时间更长一些。这种自动重传方式常称为自动重传请求ARQ。

优点: 简单

缺点: 信道利用率低

连续ARQ协议

连续 ARQ 协议可提高信道利用率。发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了。

优点: 信道利用率高,容易实现,即使确认丢失,也不必重传。

缺点: 不能向发送方反映出接收方已经正确收到的所有分组的信息。 比如:发送方发送了 5条 消息,中间第三条丢失(3号),这时接收方只能对前两个发送确认。发送方无法知道后三个分组的下落,而只好把后三个全部重传一次。这也叫 Go-Back-N(回退 N),表示需要退回来重传已经发送过的 N 个消息。

滑动窗口.流量控制.拥塞控制   需要再细看

五 、在浏览器中输入url地址 ->> 显示主页的过程

https://segmentfault.com/a/1190000006879700

总体来说分为以下几个过程:

  1. DNS解析
  2. TCP连接
  3. 发送HTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染页面
  6. 连接结束

六、HTTPS协议

HTTPS协议 是对http报文内容加密的协议

在HTTP报文进入TCP报文之前,先使用SSL对HTTP报文进行加密。从网络的层级结构看它位于HTTP协议与TCP协议之间。

HTTP报文是明文,如果中间被截取的话会存在一些信息泄露的风险。那么在进入TCP报文之前对HTTP做一次加密就可以解决这个问题了。HTTPS协议的本质就是HTTP + SSL(or TLS)。

HTTPS过程

HTTPS在传输数据之前需要客户端与服务器进行一个握手(TLS/SSL握手),在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL使用了非对称加密,对称加密以及hash等。具体过程请参考经典的阮一峰先生的博客TLS/SSL握手过程


HTTPS相比于HTTP,虽然提供了安全保证,但是势必会带来一些时间上的损耗,如握手和加密等过程,是否使用HTTPS需要根据具体情况在安全和性能方面做出权衡。

HTTP响应报文也是由三部分组成: 状态码响应报头响应报文

七、状态码

八、HTTP 长连接和短连接

短连接:客户端和服务器端每进行一次请求就建立一次连接,任务结束就中断连接

长连接:请求完成后,TCP连接不会关闭,会保持连接,保持的时间由服务器软件设定

在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。

而从HTTP/1.1起,默认使用长连接,用以保持连接特性。

使用长连接的HTTP协议,会在响应头加入这行代码:

Connection:keep-alive

在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。

HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值