笔记整理——计算机网络(笔记整理三之二)

计算机网络的功能:1、数据交换与通信;2、资源共享;3、提高系统的可靠性和可用性;4、分布式网络处理。计算机网络中可以共享的资源包括:硬件、软件、数据、通信信道。

应用层、运输层、网络层、链路层、物理层

应用层、表示层、会话层、运输层、网络层、链路层、物理层

  • 应用层:HTTP、SMTP、FTP、(DNS)协议。网络应用程序及它们的应用层协议存留的地方。
  • 运输层:在应用程序端点之间传送应用层报文(不同主机应用进程之间的逻辑通信)。TCP、UDP协议。
  • 网络层:将数据报从一台主机移动到另一台主机。分组,不可靠服务。IP协议、OSPF协议(路由选择协议:转发和路由选择)。
  • 链路层:数据帧
  • 物理层:比特流

TCP/IP协议包括:应用层、传输层、网络层、网络接口层。

应用层

应用层负责处理网络应用。(HTTP、FTP、SMTP)

应用层协议定义了运行在不同端系统上的应用程序如何相互传递报文。报文定义为:报文类型、语法、语义、一个进程何时以如何时序发送报文,对报文的响应规则。

HTTP使用TCP作为运输层协议,也是无状态协议:HTTP服务器并不保存关于客户的任何信息。并分为持续连接:HTTP默认使用带流水线的持续连接;非持续连接:必须为每一个请求的对象建立和维护一个全新的连接。

FTP使用两个并行的TCP连接来传输文件,分为控制连接、数据连接(21、20端口)。一个控制连接可以对应多个数据连接,即控制连接贯穿了整个用户回话期间,但是对会话中的每一个文件传输都需要建立一个新的数据连接。

DNS(域名系统):1、一个由分层的DNS服务器实现的分布式数据库;2、一个使得主机能够查询分布式数据库的应用层协议。DNS协议运行在UDP之上,使用53端口号。

DNS域名正向查询:通过域名得到IP的查询;反向查询:通过IP得到域名。迭代查询、递归查询。根DNS服务器、顶级域DNS(TLD)服务器、权威DNS服务器、本地DNS服务器。

1、HTTP 2.x 相对于 HTTP 1.x 的区别:

  • 多路复用:允许同时通过单一的HTTP/2连接发起多重请求——响应消息。
  • 二进制分帧:改进传输性能,实现低延迟和高吞吐量。
  • 首部压缩
  • 服务端推送

2、HTTP 1.1 相对于 HTTP 1.0 的区别:

  • 缓存处理:可以选择更多缓存控制策略。
  • 带宽优化和网络连接的使用
  • 错误的通知管理(新增24个错误状态响应码)
  • Host处理
  • 长连接(keep alive)

Cookie存在客户端,Session存在服务端。Http下cookie是明文传输的,Https下是密文传递的。子域名可以访问根域名的cookie,反之则不可。对于不同的浏览器,cookie大小由不同的限制。

HTTP会话的四个过程:1、连接;2、请求;3、应答;4、关闭。

运输层

传输层负责端到端连接。进程通过socket的软件接口向网络发送报文和网络接收报文。(TCP、UDP、SPX)

TCP

面向连接服务,可靠数据传输、拥塞控制、流量控制、自动重传请求(ARQ)协议、rdt3.0停等协议(累计确认)。

建立TCP连接需要三次握手,(三次握手)建立连接 -> 传输报文 -> 拆除连接。断开连接需要四次握手。

TCP三次握手

TCP四次挥手

客户端状态变化:CLOSED -> SYN_SENT -> ESTANBLISHED -> FIN_WAIT_1 -> FIN_WAIT_2(半关闭状态,有接收数据能力,但已经无法发送数据) -> TIME_WAIT(等待状态,2MSL等待状态,第四次握手的保险状态) -> CLOSED。

服务端状态变化:CLOSED -> LISTEN -> SYN_RCVD -> ESTABLISHED -> CLOSE_WAIT -> LAST_ACK -> CLOSED。

回退N步(GBN)、选择重传(SR)。慢启动、拥塞避免、快速恢复(AIMD:加增倍减)。

带宽 X 时延 = 缓冲区大小。在一般的操作系统中TCP发送缓冲区默认值是4MB左右(有一定的自调节能力)。

