计算机网络笔记总结

计网学习笔记

第一章 因特网

  1. ISP:互联网提供商,指的是面向公众提供下列信息服务的经营者,一是接入服务,即帮助用户接入internet;二是导航服务,帮助用户找到所需信息;三是信息服务,即建立数据服务系统。

  2. 边缘部分:由所有连接在互联网上的主机组成。由用户直接使用,用来进行通信和资源共享。

  3. 核心部分:由大量的网络和连接这些网络的路由器组成,为边缘部分 提供服务(连通性和交换)。

  4. 电路交换:电路交换是以电路连接为目的的交换方式,通信之前要在通信双方之间建立一条被双方独占的物理通道。

    • 优点:适用于模拟及数字信号; 线路专用,延时小; 随时通信,实时性强; 按发送顺序传送,不存在失序问题; 设备及控制简单。
    • 缺点:建立时间长; 线路独占,信道利用率低; 不同规格间的终端难以控制和通信。
  5. 分组交换:是以分组为单位进行传输和交换的,是一种存储–转发方式,即到达交换机的分组现在存储器中暂时存储,等相应输出电路空闲时输出。

    • 优点:不存在连接时延,随时发送; 采用存储转发,交换节点具有路径选择,线路故障时可选择其他; 通信线路的利用率高; 并行传输,加速了传送; 分组长度固定,缓存区大小固定,简化节点中存储器的管理。
    • 缺点:由于数据进入交换结点后要经历存储转发,会引起转发时延,数据量越大,时延越长,实时性较差; 只适用于数字信号; 可能失序,丢失或者重复分组。
  6. 两种通信方式:一是客户服务器方式(C/S),描述的是进程之间服务和被服务的关系,客户是请求方,服务器是被请求方。二是对等方式(P2P),指两个主机在通信时不区分服务请求方与服务提供方。

  7. 报文:是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。

  8. 套接字:对网络中不同主机上应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议进行数据交换的机制。其是通信的基石,是支持TCP/TP协议的路通信的基本操作单元。

  9. OSI七层模型

    img

  10. TCP/IP模型:是互联网的基础,是一系列协议的总称。这些协议可划分为四层,分别是链路层、网络层、传输层和运输层。

  • 链路层:负责封装和解封装IP报文,发送和接收ARP/RARP报文等。
  • 网络层:负责路由以及把分组报文发送给目标网络或主机。
  • 传输层:负责对报文进行分组和重组,并以TCP或UDP协议格式封装报文。
  • 应用层:负责向用户提供应用程序,比如HTTP、FTP和DNS等。

第二章 应用层

  1. 进程寻址:为了向特定目的地发送邮政邮件,目的地需要有一个地址。为了标识该接收进程,需要定义两种信息:一是主机的地址(IP);二是定义在目的主机中的接收进程的标识符(端口号)。

  2. TCP:即传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层协议。

  3. UDP:即用户数据报协议,为应用程序提供了一种无需建立连接就可以发送封装的IP数据包的方法。

  4. TCP与UDP的区别:主要分为以下几个方面

    • TCP是面向连接的,需要三次握手四次挥手过程,而UDP是无连接的
    • TCP是可靠连接,使用流量控制和拥塞控制;UDP是不可靠连接
    • TCP只能一对一通信;UDP可一对一、一对多、多对一和多对多交互通信
    • TCP是面向字节流的传输方式;UDP是面向报文的传输方式
    • TCP首部最小20字节,最大60字节;UDP首部开销小,仅8字节
    • TCP适用于要求可靠传输的应用(文件传输); UDP适用于实时应用(直播、视频会议等)
  5. HTTP:即超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。简单来说就是一种发布和接收HTML页面的方法,被用于在web浏览器和网站服务器之间传送信息。以明文方式发送内容,不提供数据加密。

  6. HTTPS:即超文本传输安全协议,是一种透过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL和TLS来加密数据包。其主要目的是对网站服务器的身份认证,保护交换数据的隐私与完整性。

  7. HTTP与HTTPS的区别

    • HTTP明文传输,数据未加密,安全性较差;HTTPS数据传输是加密的,安全性较好。
    • HTTP页面响应速度比HTTPS快,主要因为HTTP使用TCP三次握手建立连接,客户端和服务器需要交换3个包,而HTTPS需要再加上SSL握手的9个包。
    • 使用完全不同的连接方式,用的端口也不一样,HTTP是80,HTTPS是443
    • HTTPS其实就是建立在SSL/TLS之上的HTTP协议,所以更耗费服务器资源。
  8. 请求报文:如图所示,一个请求报文由请求行、首部行、空行和请求数据(实体主体)四个部分组成。

    • 请求行:由请求方法字段、URL字段和HTTP版本协议字段组成,用空格分隔。请求方法由GET、POST、HEAD和PUT等。

    • 首部行:由关键字/值对组成,每行一对,关键字和值用:分隔。首部行通知服务器有关客户端请求的信息,典型的有:

      User-Agent:产生请求的浏览器类型

      Accept:客户端可识别的内容类型列表

      HOST:请求的主机名,允许多个域名同处一个IP

    • 空行:发送回车符和换行符,通知服务器以下不再有首部

    • 请求数据:不在GET方法中使用而是POST方法中使用,适用于需要客户填写表单的场合。

