计算机网络学习

计算机网络学习

一.杂谈

初步策略:

  • 记录课程学习中的例题和关键知识点,但如计算机概述因特网概述等不重点的内容留个印象,等大二开课后在课堂上回忆即可,关键内容如TCP/IP体系结构HTTP和HTTPS等内容重点记录
  • 辅以计算机网络:自顶向下方法谢希仁老师的计算机网络教材进行详细的查漏补缺
  • 记录一些面经中的八股文

二.知识部分

第一章

1.计算机网络性能指标

LZlWKU.png

Tips:

  • 插一个题外话,计组习题里有个波特率,波特率是单位时间内传送的二进制位数,而比特率是单位时间内传送的有效的二进制位数

LZakQA.png

LZaBl9.png

在处理时延忽略的情况下,我们无法想当然的说是发送时延占主导,还是传播时延占主导。要依据实际情况进行判断。

LZdu0x.png

LZ0hpF.png

LZBeXj.png

LZBK7q.png

往返时间指的是从源主机发送分组到源主机收到目的主机返回的确认分组的信息为止所经过的时间。在这过程中,由于卫星链路间的距离较长,所以RTT中将由卫星链路占据主导。

2.计算机网络体系结构
常见的计算机网络体系结构

LlsVET.png

LZLhOH.png

计算机不用联网也可以使用TCP/IP协议,在操作系统内核中存在内置的符合TCP/IP体系结构标准的TCP/IP协议族,在网络互联的路由器中也内置协议族,但不存在运输层与应用层。

IP协议是TCP/IP体系结构网际层的核心协议,TCP和UDP则是运输层的两个重要协议,而应用层则包含着许多不同的协议。

IP协议可以与网络接口层中不同的接口进行双向互联(例如以太网接口、无线WIFI接口等),并且向运输层的TCP和UDP协议提供网络互连服务,而TCP在IP协议提供网络服务的基础上,可向应用层相关协议提供可靠的运输服务,同样的,UDP协议也可以为应用层相应协议提供不可靠的运输服务。

分层的必要性

LQfYRO.png

计算机网络是非常复杂的系统,为了更有效地解决问题,科学家们采用分层方式,将大问题转换为局部的小问题,在各个层当中解决,类似分治的思想

LQhW9K.png

在网络层中,问题具体的内容是,我们如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址),假设某网络的IP地址为192.168.1.254,前三个十进制数标识网络,最后的十进制数代表主机,那么连接该网络的笔记本电脑、服务器以及路由器接口的IP地址的前三个数都会是192.168.1,最后一个数则拿来标识自己。

除此之外,在一个网络中,源主机到目的主机发送分组存在不同的路线,如何转发分组以及进行路由选择同样是需要在网络层解决的问题。

LQIZ79.png

运输层中,我们首先需要处理如何解决进程之间基于网络的通信问题,比如在云端的服务器向本地发送了一个分组,但本地同时运行着两个与网络通信有关的进程,我们就需要一种方式来判断到底需要发送给哪个进程

其次还需要处理出现传输错误时,如何处理的问题,比如因路由器繁忙,传输分组的过程中丢弃了分组导致丢包,又或者是传输过程中出现了误码等等问题该如何解决。

在应用层中,程序员需要使用不同的协议编写完成特定功能的网络应用,例如万维网应用HTTP协议,电子邮件的SMTP协议,文件传送的FTP协议等

分层思想举例

LQb3o4.png

当在浏览器中输入网址访问某个网页时,其实是浏览器进程与Web服务器进程基于网络间的通信,根据自顶向下的网络结构,详细过程如下:

  • 首先从浏览器进程开始,根据HTTP协议构建HTTP报文
  • 报文被送至运输层,在首部被添加TCP报文,构成TCP报文段,TCP报文段的作用是区分应用进程、实现可靠传输
  • 运输层将TCP报文段交给网络层处理,为TCP报文段添加一个IP首部,称为IP数据报,IP首部的作用是使得IP数据报可以在网络上进行传输(可以被路由器转发)
  • 网络层将IP数据报交付给数据链路层,数据层为IP数据报添加一个首部ETH和一个尾部ETH,整体称为一帧,帧的格式与网络的类型有关。首部的作用是为了能让帧能在一段链路或网络上进行传输、能够被目的主机接收;尾部的作用是让目的主机检查所接收到的帧是否存在误码
  • 数据链路层将帧交付给物理层,物理层将帧看作是比特流,因为N1是以太网,所以物理层还会为比特流首部加入前导码,前导码可以让目的主机做好接受帧的准备。物理层将整体转换为相应的信号送至传输媒体。

  • 信号通过传输媒体到达路由器。
  • 物理层首先将信号转换为比特流,去掉前导码后(此时就是一个帧了),将帧交付数据链路层。数据链路层将帧的首部和尾部去掉后(成为了IP数据报),将其交付给网络层,网络层解析数据报的首部,从中提取出目的网络地址,查找自身的路由表,确定转发端口。网络层将IP数据报交给数据链路层,为其添加一个首部和一个尾部
  • 之后的过程与浏览器进程中的相同

  • 直到Web服务器进程的应用层收到HTTP报文后,对其进行解析,然后服务器会向主机发回HTTP响应报文,重新进行一遍上述的全过程,直到浏览器进程收到报文
专用术语

实体:

  • 任何可发送或接收信息的硬件或软件进程

对等实体

  • 收发双方相同层次中的实体

LliYQS.png

协议:

  • 控制两个对等实体进行逻辑通信的规则的集合(逻辑通信实际上并不存在,只是为了方便研究某个层次)

协议三要素:

1.语法:

  • 定义所交换信息的格式

2.语义:

  • 定义收发双方所要完成的操作(例如浏览器进程需要发送请求报文和解析响应报文,而主机需要解析请求报文和发送响应报文)

3.同步:

  • 定义收发双方的时序关系(不是指时钟频率同步)

服务:

  • 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
  • 要实现本层的协议,还需要下一层提供的服务
  • 应用层所提供服务的对象是用户
  • 协议是水平的,而服务是垂直的
  • 实体清楚相邻下层所提供的服务,但并不清楚实现该服务的具体协议,对实体来说是”透明“的

LlED74.png

协议数据单元(PDU):

  • 对等层次之间传送的数据包称为该层的协议数据单元

Lls0KI.png

3.相关习题&八股

LleLg1.png

LlmdPJ.png

Lln8Wd.png

LlnwTS.png

Llu74g.png

Llujuq.png

LlKEK1.png

LlKUIS.png

Ll1Mwt.png


时延

Ll8PPK.png

LlwFR1.png

无论在线路中一次要传送多个比特的信息,永远都只有一个传播时延,伴随比特多的只是发送时延。

LlBOxI.png

posted @ 2022-07-16 13:42  Appletree24  阅读(48)  评论(0编辑  收藏  举报