【CS基础】计组&计网

CS基础知识汇总 专栏收录该内容
6 篇文章 0 订阅

专业课二复习汇总:计组&计网


https://blog.csdn.net/hushhw/article/details/78985307
https://zhuanlan.zhihu.com/p/118504254
https://blog.csdn.net/weixin_43847469/article/details/108813871

文章目录


1. 计算机组成

  • 总线:计算机各种功能部件之间传送信息的公共通信干线
    在冯诺依曼结构中,各个部件之间均有单独连线,不仅线多,而且导致扩展I/O设备很不容易。即扩展一个I/O设备,需要连接很多线。
    因此,引入了总线连接方式,将多个设备连接在同一组总线上,构成设备之间的公共传输通道
  • 总线的两大基本特征是什么?
    1)共享:多个部件连接在同一组总线上,各个部件之间都通过该总线进行数据交换。
    2)分时:同一时刻,总线上只能传输一个部件发送的信息;
    在这里插入图片描述

1.1 冯诺依曼机的体系结构

在这里插入图片描述

计算机由运算器、存储器、控制器、输入输出设备组成
指令和数据以同等地位存储在存储器中,按地址访问
指令数据均用二进制表示
指令顺序存放,顺序执行
运算器为中心(现代计算机以存储器为中心)

1.2 翻译和解释的区别

  • 翻译:

1.2.1 什么是计算机体系结构?什么是计算机组成?以乘法指令为例说明二者区别。

1)计算机体系结构是指那些能够被程序员看到的计算机的属性。如指令集、数据类型等;
2)计算机组成是指如何实现计算机体系结构所体现出来的属性;
3)以乘法指令为例,计算机是否有乘法指令,属于体系结构的问题。乘法指令是采用专用的乘法器,还是使用加法器和移位器构成,属于计算机组成的问题。

1.3 机器字长、指令字长、存储字长区别

  • 机器字长:计算机可直接处理的二进制数据位数,一般等于CPU内部寄存器的大小
  • 指令字长:一个指令字包含的二进制代码位数(一般为存储字长的整数倍)
  • 存储字长:一个存储单元存储的二进制代码长度(MDR的位数),按某个地址访问某个存储单元获取的二进制数据的位数

1.3.1 什么是存储单元、存储字、存储字长、存储体?

  • 存储单元:存储一个存储字并具有特定存储地址的存储单位;
  • 存储字:一个存储单元中存放的所有的二进制数据,按照某个地址访问某个存储单元获取的二进制数据。
  • 存储字长:存储字中二进制数据的位数,即按照某个地址访问某个存储单元获取的二进制数据的位数;
  • 存储体:由多个存储单元构成的存储器件。

1.3.2 存储器的扩展通常有位扩展和字扩展,什么是字扩展,什么是位扩展?请举例简要说明

1)位扩展:增加存储器的字长,例如两个1K * 4位的存储芯片构成1个1K*8位的存储器;
2)字扩展:增加存储器的字数,例如两个1K * 8位的存储芯片构成1个2K * 8位的存储器;
通常字扩展和位扩展两种方式混合使用。

1.3.3、主存储器中,什么是MAR,什么是MDR,存储器的最大容量由什么决定?

1)MAR:存储地址寄存器,保存需要访问的存储单元地址。反映存储单元的个数。
2)MDR:存储数据寄存器,缓存读出/写入存储单元的数据。反映存储字长。
3)存储器的最大容量由MAR寄存器的位数和MDR寄存器的位数决定

1.3.4 提高访存速度的三种方式。

1)采用高速元器件;
2)采用存储层次结构:cache-主存结构;
3)调整主存结构:包括单体多字,多体并行两种方式。

1.4 MIPS

  • CPI:执行一条指令所需时钟周期数
  • MIPS :每秒多少百万条指令=主频/CPI

1.5 SRAM和DRAM的区别#

RAM可分为静态存储器(Static Random Access Memory,SRAM)和动态存储器(Dynamic Random Access Memory)。SRAM中的存储单元相当于一个锁存器,只有0,1两个稳态;DRAM则是利用电容存储电荷来保存0和1两种状态,因此需要定时对其进行刷新,否则随着时间的推移,电容其中存储的电荷将逐渐消失。

  • SRAM:读写速度快,生产成本高,多用于容量较小的高速缓冲存储器。

  • DRAM:读写速度较慢,集成度高,生产成本低,多用于容量较大的主存储器。

1.5.1 3、常见的存储系统层次结构有哪两种?透明性如何?各自用来解决什么问题的?

1)缓存-主存层次:用来缓解CPU和主存速度不匹配的问题,由硬件来完成,对所有的程序员完全透明。
2)主存-辅存层次:用来解决主存容量不够的问题,由操作系统和硬件共同完成,对应用程序设计者透明,对系统程序设计者不透明。

1.6 高位交叉编址和低位交叉编址的区别

高位交叉编址是这样的:高位代表体号,也就是哪一个柜,低位表示体内的地址(这部机的哪一格)如图所示:
在这里插入图片描述
那么低位则是反过来: 低位是体号,高位是体内地址。
在这里插入图片描述
计算机进行单位访问是大部分是连续访问的,那他们的读取方式就截然不同。假如我们来按顺序访问一下00000、00001、00010、00011这4个地址,如果是高位交叉的是这样:

在这里插入图片描述
而低位:
在这里插入图片描述

1.6.1 4、字在存储单元中有两种存储方式,大端方式和小端方式。各是什么含义?x86采用的是哪种存储方式?

( Big-Endian和Little-Endian)
1)大端方式:字的低位存在内存的高地址中,而字的高位存在内存的低地址中;
2)小端方式:字的低位存在内存的低地址中,而字的高位存在内存的高地址中。
3)x86CPU采用的是小端方式。

【例】比如数字0x12 34 56 78在内存中的表示形式为:
1)大端模式:
低地址 -----------------> 高地址
0x12 | 0x34 | 0x56 | 0x78
2)小端模式:
低地址 ------------------> 高地址
0x78 | 0x56 | 0x34 | 0x12