计算机网络笔记总结_第1张图片
9. 响应报文:如图所示,一个响应报文由状态行、首部行、空行和响应正文(实体体)四个部分组成

  • 状态行:由服务器HTTP协议的版本、服务器发回的响应状态码和状态码的文本描述。
  • 首部行:由关键字/值对组成,每行一对,关键字和值用:分隔
  • 空行:同请求报文
  • 响应正文:服务器发送给客户端的内容,也是客户端所请求的内容。

计算机网络笔记总结_第2张图片

  1. DNS(域名系统):是一个由分层的DNS服务器实现的分布式数据库;是一个使得主机能够查询分布式数据库的应用层协议。作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

  2. 域名解析

    • 主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的IP,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文。
    • 本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器需要向哪一个域名服务器继续进行查询。
  3. FTP(文件传输协议):FTP是互联网上使用最广泛的文件传送协议,其提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。

    • FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
    • FTP只提供文件传送的一些基本的服务,使用TCP可靠的运输服务。
    • FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
    • FTP使用客户服务器方式。一个服务器进程可同时为多个客户进程提供服务,其服务进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
    • 两个连接:控制连接在整个会话期间一直保持打开,FTP客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。用于传输文件的是数据连接
  4. DNS报文:如图所示,

计算机网络笔记总结_第3张图片

第三章 运输层

  1. 复用:应用层所有的应用进程都可以通过运输层再传到IP层(网络层)。

  2. 分用:运输层从IP层收到发给各应用进程的数据后,必须分别交付指明的各应用进程。

  3. 端口:是应用层的各种协议进程与运输实体之间进行层间交互的一种地址。

    • 服务器端使用的端口号

在这里插入图片描述

  • 客户端使用端口号:数值为49152~65535,仅在客户进程运行时才动态选择。
  1. UDP报文:每个UDP报文分为UDP报头和UDP数据区两部分。报头由4个16位长(2字节)字段组成,每个字段的含义如下

    • 源端口:通常包含发送数据报的应用程序所使用的UDP端口。接收端的应用程序利用这个字段的值作为发送响应的目的地址,默认为0。

    • 目的端口:接收端计算机上UDP软件使用的端口,占16位。

    • 长度:表示UDP数据报长度,包含UDP报文头和UDP数据长度。由于UDP报文头长度是8位,所以这个值最小为8。

    • 检验值:用来检验数据在传输过程中是否被损坏。发送方的UDP对报文段中的所有16比特字的和进行反码运算,求和时遇到任何的溢出都会被回卷(把溢出的最高位1和最后一位16位作加法运算),将结果放在检验和字段。接收方将所有16比特字(包括检验和)相加来判断是否有查错,111111全1是没有查错的。