TCP中用16bit来表示窗口大小。滑动窗口提供TCP的可靠性,提供TCP的流控特性。(确认重传机制,重传情况下采用一种“指数退避”的方式)。(RST:表示重置连接、复位连接;RTT:连接的往返时间;RTO:重传超时时间)。1、一个连接中,有且仅有一个测量定时器被使用。也就是说如果TCP连续发出3组数据,只有一组数据会被测量。2、ACK数据报不会被测量,原因是没有ACK的ACK回应可以供结束定时器测量。

TCP为了提高效率,允许重新传输的时候,只要传输包含重要数据报文就可以,而不用重传需要传输的报文。

如果发送方收到接受方的窗口大小为0的TCP数据报文,发送端将会停止发送数据,等到接受方发送窗口大小不为0的数据报的到来。

发送窗口上限值 = Min[接收窗口,拥塞窗口]

SSL是一种对TCP的强化socket,强化是在应用层实现的。

UDP

无连接、不可靠数据传输,没有拥塞控制机制,不提供时延保证。

伪头部用于检验和差错检测功能。

TCP/UDP传输段中,源端口地址和目的端口地址不能相同,相同则是LAND攻击。

DNS服务器之间传输时使用TCP,而客户端与DNS服务器之间传输时使用UDP。

网络层

网络层负责寻址和最短路径。(IP、IPX、APPLETALK、ICMP)

路由选择算法:1、全局式路由选择算法;2、分散式路由选择算法。(LS算法:链路状态;DV算法:距离向量)

自治系统内部的路由选择:路由选择信息协议(RIP协议:基于距离矢量的路由协议,一种DV算法);开放最短路优先(OSPF:开放最短路径优化协议,一种LS算法)。自治系统间的路由选择:BGP(边界网关协议:一种DV算法)。RIP最多支持的跳数为15,即在源和目的的网间所要经过的最多路由器的数目为15,跳数为16表示不可达。

ICMP:Internet控制报文协议,用于IP主机、路由器之间的传输控制消息(指网络通不通、主机是否可达、路由是否可用等网络本身的消息);让其他所有需要知道自己处于哪个多播组的主机和路由器知道自己的状态。是TCP/IP协议族的一个子协议,用在网络层。PING使用的是ICMP协议。Traceroute:用于侦测主机到目的主机之间所经由路由情况(windows下是tracert)。

查询报文:Ping查询、子网掩码查询、时间戳查询;差错报文:产生在数据传送发送错误时。

IP地址:网络号 + 主机号。IP地址匹配遵循最长前缀匹配原则。IP数据报分片可能发生在信号源/路由器,而重组必须在目的主机。

一般操作系统默认是没有路由功能的(需要自己配置)。

ICMP的IP重定向报文:重定向报文只能由路由器发出;重定向报文为主机所用,而不是为路由器所用。

集线器共享带宽,交换机独占带宽。路由器的每一个接口是一个广播域;交换机的每个接口是一个冲突域,交换机在未配置策略前是所有接口是一个广播域。集线器的所有接口是一个冲突域。

链路层

链路层为介入介质。提供服务:成帧、链路接入、可靠交付、差错检测与纠正(比特级)。(802.2、802.3、ATM(电路交换和分组交换的组合,53个字节,前5个为信头,完成寻址,后48为信息端)、HDLC、FRAME、RELAY、PPP)

链路接入:媒体访问控制协议(MAC),规定帧在链路上传输规则。

奇偶校验、二维奇偶校验(前向纠错)、循环冗余检测(CRC)。

地址解析协议(ARP):IP地址到MAC地址的转换。(RARP:逆地址解析协议)

以太网中的最小帧长是根据网络检测冲突的最长时间来确定的。

物理层

二进制传输。

物理层电路交换在发送数据前要建立一条端到端的路径。

其他

NAT地址转换实现了对用户透明的网络内部地址分配。

QoS:服务质量。是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。(正常不需要)但对关键应用和多媒体应用就十分必要。当网络过载或拥塞时,QoS能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。

数据网络中经历的总时延包括:发送时延、传播时延、排队时延、处理时延。

负载均衡一般由第四层或第七层实现。

VPN是互联网内用软件建立的安全隧道。