1.7 Cache与主存的映射方式有哪些

  • 全相联映射(full-associative mapping ):主存块可放在Cache的任意位置
    优点:灵活,命中率高
    缺点:主存字块标记为全部块标记,访问cache时,主存的字块标记要和cache的全部标记位进行比较,所需的逻辑电路很多,成本较高,实际的cache还要采用各种措施来减少地址的比较次数
  • 组相联映射(set-associative mapping):将Cache分为若干组,主存块可放在每组的任意位置。组间直接映射,组内全相联映射
    主存块j按模Q(组数)映射到缓存的第i组中任一块,cache分为Q组,每组R块
    对应关系有:i = j mod Q
    i为缓存的组号,j为主存的块号
  • 直接映射:主存块放在Cache的唯一位置。
    i为缓存块号,j为主存块号,C为缓存块数,映射关系式:i = j mod C
    特点:不灵活,每个主存块只能与固定对应某个缓存块,即使还空着许多位置也不能使用。

1.7.1 Cache的工作过程:

CPU发出一个地址,同时发给主存和cache的地址映射机构,CPU会从主存中取出字或从cache中取出字。主存将块号送入主存cache地址变换机构,如果命中,就将主存地址转化为cache地址,从cache存储体中找到对应的字,然后通过数据总线送到CPU,完成一次读写过程;如果没有命中,这个字就不能从cache中取,而应该从主存中取出字送给CPU,与此同时,如果cache中有空间,可以装进,就将这个字所在的块拿到cache中。如果空间不够,不能装进cache,cache替换机构就将cache中不常用的块拿出,将该字的块替换进cache中。

1.8 Cache的写策略#

写回(write back )和 写通(write through)

  1. write back
    只有在一个cache行被选中替换回主存时,如果cache 行的数据是修改过的(dirty),才将它写回主存。这种策略,要在Cache中设置一个脏位(dirty bit),用来表示缓存中的cache 行是否被修改过。如果 一个内存块在加载到Cache后未被修改过,Cache直接把该cache行设置为无效。不需要把数据写回主存,这样可以有效降低从Cache到主存的写次数。

  2. write through
    写通是指,每当Cache收到写数据(store)指令时,若写命中,则CPU会同时将数据写到Cache和主存。
    如果写不命中:

  3. 写分配,是把这个未在cache中的块加载到cache中后在进行写;写回法搭配写分配法:假设第一次未命中,需要加载主存中的块到Cache中,同时更新Cache块的内容;往后再n访问即写命中的情况,只需要修改n次Cache中的块。

  4. 非写分配法:CPU直接写入主存,不与Cache交互

1.9指令的寻址方式有哪些

  • 顺序寻址
    通过程序计数器(PC)加一,自动生成下一条指令的地址
  • 跳跃寻址
    通过转移指令实现,由本条指令给出下一条指令地址的计算方式

1.10 数据寻址的方式有哪些

隐含寻址
立即数寻址:直接给出操作数
直接寻址:给出操作数在主存中的地址
间接寻址:给出操作数在主存中的地址的地址
寄存器寻址:给出存储操作数的寄存器地址
寄存器间接寻址:在寄存器中给出操作数在主存中的地址
相对寻址:给出相对于当前指令的位移量
基址寻址:给出相对于基址寄存器中地址的位移量,基址寄存器中的值一般不可变
变址寻址:给出相对于变址寄存器中地址的位移量,变址寄存器中的值由用户指定,可

1.11 CISC和RISC的区别

  • CISC:指令集复杂,数目多,指令长度不固定,寻址方式多,采用微程序控制,可使用的通用寄存器少
  • RISC:指令集简单,数目少,定长指令,只有Store/Load指令可以访存,寻址方式少,采用组合逻辑控制,可使用通用寄存器多

1.12 什么是指令周期、机器周期和时钟周期

指令周期:CPU每取出并执行一条指令所需的全部时间

机器周期:执行指令周期中一步相对完整的操作所需的时间(如取值周期),通常取机器周期为存取周期

时钟周期:计算机主频的倒数,是计算机运行的最基本时序单位

1.13 影响流水线性能的因素

  • 资源冲突
    多条指令在同一时刻争用同一资源而形成的冲突
    解决:前一条指令访存时,后一条指令暂停一个时钟周期
  • 数据冲突
    必须等待前一条指令执行完才能执行后一条指令
    解决:数据旁路技术(前一条指令的结果不用写回寄存器组,直接作为后一条指令的输入)、暂停几个时钟周期、编译调整顺序
  • 控制冲突
    转移指令和其他改变PC值得指令造成断流
    解决:分支预测、预取两个方向上的目标指令

1.14 I/O数据传送控制方式

解释下什么是DMA(Direct Memory Access)
在这里插入图片描述
【DMA具体方式】
在这里插入图片描述

【通道控制方式】
在这里插入图片描述
【DMA方式和中断方式的区别】

  • 中断响应只在中断周期时响应,DMA请求的响应可以在每个机器周期结束时
  • 中断传输过程中要CPU的干预,DMA不需要
  • DMA请求的优先级高于中断请求

1.15 中断处理的过程

关中断
保存断点:将PC压入堆栈
中断服务程序寻址
保存现场和屏蔽字(PSW,通用寄存器值)
开中断
执行中断服务程序
关中断
恢复现场和屏蔽字
开中断
返回断点
在这里插入图片描述

1.16 I/O设备编址有哪两种方式?各有什么优缺点?

1)统一编址方式:和存储器统一编址,I/O地址作为存储器地址的一部分;无须用专用的I/O指令,但占用存储器空间。
2)独立编址方式:和存储地址分开编址,需用专用的I/O指令。

1.17 磁盘的三地址结构包括哪些?

柱面、磁头号和扇区号