计算机网络笔记总结_第4张图片

  1. TCP报文:TCP报文段由首部字段和一个数据字段组成,数据字段包含一块应用数据。

    • 端口号:包含源端口与目的端口,TCP报头中的源端口号与目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。
    • 序号:值为本报文段所发送的数据的第一个字节的序号,长度为4字节,确保了TCP传输的有序性。
    • 确认号:即ACK,指明接收端期待收到的字节信号,只有ACK标志为1时才有效。
    • 首部长度(数据偏移):占4位,表明数据区在报文段中的起始偏移地址。报头不包含任何字段的长度为20字节,首部长度是4位二进制数,最大1111 = 15, 15 * 32 / 8 = 60字节。
    • 保留:占6位,保留为今后使用,目前应置0。
    • 控制位共URG、ACK、PSH、RST、SYN和FIN。
      • URG:紧急指针标志,为1时表示有效
      • ACK:确认序号标志,为1时有效,为0时忽略。连接后所有的传送的报文段都必须把ACK置1
      • PSH:为1表示交付接收应用程序,不在缓存区排队
      • RST:重置连接标志,表明发生了错误需要释放连接并重新建立
      • SYN:同步序号,为1表示是一个连接请求(ACK=0)或响应请求(ACK=1)报文
      • FIN:释放连接,FIN=1时表明报文段数据发送完毕,释放运输连接
    • 接收窗口:滑动窗口大小,作为接收方让发送方设置其发送窗口的依据
    • 检验和:对整个TCP报文段16位字计算所得,由接收端进行验证
    • 紧急指针:URG为1时有效,表示紧急数据的字节数
    • 选项:长度可变,最长可达40个字节
    • 数据:数据部分是可选的,当一个连接建立或终止时,交换的报文段仅有TCP首部。

计算机网络笔记总结_第5张图片

  1. TCP三次握手:是指建立一个TCP连接时,需要客户端和服务器总共发三个包。 seq是TCP报文的序号

    • 第一次(SYN = 1,seq = x):建立连接时,客户端发送syn(syn被置为1)包到服务器,告知连接服务器的端口和初始序号x,并进入SYN_SENT状态,等待服务器确认。
    • 第二次(SYN = 1,ACK = 1,seq = y,acknum(确认编号) = x + 1):服务器收到syn包,必须确认客户的SYN,同时服务器也发送一个syn包。发送完毕后,服务器进入SYN_RCVD状态。
    • 第三次(ACK = 1,acknum = y + 1):客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,SYN标志位为0。发送完毕后,客户端进入ESTABLISHED状态。服务器端接收到这个包时也进入ESTABLISHED状态,TCP握手结束。
  2. TCP四次挥手:TCP连接的拆除需要发送4个包,也叫做改进的三次握手。客户端和服务器均可发起挥手动作。

    • 第一次(FIN = 1,seq = x):当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个FIN标志位为1的包,表示数据发送完毕但仍可接收数据。发送完毕后,主机A进入FIN_WAIT_1状态。
    • 第二次(ACK = 1,acknum = x + 1):主机B接收到报文段后,向主机A发送一个确认序号ACK,同时通知应用程序对方要关闭连接(先发送ACK是为了防止这段时间内对方重传FIN报文段)。发送完毕后,主机B进入CLOSE_WAIT状态,主机A收到确认包后进入FIN_WAIT_2状态。
    • 第三次(FIN = 1,seq = y):主机B的应用程序告知TCP要彻底的关闭连接,TCP向主机A发送一个FIN报文段。主机B进入LAST_ACK状态,等待主机A的最后一个ACK。
    • 第四次(ACK = 1,acknum = y + 1):主机A接收到这个FIN报文段,向主机B发送一个ACK确认包,并进入TIME_WAIT状态,等待可能要重传的ACK包。主机B接收到后关闭连接,进入CLOSED状态。主机A等待固定时间(两个最大段生命周期)后也关闭连接,进入CLOSED状态。
  3. TCP拥塞控制算法:在某段时间内,若网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做网络拥塞。TCP的四种拥塞控制算法如下:

    • 慢开始:当TCP连接建立后,一点一点地提速,试探网络的承受能力。
      • 连接建好的开始先初始化拥塞窗口cwnd大小为1,表明可以传一个MSS大小的数据。
      • 每当收到一个ACK,cwnd大小加一,呈线性上升。
      • 每当过了一个往返延迟时间RTT(Round-Trip Time),cwnd大小直接翻倍,乘以2,呈指数让升。
      • 还有一个ssthresh(slow start threshold),是一个上限,当cwnd >= ssthresh时,就会进入“拥塞避免算法”
    • 拥塞避免:当拥塞窗口大小cwnd大于等于慢启动阈值ssthresh后,就进入拥塞避免算法。
      • 收到一个ACK,则cwnd = cwnd + 1 / cwnd
      • 每当过了一个往返延迟时间RTT,cwnd大小加一。
    • 快重传:发送端接收到3个以上的重复ACK,TCP就意识到数据发生丢失,需要重传。这个机制不需要等到重传定时器超时,所以叫快重传。而快速重传后没有使用慢启动算法,而是拥塞避免算法,所以这又叫做快速恢复算法。
      • cwnd大小缩小为当前的一半
      • ssthresh设置为缩小后的cwnd大小
      • 然后进入快速恢复算法Fast Recovery。
    • 快恢复:
      • cwnd = cwnd + 3 MSS,加3 MSS的原因是因为收到3个重复的ACK。
      • 重传DACKs指定的数据包。
      • 如果再收到DACKs,那么cwnd大小增加一。
      • 如果收到新的ACK,表明重传的包成功了,那么退出快速恢复算法。将cwnd设置为ssthresh,然后进入拥塞避免算法。