1.18 说下五级流水CPU的各阶段

  • 将整体的处理过程分为取指令(IF)、指令译码(ID)、指令执行(EX)、存储器访问(MEM)和寄存器写回(WB)五个阶段。
  • IF级:取指令部分
    (1)根据PC值在指令存储器中取指令,将取得指令放在流水寄存器中。
    (2)对PC寄存器的更新,更新有两类,一是直接PC值 +4 ,取下一相邻地址的指令;二是更新为跳转地址,该地址来自于ID段算出的分支地址或者跳转地址等。更新的选择取决于来自ID段的一个判断信号。将更新后的PC值放在流水线寄存器中。
  • ID级:指令译码部分
    (1)进行指令译码,按照对应寄存器号读寄存器文件,并将读出结果放入临时寄存器A和B中。
    (2)数据冒险和控制冒险的检测和处理都在此阶段解决。
    (3)同时对位立即值保存在临时寄存器中。指令的低16位进行符号位的扩展,并存放在流水寄存器中。
  • EX级:执行部分
    根据指令的编码进行算数或者逻辑运算或者计算条件分支指令的跳转目标地址。此外LW、SW指令所用的RAM访问地址也是在本级上实现。
  • MEM级:访存部分
    只有在执行LW、SW指令时才对存储器进行读写,对其他指令只起到一个周期的作用。
  • WB级:写回部分
    该级把指令执行的结果回写到寄存器文件中。

1.18.1 数据冒险&控制冒险

(1)使用定向(旁路)解决数据冒险
在ID段对寄存器进行读数据时,要读取的数据可能是上一个指令要写入的结果,也就是当前结果在流水线中还没有写入寄存器,此时读取寄存器的数据是未更新的,也就是错误的。这种情况一般发生在MEM级与WB级的写数据与ID级的读数据发生冲突(未考虑LW指令),这样可以通过定向技术来解决数据冒险,因为在某条指令产生计算结果之前,其他指令并不是真正立即需要该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令需要的地方,那么就可以避免冲突。
(2)使用暂停机制解决Lw数据冒险
定向技术有显而易见的局限性,因为定向技术必须要求前一条指令在EX结束时更新,但是LW指令最早只能在WB级读出寄存器的值。因此无法及时提供给下一条指令的EX级使用。分析流水线时序图,可以发现lw指令的下一条指令,需要阻塞一个时钟周期,才能确保该指令能获得正确的操作数值,下面给出具体解决方法。在ID级需要进行数据冒险,ID级是进行译码的段,对操作码进行比较,当发现当前的指令是一条LW指令时,ID级会发出一条请求流水线暂停的信号,部件ctrl会根据信号产生一个6位的stall信号,6位的信号分别控制pc部件,IF级,ID级,EX级,MEM级,WEB级的暂停,当然在这里当出现LW冒险时只需要关闭PC部件、IF级、ID级即可避免冲突。暂停就相当于在流水图中添加一数列的气泡,将后面的指令都往后推一个时钟周期。

控制冒险
控制冒险是因为由控制相关引起的,也就是当出现分支指令等能使pc值发生变化的时候就会出现控制冒险。下面从两个方面来说下如何解决控制冒险和降低分支延迟。
(1)在正常的数据流水线中分支指令时候成功以及分支地址的传送都是在MEM级完成的,这样就会造成3个时钟周期的延迟。现在我将这两个操作都放在ID级完成,这样分支延迟就会降低到一个时钟周期。
(2)再说下如何解决控制冲突。控制冲突都是分支指令,跳转指令等引起的,但我们提前知道这条指令是分支(跳转)指令时,我们就可以提前最好准备来解决冲突。这些也是在ID级来完成。ID是译码段,通过比较没一条指令来发觉哪些是分支跳转指令,但发现分子跳转指令时,ID段就会计算出跳转地址,并产生一个跳转信号,在下个时钟上沿到来后会将这两个信号传送到pc部件,同时阻止前面部件的输出。在这里是采用了延迟槽的技术,但出现分支指令是就会认为延迟槽中的指令作废,相当于一条空指令了。有点使用预测失败的思想。

1.19 执行单条指令时单周期CPU和五级流水CPU谁更快?为什么?

1.20 原码、反码、补码和移码

  • 原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
    [+1]原 = 0000 0001
    [-1]原 = 1000 0001
  • 反码: 正数的反码是其本身
    负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
    [+1] = [00000001]原 = [00000001]反
    [-1] = [10000001]原 = [11111110]反
  • 补码的表示方法是:
    正数的补码就是其本身
    负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
    [+1] = [00000001]原 = [00000001]反 = [00000001]补
    [-1] = [10000001]原 = [11111110]反 = [11111111]补
  • 移码:移码最简单了,不管正负数,只要将其补码的符号位取反即可。
    例如:X=-101011 , [X]原= 10101011 ,[X]反=11010100,[X]补=11010101,[X]移=01010101
    why?
    发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在"0"这个特殊的数值上. 虽然人们理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有[0000 0000]原
    和[1000 0000]原
    两个编码表示0.
    于是补码的出现, 解决了0的符号以及两个编码的问题:

参考链接link

1.20.1 IEEE754标准规定的浮点数中,阶码和尾数用什么形式表示?

阶码用移码表示,其偏移量是2^(n-1),尾数用原码表示。

1.5 高级语言、汇编语言、机器语言之间的关系

在这里插入图片描述

2.计网

1.五层协议

1、应用层(对应七层协议中的应用层、表示层、会话层) :

为特定应用程序提供数据传输服务,包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol),数据单位为报文。

2、运输层

提供的是进程间的通用数据传输服务。由于应用层协议很多,定义通用的运输层协议就可以支持不断增多的应用层协议。

运输层包括两种协议:

  • 传输控制协议TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;TCP 主要提供完整性服务.

  • 用户数据报协议UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。UDP 主要提供及时性服务。

3、网络层
主机间提供数据传输服务,而运输层协议是为主机中的进程提供服务。网络层把运输层传递下来的报文段或者用户数据报封装成分组。
关键是对分组进行路由选择,并实现流量控制、拥塞控制等。包括内部网关OSPF、RIP,外部网关BGP协议等

4、数据链路层
网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的节点提供服务。数据链路层把网络层传来的分组封装成帧,并进行差错控制等。

5、物理层
考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。并规定通信链路上传输的信号意义和电气特征。

2.1 说一说OSI七层模型

其中表示层和会话层用途如下:

  • 第六层表示层 :
    数据压缩、加密以及数据描述。这使得应用程序不必担心在各台主机中表示/存储的内部格式不同的问题。

  • 第五层会话层 :
    建立及管理会话。
    其余五层同五层协议。

电路交换分组交换

电路交换的三个阶段:

(1)建立连接 (2)通信 (3)释放连接

电路交换具有以下优缺点:

优点:

(1)由于通信线路为通信双方用户专用,数据直达,所以传输数据的时延非常小。

(2)通信双方之间的屋里通路一旦建立,双方可以随时通信,实时性强。

(3)双方通信时按发送顺序传送数据,不存在失序问题。

(4)电路交换既适用于传输模拟信号,也适用于传输数字信号。

(5)电路交换的交换设备及控制均比较简单。

缺点:

(1)电路交换平均连接建立时间对计算机通信来说较长。

(2)电路交换家里连接后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用率低。

(3)电路交换时,数据直达,不同类型,不同规格,不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。
分组交换
分组交换是以分组为单位进行传输和交换的,它是一种存储——转发交换方式,即将到达交换机的分组先送到存储器暂时存储和处理,等到相应的输出电路有空闲时再送出。

分组交换具有以下优缺点。

优点:

(1)分组交换不需要为通信双反预先建立一条专用的通信线路,不存在连接建立时延,用户可随时发送分组。

(2)由于采用存储转发方式,加之交换节点具有路径选择,当某条传输线路故障时可选择其他传输线路,提高了传输的可靠性。

(3)通信双反不是固定的战友一条通信线路,而是在不同的时间一段一段地部分占有这条物理通路,因而大大提高了通信线路的利用率。

(4)加速了数据在网络中的传输。因而分组是逐个传输,可以使后一个分组的存储操作与前一个分组的转发操作并行,这种流水线式传输方式减少了传输时间。

(5)分组长度固定,相应的缓冲区的大小也固定,所以简化了交换节点中存储器的管理。

(6)分组较短,出错几率减少,每次重发的数据量也减少,不仅提高了可靠性,也减少了时延。

缺点:

(1)由于数据进入交换节点后要经历存储转发这一过程,从而引起的转发时延(包括接受分组、检验正确性、排队、发送时间等),而且网络的通信量越大,造成的时延就越大,实时性较差。

(2)分组交换只适用于数字信号。

(3)分组交换可能出现失序,丢失或重复分组,分组到达目的节点时,对分组按编号进行排序等工作,增加了麻烦。

综上,若传输的数据量很大,而且传送时间远大于呼叫时间,则采用电路交换较为合适;当端到端的通路有很多段链路组, 则采用分组交换

2.2 物理层-复用技术

1、什么是多路复用技术?有几种复用方法?
多路复用技术是将若干个彼此独立的信号进行合并,从而可以在同一物理信道上同时传输的方法。主要包括时分多路复用、频分多路复用、波分多路复用和码分多路复用。

  • 时分复用:所有的用户在不同的时间占用同样的带宽,一般用来传输数字信号
  • 频分复用:所有的用户在相同的时间占用不同的带宽,一般用来传输模拟信号
  • 波分复用:即光的频分复用,它在一根光纤中传输多种不同波长的光信号
  • 码分复用:用相互正交的码片序列来区分原始信号的一种复用方式,主要用于移动通信系统

2.2.1 码分复用

  • 每个站被指派一个唯一的mbit码片序列S
    发0则发码片序列反码
  • 不同站码片需正交,一起发到接收端 S x + T x S_x+T_x Sx+Tx
  • 接收端规格化内积:用 S ∗ S x S*S_x SSx得到010101序列
    S ∗ T x S*T_x STx得到全零

2.3 物理层-奈氏准则&香农

2.3.1 -奈氏准则

在理想低通信道下的最高码元传输速率的公式:
在这里插入图片描述
2W:最多码元数
W:信道带宽 ,通道固定则固定
M:信号状态数量

2.3.2 香农公式

有噪声干扰的信道极限信息传输速率C可表示为
C = W l o g 2 ( 1 + S / N ) C=Wlog_2(1+S/N) C=Wlog2(1+S/N)
W为信道带宽(Hz),S为信道内所传信号的平均功率,N为信道内部到高斯噪音功率。

2.4 数据链路层-使用点对点信道的数据链路层

三个基本问题:

  • 封装成帧
    就是在一段数据的前后分别添加首部(帧开始符SOH 01)和尾部(帧结束符EOT 04),然后就构成了一个帧。(数据部分<=长度限制MTU)首部和尾部的一个重要作用就是进行帧定界。
    帧定界是分组交换的必然要求
  • 透明传输
    为了达到透明传输(即传输的数据部分不会因为包含SOH和EOT而出错),在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(十六进制1B)
    透明传输避免消息符号与帧定界符号相混淆
  • 差错检测
    现实通信链路中比特在传输中会产生差错,传输错误的比特占比称为误码率BER,为了保证可靠性,通常通过循环冗余检验CRC来做差错检测。
    差错检测防止无效数据帧浪费后续路由上的传输和处理资源
    【Cyclic Redundancy Check】
    CRC 算法的基本思想是将传输的数据当做一个位数很长的数。将这个数除以另一个数。得到的余数作为校验数据附加到原数据后面。
    详细过程:
  • 看所选定的除数二进制位数(假设为k位),然后在要发送的数据帧(假设为m位)后面加上k-1位“0”,
  • 然后以这个加了k-1个“0“的新帧(一共是m+k-1位)以“模2除法”方式除以上面这个除数,所得到的余数(也是二进制的比特串)就是该帧的CRC校验码,也称之为FCS(帧校验序列)。
  • 但要注意的是,余数的位数一定要是比除数位数只能少一位,哪怕前面位是0,甚至是全为0(附带好整除时)也都不能省略。