第四章 网络层

  1. 转发:当一个分组到达路由器的输入端时,路由器必须将该分组移动到适合的输出端。
  2. 路由选择:当分组从发送方流向接收方时,网络层必须决定这些这些分组所采用的路由或路径。计算这些路径的算法被称为路由选择算法。
  3. 路由器工作原理:路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是将路由器某个输入端口收到的分组,按照其分组要去的目的地,把该分组从路由器的某个合适端口转发给下一个路由器直到终点。
    • 输入端口:输入端口要执行将一条输入的物理链路端接到路由器的物理层功能。它也要执行需要与位于入链路另一端接口交互的数据链路层功能。它还要完成转发表查找与转发功能,以便转发到路由器交换结构部分的分组能出现在适当的输出端口。
    • 交换结构:交换结构是一台路由器的核心组件,作用是根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。
    • 输出端口:处理取出存放在输出端口内存中的分组并将其发送到输出链路上,包括选择和取出排队的分组进行传输,执行所需的链路层和物理层功能。
  4. IPv4数据报
    • 版本:占4位,指IP协议的版本,通信双方使用的IP协议版本必须一致。不同的IP版本对应不同的数据报格式。
    • 首部长度:占4位,定义了数据报首部的长度,当首部没有选项时,首部长度位20字节;当这个字段值位最大值F时,首部长度最大为60字节。
    • 服务类型:服务类型(TOS)比特包含在IPv4首部中,以便使不同类型的IP数据报(例如,一些特别要求低时延、高吞吐量或可靠性的数据报)能相互区别开来。
    • 总长度:这个16位字段定义了数据报总长度,其以字节为单位。
    • 标识:这个16位字段标志了从源主机发出的一个数据报,这样就确定了数据报的唯一性。这样使得数据报被分片后,在到达终点时终点能根据标识号将同一个数据报的分片重新组装成一个数据报。
    • 标志:占3位,但只有2位有意义。
    • 分片偏移:这个13位字段表示的是分片在整个数据报中的相对位置。这是数据在原始数据报中的偏移量,以8字节位单位。
    • 生存时间:这个8位字段用来控制数据报所经过的最大跳数(路由器),每经过一个路由器,这个字段数值都减1,减1后变位0时,路由器就丢弃这个数据报。
    • 协议:这个8位字段定义了使用IPv4服务的高层协议,如TCP,UDP,ICMP,IGMP,OSPF等的数据都将被封装到IP数据报中。这个字段指明数据报必须交付给哪个最终目的协议。
    • 检验和:检验IP数据报首部。
    • 源地址:定义了源点的IP地址,这个字段始终保持不变。
    • 目的地址:定义了终点的IP地址,这个字段始终保持不变。
    • 选项:选项字段允许IP首部被扩展。
    • 数据:包含要交给目的地的运输层报文段(TCP、UDP),也可承载其他类型的数据。

计算机网络笔记总结_第6张图片

  1. IPv6数据报
  • 版本号: 不同的IP协议版本使用不同的数据报格式。
  • 流量类型: 使得源节点和路由器能够识别IPv6信息包的优先级,与IPv4服务类型TOS字段含义类似。
  • 流标签:标记那些需要IPv6路由器特殊处理(如一种非默认服务质量或实时服务)的信息包顺序。
  • 有效负载长度:定长40字节数据报首部后面的字节数量,包括扩展报头和负载数据,占20位。
  • 下一个首部:当IPv6没有扩展报头时,该字段的作用和IPv4的上层协议字段一样。当含有扩展报头时,该字段的值即为第一个扩展报头的类型。
  • 跳限制:转发数据报的每台路由器对该字段的值减1,若减为0则丢弃该数据报。
  • 源地址与目的地址:标识了IPV6地址,占128位。
  • 数据:当使用TCP/UDP协议时,数据即为传输层报文段(TCP/UDP)。数据字段也可承载其他类型数据,如ICMP报文段。
    计算机网络笔记总结_第7张图片

你可能感兴趣的:(计算机网络)