2.5 数据链路层-CSMA/CD协议

Carrier Sense Multiple Access with Collision Detection
“多点接入:就是计算机以多点接入(动态媒体接入控制)的方式连接在一根总线上。

载波监听 就是”发送前先监听”,即每一个站在发送数据前先要检测一下总线(The bus)是否有其他站在发送数据,如有则暂时不要发送数据,要等到信道为空闲。

碰撞检测 就是“边发送边监听”,即适配器边发送数据边检测信道上的信号电压的变化情况。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
[Propagation delay]
把总线上的单程端到端传播时延记为τ,A 发送数据后,最迟要经过2τ才能知道自己发送的数据和其他站发送的数据有没有发生碰撞。

2.6 以太网扩展

  • 在物理层扩展—集线器 【A collision domain】
    现在,双绞线以太网成为以太网的主流类型,扩展主机和集线器之间的距离的一种简单方法就是使用光纤(通常是一对光纤)和一对光纤调制解调器。
    光纤调制解调器的作用,是进行电信号和光信号的转换。

  • 在数据链路层扩展—网桥(自学习算法)P94【同一广播域&独立碰撞域】
    注:在数据链路层扩展以太网要使用网桥OR交换机
    网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发或过滤。当网桥收到一个帧时,并不是向所有的接口转发这个帧,而是检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。

  • 虚拟局域网-交换机P98
    多接口网桥即交换式集线器常称为以太网交换机。利用以太网交换机可以很方便地 实现虚拟局域网,虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的标识符,称为 VLAN 标记。
    防止广播风暴
    【注意】

  • 集线器不管有多少个端口,所有端口都共享一条带宽,在同一时刻只能有两个端口传送数据,其他端口只能等待;只能工作在半双工模式下。

  • 交换机每个端口都有一条独占的带宽,当两个端口工作时并不影响其他端口的工作,交换机可以工作在半双工模式下也可以工作在全双工模式下。

集线器不分割冲突域,交换机分割冲突域!

  • 粗缆是指粗铜轴电缆,其最大的传输距离是500m,如果节点之间的距离超过500m,那么要用一个信号放大设备来扩大局域网覆盖范围。
  • Repeater(中继器)工作在物理层,当通信线缆达到一定的极限长度时,可以在中间连接一个中继器,将衰减了的信号放大后,再传送出去,以解决信号衰减问题。
  • Bridge(网桥)可以用来连接两个网络,它工作在数据链路层。如果一个网络的物理连线距离虽然在规定范围内,但由于负荷很重,可以用网桥把一个网络分割成两个网络。
  • Router(路由器)一般用来连接遵守不同网络协议的两个网络,它工作在网络层,可以有效避免广播风暴。
  • Gateway(网关)是工作在传输层以上,一般用来连接网络协议不一样的两个网络。对于传输层协议不同的两个局域网互连,可以用网关来实现。

2.7 网际协议IP

网际协议IP是TCP/IP体系中两个最重要的协议之一,也是最重要的因特网标准协议之一。与IP协议配套是用的四个协议:
【Address resolution protocol ARP】
1.地址解析协议ARP:是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
2.逆地址解析协议RARP:是解决同一个局域网上的主机或路由器的硬件地址和IP地址的映射问题。
3.网际控制报文协议ICMP:提供差错报告和询问报文,以提高IP数据交付成功的机会
4.网际组管理协议IGMP::用于探寻、转发本局域网内的组成员关系。

2.8 网络层- 虚拟互连网络

因为没有一种单一的网络能够适应所有的用户需求,所以网络互连也变得困难,所以需要一些中间设备:

物理层中间设备:转发器(repeater)
数据链路层中间设备:网桥或桥接器(bridge)
网络层中间设备:路由器(router)
网络层以上的中间设备:网关(gateway)

2.9 网络层-分类的IP地址

IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。由因特网名字与号码指派公司ICANN进行分配。

IP地址编制方法的三个阶段:

分类的IP地址
子网的划分
构成超网
每一类地址都由 网络号 net-id和 主机号 host-id组成
主机号中全0表示主机,全1表示广播地址

在这里插入图片描述
在这里插入图片描述
【B类128-191】

A类由1字节的网络地址和3字节主机地址组成

B类由2字节的网络地址和2字节主机地址组成

C类由3字节的网络地址和1字节主机地址组成
D类是多播地址,“lll0”开始

E类地址保留为今后使用,“llll0”开头

2.10 IP地址与硬件地址

硬件地址是数据链路层和物理层使用的地址
IP地址是网络层和以上各层使用的地址,是一种逻辑地址

IP地址放在IP数据报的首部,而硬件地址放在MAC帧的首部。当数据报放入数据链路层的MAC帧中后,整个IP数据报就成为MAC帧的数据,因而在数据链路层看不见数据报的IP地址。
【ONLY链路层会在数据尾部添加】

2.11 在这里插入图片描述

分组转发
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
(2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。【直接】
(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。【特定】
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。【动态协议生成】
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)【默认】
(6) 报告转发分组出错。

2.11 网络层-构造超网(无分类编址CIDR)

CIDR(无分类域间路由选择的主要特点:
CIDR消除了传统的A、B、C类地址以及划分子网的概念,用网络前缀代替网络号和子网号,后面的部分指明主机。因此,CIDR使IP地址从三级编址(使用子网掩码),又回到了两级编址,但这已是无分类的两级编址。
CIDR把网络前缀相同的连续的IP地址组成一个”CIDR地址块”只要知道CIDR地址块中的任何一个地址,就可以知道这地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。
地址掩码:是一连串的1和0组成,而1的个数救赎网络前缀长度。在斜线记法中。斜线后面的数字就是地址掩码中1的个数。

构成超网:由于一个CIDR地址块中含有很多地址,所以在路由表中就利用CIDR地址块来查找目标网络,这种地址的聚合常称为路由聚合,也称构成超网。

2.12 4.2 划分子网

两级IP地址缺陷:

IP 地址空间的利用率有时很低。

给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。

两级的 IP 地址不够灵活

子网划分的基本思路:

划分子网纯属一个单位内部的事情,单位对外仍然表现为没有划分子网的网络。

划分子网的方法是从主机号借用若干个位作为子网号。

路由器在收到IP数据报后,按目标网络号和子网号定位目标子网

子网掩码
子网掩码是一个网络或一个子网的重要属性

2.15 网际控制报文协议ICMP

为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了ICMP,ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。

ICMP报文的种类
ICMP差错报告报文
ICMP询问报文
ICMP 差错报告报文共有 5 种:
终点不可达
源点抑制(Source quench)
时间超过
参数问题
改变路由(重定向)(Redirect)
ICMP 询问报文有两种:
回送请求和回答报文
时间戳请求和回答报文
【应用】PING
用到回送请求和回答报文
是应用层直接ICMP

2.16 路由选择协议

  • 两大类路由选择协议:
    内部网关协议 IGP:一个自治系统内部使用的路由选择协议。有多种协议,如 RIP 和OSPF 协议。
    外部网关协议EGP:一个自治系统的边界,将路由选择信息传递到另一个自治系统中。目前使用的就是BGP

  • RIP协议的优缺点
    RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
    RIP 协议最大的优点就是实现简单,开销较小。
    RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
    路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。

  • RIP是一种分布式的基于距离向量的路由选择协议,其主要特点:
    (1)仅和相邻路由器交换信息,交换路由器全部信息。
    (3)按固定的时间间隔交换路由信息,例如,每隔30秒。

  • 距离向量算法

  • OSPF最主要的特征就是使用分布式的链路状态协议,其主要特点:
    (1)使用洪泛法向本自治系统中所有路由器发送信息。
    (2)发送的信息是与本路由器相邻的所有路由器的链路状态。
    (3)只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

  • BGP是不同自治系统的路由器之间交换路由信息的协议,它采用路径向量路由选择协议,其主要特点:
    (2)自治系统AS之间的路由选择必须考虑有关策略。
    (3)BGP只能力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。

2.17 IPv6和IPv4区别

1.IPv6的地址大小增加到128位。这解决了IPv4地址空间有限的问题,并提供了一个更深层次的编址层级以及更简单的配置

2.IPv6的报头固定为40字节。这刚好容下8字节的报头和两个16字节的IP地址(源地址和目的地址)。IPv6的报头中去掉了IPv4报头中的一些字段,或者是将其变为可选项。这样,数据包可以在低处理消耗下更快地进行操作。

3.对于IPv4,选项集成于基本的IPv4报头中。而对于IPv6,这些选项被作为扩展报头(Extension header)来处理,

2.17.1 IPv4向IPv6的升级过渡

  • 隧道技术:把IPv6数据报封装为IPv4
  • 双协议栈技术:把IPv6首部转化为IPv4首部

2.18 虚拟专用网 VPN

本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。

全球地址——全球唯一的 IP 地址,必须向互联网的管理机构申请。

互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
用隧道技术实现虚拟专用网:在这里插入图片描述
在这里插入图片描述

2.19 网络地址转换 NAT

  • 需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫作 NAT路由器,它至少有一个有效的外部全球IP地址。
  • 所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接。

2.20 多协议标记交换 MPLS

  • “多协议”表示在 MPLS 的上层可以采用多种协议,例如:IP,IPX;可以使用多种数据链路层协议,例如:PPP,以太网,ATM 等。
  • “标记”是指每个分组被打上一个标记,根据该标记对分组进行转发。
  • 在传统的 IP 网络中,分组每到达一个路由器后,都必须提取出其目的地址,按目的地址查找路由表,并按照“最长前缀匹配”的原则找到下一跳的 IP 地址(请注意,前缀的长度是不确定的)。 当网络很大时,查找含有大量项目的路由表要花费很多的时间。在出现突发性的通信量时,往往还会使缓存溢出,这就会引起分组丢失、传输时延增大和服务质量下降。

9.1.1 MPLS 协议的基本原理
在 MPLS 域的入口处,给每一个 IP 数据报打上固定长度“标记”,然后对打上标记的 IP 数据报用硬件进行转发。

采用硬件技术对打上标记的 IP 数据报进行转发就称为标记交换。

“交换”也表示在转发时不再上升到第三层查找转发表,而是根据标记在第二层(链路层)用硬件进行转发

MPLS 域 (MPLS domain) 是指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持 MPLS 技术的标记交换路由器 LSR (Label Switching Router)。

2.21 运输层

  • 运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)
  • 运输层还要对收到的报文进行差错检测
  • 运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP
  • 运输层的端口:TCP/IP的运输层的端口用一个 16 位端口号进行标志
    端口号只具备本地意义,即端口号只是为了标志本计算机应用层中的各进程。

2.21.1 用户数据报协议 UDP

UDP的主要特点:
UDP 是无连接的,即发送数据之前不需要建立连接。
UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制
UDP 是面向报文的(对拆下来的报文不拆分)
UDP 没有拥塞控制,很适合多媒体通信的要求。
UDP 支持一对一、一对多、多对一和多对多的交互通信
UDP 的首部开销小,只有 8 个字节

2.21.2 传输控制协议 TCP

TCP的主要特点:
TCP 是面向连接的运输层协议
每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一)
TCP 提供可靠交付的服务
TCP 提供全双工通信
面向字节流
【TCP连接端点:套接字】套接字socket=(IP地址:端口号)

可靠传输协议

TCP 使用超时重传来实现可靠传输:如果一个已经发送的报文段在超时时间内没有收到确认,那么就重传这个报文段。

TCP 滑动窗口

窗口是缓存的一部分,用来暂时存放字节流。发送方和接收方各有一个窗口,接收方通过 TCP 报文段中的窗口字段告诉发送方自己的窗口大小,发送方根据这个值和其它信息设置自己的窗口大小。

发送窗口内的字节都允许被发送,接收窗口内的字节都允许被接收。如果发送窗口左部的字节已经发送并且收到了确认,那么就将发送窗口向右滑动一定距离,直到左部第一个字节不是已发送并且已确认的状态接收窗口的滑动类似,接收窗口左部字节已经发送确认并交付主机,就向右滑动接收窗口

接收窗口只会对窗口内最后一个按序到达的字节进行确认,例如接收窗口已经收到的字节为 {31, 32, 34, 35},其中 {31, 32} 按序到达,而 {34, 35} 就不是,因此只对字节 32 进行确认。发送方得到一个字节的确认之后,就知道这个字节之前的所有字节都已经被接收。

TCP 流量控制

流量控制是为了控制发送方发送速率,保证接收方来得及接收。
接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。例如将窗口字段设置为 0,则发送方不能发送数据。

TCP 拥塞控制

如果网络出现拥塞,分组将会丢失,此时发送方会继续重传,从而导致网络拥塞程度更高。因此当出现拥塞时,应当控制发送方的速率。这一点和流量控制很像,但是出发点不同。流量控制是为了让接收方能来得及接受,而拥塞控制是为了降低整个网络的拥塞程度。

TCP 主要通过四种算法来进行拥塞控制:慢开始、拥塞避免、快重传、快恢复。发送方需要维护有一个叫做拥塞窗口(cwnd)的状态变量。注意拥塞窗口与发送方窗口的区别,拥塞窗口只是一个状态变量,实际决定发送方能发送多少数据的是发送方窗口。

为了便于讨论,做如下假设:

接收方有足够大的接收缓存,因此不会发生流量控制;
虽然 TCP 的窗口基于字节,但是这里设窗口的大小单位为报文段。

【 ssthresh 】进入拥塞避免的标志

  • 慢开始
    发送的最初执行慢开始,令 cwnd=1,发送方只能发送 1 个报文段;当收到确认后,将 cwnd 加倍,因此之后发送方能够发送的报文段为:2、4、8 …

  • 拥塞避免
    注意到慢开始每个轮次都将 cwnd 加倍,这样会让 cwnd 增长速度非常快,从而使得发送方发送的速度增长速度过快,网络拥塞的可能也就更高。设置一个慢开始门限 ssthresh,当 cwnd >= ssthresh 时,进入拥塞避免,每个轮次只将 cwnd 加 1

  • 如果出现了超时,则令 ssthresh = cwnd / 2,然后重新执行慢开始

  • 快重传与快恢复
    在发送方,如果收到三个重复确认,那么可以确认下一个报文段丢失,例如收到三个 M2 ,则 M3 丢失。此时执行快重传,立即重传下一个报文段。

在这种情况下,只是丢失个别报文段,而不是网络拥塞,因此执行快恢复,令 ssthresh = cwnd / 2 ,cwnd = ssthresh,注意到此时直接进入拥塞避免
在这里插入图片描述

TCP 的三次握手

假设 A 为客户端,B 为服务器端。

首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。
A 向 B 发送连接请求报文段,SYN=1,ACK=0,选择一个初始的序号 x。
B 收到连接请求报文段,如果同意建立连接,则向 A 发送连接确认报文段,SYN=1,ACK=1,确认号为 x+1,同时也选择一个初始的序号 y。
A 收到 B 的连接确认报文段后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。
B 收到 A 的确认后,连接建立。

TCP 的四次挥手

以下描述不讨论序号和确认号,因为序号和确认号的规则比较简单。并且不讨论 ACK,因为 ACK 在连接建立之后都为 1。

A 发送连接释放报文段,FIN=1;
B 收到之后发出确认,此时 TCP 属于半关闭状态,B 能向 A 发送数据但是 A 不能向 B 发送数据;
当 B 要不再需要连接时,发送连接释放请求报文段,FIN=1;
A 收到后发出确认,此时连接释放。

TIME_WAIT

客户端接收到服务器端的 FIN 报文后进入此状态,此时并不是直接进入 CLOSED 状态,还需要等待一个时间计时器设置的时间。这么做有两个理由:

确保最后一个确认报文段能够到达。如果 B 没收到 A 发送来的确认报文段,那么就会重新发送连接释放请求报文段,A 等待一段时间就是为了处理这种情况的发生。
可能存在“已失效的连接释放请求报文段”,为了防止这种报文段出现在本次连接之外,需要等待一段时间。

第六章 应用层-域名系统 DNS

把主机名解析为 IP 地址。
被设计成分布式系统。

  1. 层次结构
    一个域名由多个层次构成,从上层到下层分别为顶级域名、二级域名、三级域名以及四级域名。所有域名可以画成一颗域名树。
    域名服务器可以分为以下四类:
    (1) 根域名服务器:解析顶级域名;

(2) 顶级域名服务器:解析二级域名;
(3) 权限域名服务器:解析区内的域名;
(4) 本地域名服务器:也称为默认域名服务器。可以在其中配置高速缓存。
2. 解析过程
主机向本地域名服务器解析的过程采用递归,而本地域名服务器向其它域名服务器解析可以使用递归和迭代两种方式。

迭代的方式下,本地域名服务器向一个域名服务器解析请求解析之后,结果返回到本地域名服务器,然后本地域名服务器继续向其它域名服务器请求解析;而递归地方式下,结果不是直接返回的,而是继续向前请求解析,最后的结果才会返回。【本地-顶级-根-权限】

超文本传输协议 HTTP

http是超文本传输协议,信息是明文传输。 … https则是具有安全性的ssl加密传输协议 http和https使用的是完全不相同的两种连接方式,用的端口也不一样,http是80端口,https是443端口

文件传输协议 FTP

FTP 在运输层使用 TCP,并且需要建立两个并行的 TCP 连接:控制连接和数据连接。控制连接在整个会话期间一直保持打开,而数据连接在数据传送完毕之后就关闭。控制连接使用端口号 21,数据连接使用端口号 20。

远程终端协议 TELNET

TELNET 用于登录到远程主机上,并且远程主机上的输出也会返回。
TELNET 可以适应许多计算机和操作系统的差异,例如不同操作系统系统的换行符定义。

万维网 WWW

万维网是大规模、联机式储藏所。标志文档URL、链接协议HTTP

  • URL统一资源定位符:
  1. URL的格式
    统一资源定位符URL是对可以从因特网得到的资源的位置和访问方法的一种简洁的表示。URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。
    URL相当于一个文件名在网络范围的扩展。因为URL是于因特网相连的机器上的任何可访问对象的一个指针。由以冒号隔开的两大部分组成,并且在URL中的字符对大写或小写没有要求。URL的一般形式是:在这里插入图片描述

  2. 【访问一个网页的流程】
    打开浏览器,在地址栏输入URL,回车,出现网页内容。整个过程发生了什么?其中的原理是什么?以下进行整理和总结。
    整个过程可以概括为几下几个部分:
    域名解析成IP地址;
    与目的主机进行TCP连接(三次握手);
    发送与收取数据(浏览器与目的主机开始HTTP访问过程);
    与目的主机断开TCP连接(四次挥手);

1.浏览器分析超链接指向页面的URL

2.浏览器向DNS请求解析:www.tsinghua.edu.cn的IP地址

3.域名系统DNS解析出清华大学服务器的IP地址

4.浏览器与服务器建立TCP连接

5.浏览器发出取文件命令:GET/chn/yxsz/index.htm

6.服务器给出响应,把文件index.htm发给浏览器

7.TCP连接释放

8.浏览器显示“清华大学院系设置”文件index.htm中的所有文本

【HTTP是Hyper Text Transfer Protocol(超文本传输协议)】

电子邮件协议

一个电子邮件系统由三部分组成:用户代理、邮件服务器以及邮件发送协议和读取协议。其中发送协议常用 SMTP,读取协议常用 POP3 和 IMAP。
POP3:特点是只要用户从服务器上读取了邮件,就把该邮件删除。
IMAP:IMAP 协议中客户端和服务器上的邮件保持同步,如果不去手动删除邮件,那么服务器上的邮件也不会被删除。IMAP 这种做法可以让用户随时随地去访问服务器上的邮件。IMAP 协议也支持创建自定义的文件夹。
SMTP:SMTP 只能发送 ASCII 码,而互联网邮件扩充 MIME 可以发送二进制文件。MIME 并没有改动或者取代 SMTP,而是增加邮件主题的结构,定义了非 ASCII 码的编码规则。

动态主机配置协议 DHCP

  • DHCP 提供了即插即用的连网方式,用户不再需要去手动配置 IP 地址等信息。
  • DHCP 配置的内容不仅是 IP 地址,还包括子网掩码、默认路由器 IP 地址、域名服务器的 IP 地址。
  • 工作方式如下:需要 IP 地址的主机广播发送 DHCP 发现报文(将目的地址置为全 1,即 255.255.255.255:67,源地址设置为全 0,即 0.0.0.0:68),DHCP 服务器收到发现报文之后,则在 IP 地址池中取一个地址,发送 DHCP 提供报文给该主机。

点对点传输 P2P

把某个文件分发的所有对等集合称为一个洪流。文件的数据单元称为文件块,它的大小是固定的。一个新的对等方加入某个洪流,一开始并没有文件块,但是能够从其它对等方中逐渐地下载到一些文件块,与此同时,它也为别的对等方上传一些文件块。
每个洪流都有一个基础设施,称为追踪器。当一个对等方加入洪流时,必须向追踪器登记,并周期性地通知追踪器它仍在洪流中。可以在任何时间加入和退出某个洪流。
一个新的对等方加入洪流时,追踪器会随机从洪流中选择若干个对等方,并让新对等方与这些对等方建立连接,把这些对等方称为相邻对等方。接收和发送文件块都是在相邻对等方中进行。
当一个对等方需要很多文件块时,通过使用最稀有优先的策略来取得文件块,也就是一个文件块在相邻对等方中副本最少,那么就优先请求这个文件块。
当很多对等方向同一个对等方请求文件块时,该对等方优先选择以最高速率向其发送文件块的对等方。

P2P 是一个分布式系统,任何时候都有对等方加入或者退出。使用分布式散列表 DHT,可以查找洪流中的资源和 IP 地址映射。

Web 页面请求过程

向 DNS 服务器发送 DNS 查询报文来解析域名。
开始进行 HTTP 会话,需要先建立 TCP 连接。
在运输层的传输过程中,HTTP 报文被封装进 TCP 中。HTTP 请求报文使用端口号 80,因为服务器监听的是 80 端口。连接建立之后,服务器会随机分配一个端口号给特定的客户端,之后的 TCP 传输都是用这个分配的端口号。
在网络层的传输过程中,TCP 报文段会被封装进 IP 分组中,IP 分组经过路由选择,最后到达目的地。
在链路层,IP 分组会被封装进 MAC 帧中,IP 地址解析成 MAC 地址需要使用 ARP。
客户端发送 HTTP 请求报文,请求获取页面。
服务器发送 HTTP 相应报文,客户端从而获取该页面。
浏览器得到页面内容之后,解析并渲染,向用户展示页面。

常用端口

【DNS和DHCP是UDP】
在这里插入图片描述

Cookie 和 Session的区别

Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。

Cookie 一般用来保存用户信息 比如①我们在 Cookie 中保存已经登录过得户信息,下次访问网站的时候页面可以自动帮你登录的一些基本信息给填了;②一般的网站都会有保持登录也就是说下次你再访问网站的时候就不需要重新登录了,这是因为用户登录的时候我们可以存放了一个 Token 在 Cookie 中;③登录一次网站后访问网站其他页面不需要重新登录。Session 的主要作用就是通过服务端记录用户的状态。

Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端

Cookie 存储在客户端中,而Session存储在服务器上,相对来说 Session 安全性更高。如果要在 Cookie 中存储一些敏感信息,不要直接写入 Cookie 中,最好能将 Cookie 信息加密然后使用到的时候再去服务器端解密。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值