计算机网络学习总结
- 计算机网络简介
- 计算机网络的功能
- 计算机网络的组成
- 计算机网络的分类
- 标准化工作
- 性能指标
- 速率
- 带宽
- 吞吐量
- 时延
- 时延带宽积
- 往返时延RTT
- 利用率
- 分层
- OSI七层模式
- TCP/IP参考模型
- 物理层
- 物理层基本知识
- 码元、波特、速率和带宽
- 奈氏准则和香农定理
- 编码&调制
- 数据链路层
- 物理层基本知识
- 封装成帧和透明传输
- 流量控制与可靠传输机制
- 停止-等待协议
- GBN(后退N帧)协议
- SR(选择重传)协议
- CSMA协议
- 网络层
- 数据交换
- 路由算法
- RIP协议
- OSPF协议
- BGP协议
- IP数据报格式
- ARP协议
- DHCP协议
- ICMP协议
- 传输层
- UDP协议
- TCP协议
- TCP连接管理
- TCP可靠传输
- TCP流量控制
- TCP拥塞控制
- 应用层
- DNS
- 万维网和HTTP
计算机网络简介
计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
计算机网络的功能
计算机网络的功能:
- 数据通信(连通性)
- 资源共享(硬件、软件、数据)
- 分布式处理
- 提高可靠性
- 负载均衡
计算机网络的组成
计算机网络组成:
- 组成部分(硬件、软件、协议)
- 工作方式(边缘部分:用户直接使用、核心部分:为边缘部分服务)
- 功能组成(资源子网(应用层、表示层、会话层):实现资源共享/数据处理、通信子网(网络层、数据链路层、物理层):实现数据通信)
计算机网络的分类
计算机网络分类:
- 按分部范围分:广域网WAN(交换技术)、城域网MAN、局域网WAN(广播技术)、个人区域网PAN
- 按使用者分:公用网、专用网
- 按交换技术分为:电路交换、报文交换、分组交换
- 按拓扑结构分为:总线型、星型、环型、网状型
- 按传输技术分为:广播式网络(共享公共通信信道)、点对点网络(使用分组存储转发和路由选择机制)
标准化工作
法定标准:由权威机构指定的正式的、合法的标志,OSI协议
实时标准:某些公司的产品在竞争中占据了主流,时间长了这些产品的协议和技术就成了标准,TCP/IP协议
性能指标
速率
速率即数据率或称数据传输率或比特率
比特 1/0 位
连接在计算机网络上的主机在数字信道上传送数据位数的速率。
单位为b/s,kb/s,Mb/s,Gb/s,Tb/s
存储容量 1Byte(字节) = 8 bit(比特)
带宽
- "带宽"原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)
- 计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所通过的"最高数据率"。单位是"比特每秒",b/s,kb/s,Mb/s,Gb/s。
吞吐量
表示在单位时间内通过某个网络(或信道、接口)的数据量。单位b/s,kb/s,Mb/s等。
吞吐量受网络的带宽或网络的额定速率的限制。
时延
指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫延迟或迟延。单位是s。
时延 = 发送时延(传输时延,从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间)+传输时延(取决于电磁波传播速度和链路长度)+排队时延(等待输出/入链路可用)+处理时延(检错找出口)
时延带宽积
时延带宽积 = 传播时延X带宽
往返时延RTT
从发送方发送数据开发,到发送方到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。
利用率
信道利用率:有数据通过/(有+无)数据通过时间
网络利用率:信道利用率加权平均值
分层
发送文件前要完成的工作:
- 发起通信的计算机必须将数据通信的通路进行激活
- 要告诉网络如何识别目的主机
- 发起通信的计算机要查明的主机是否开机,并且与网络连接正常
- 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作
- 确保差错和意外可以解决
分层的基本原则
- 各层之间相互独立,每层只实现一种相对独立的功能
- 每层之间界面自然清晰,易于理解,相互交流尽可能少
- 结构上可以分割开。每层都采用最合适的技术来实现
- 保持下层对上层的独立性,上层单向使用下层提供的服务
- 整个分层结构应该能促进标准化工作。
实体:第n层中的活动元素称为n层实体,同一层实体叫对等实体
协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。(水平)
接口(访问服务点SAP):上层使用下层服务的入口
服务:下层为相邻上层提供的功能调用(垂直)
OSI七层模式
国际标准化组织(ISO)于1984年提出开放系统互联(OSI)参考模型。
- 应用层:所有能和用户交互产生网络流量的程序(文件传输(FTP)、电子邮件(SMTP)、万维网(HTTP))
- 表示层:用于处理在两个通信系统中交换信息的表示方式(语法和语义)
功能一:数据格式变换
功能二:数据加密解密
功能三:数据压缩和恢复 - 会话层:向表示层实体/用户进程提供建立联机并在连接上有序地传输数据。这是会话,也是建立同步(SYN)
功能一:建立、管理、终止会话
功能二:使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步。 - 传输层:负载主机中两个进程的通信,即端到端的通信。传输单位是报文段或者用户数据报。
功能一:可靠传输、不可靠传输
功能二:差错控制
功能三:流量控制
功能四:复用分用 - 网络层:主要任务是分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。
功能一:路由选择
功能二:流量控制
功能三:差错控制
功能四:拥塞控制 - 数据链路层:主要任务是把网络层传下来的数据报组装成帧。数据链路层/链路层的传输单位是帧。
功能一:成帧(定义帧的开始和结束)
功能二:差错控制
功能三:流量控制
功能四:访问(接入)控制 - 物理层:主要任务是在物理媒体上实现比特流的透明传输。物理层传输单位是比特。
功能一:定义接口特性
功能二:定义传输模式
功能三:定义传输速率
功能四:比特同步
TCP/IP参考模型
面向连接分为三个阶段,第一是建立连接,在此阶段,发出一个建立连接的请求。只有在连接成功建立之后,才能开始数据传输,这是第二阶段。当数据传输完毕后,必须释放连接。
面向无连接没有这么多阶段,它直接进行数据传输。
物理层
物理层基本知识
物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
物理层主要任务:确定与传输媒体接口有关的一些特性
名词解释:
- 数据:传送信息的实体,通常是有意义的符号序列
- 信号:数据的电气/电磁的表现,是数据在传输过程中的存在形式
- 信源:产生和发送数据的源头
- 信宿:接受数据的终点
- 信道:信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因为一条通信线路往往包含一条发送信道和一条接受信道。
三种通信方式
- 单工通信:只有一个方向的通信而没有反方向的交互,仅需要一条信道。
- 半双工通信:通信的双方都可以发送或接受信息,但任何一方都不能同时发送和接受,需要两条信道。
- 全双工通信:通信双方可以同时发送和接受信息,也需要两条信道。
两种传输方式
- 串行传输:速度慢,费用低,适合远距离
- 并行传输:速度快,费用高,适合近距离
码元、波特、速率和带宽
码元:是指一个固定时长的信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长称为码元宽度。当码元的离散状态有M个时(M大于2),此时码元为M进制码元。
速率:速率也叫数据率,是指数据的传输速率(从主机传到链路上的速度),表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示。
波特:单位时间内数字通信系统所传输的码元个数的单位。
带宽:表示在单位时间内从网络中的某一点到另一点所能通过的最高数据率,常用来表示网络的通信线路所能传输数据的能力。单位是b/s。
奈氏准则和香农定理
失真
影响失真程度的因素:码元传输速率、信号传输距离、噪声干扰、传输媒体质量
信道带宽:是信道能通过的最高频率和最低频率之差。
奈氏准则:在理想低通(无噪声,带宽受限)条件下,为了避免码间串扰,极限码元传输速率为2W Baud,W是信道带宽,单位是Hz。
噪声存在于所有的电子设备和通信信道中。由于噪声随机产生,它的瞬时值有时会很大,因此噪声会使接收端对码元的判决产生错误。但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。因此,信噪比就很重要。
香农定理:在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值。
编码&调制
基带信号:将数字信号1和0直接用两种不同的电压表示,再送到数字信道上去传输(基带传输)。来自信源的信号,像计算机输出的代表各种文字或者图像文件的数据信号都属于基带信号。基带信号就是发出的直接表达了要传输的信息的信号,比如我们说话的声波就是基带信号。
宽带信号:将基带信号进行调制后形成的频分复用模拟信号,再传送到模拟信道上去传输。
数组→数字信号:编码
数组→模拟信号:调制
数据链路层
物理层基本知识
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
结点:主机、路由器
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路和无线链路。
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路
帧:链路层的协议数据单元,封装网络层数据报
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻结点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。有连接一定有确认。
功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)
功能三:组帧
功能四:流量控制。
封装成帧和透明传输
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流之后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,他们的一个重要作用:帧界定(确定帧的界限)
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
透明传输:是指不管所传数据是什么样的比特组合,都应该能够在连路上传送。因此,链路层就看不见有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
流量控制与可靠传输机制
较高的发送速度和较低的接受能力的不匹配,会造成传输错误,因此流量控制也是数据链路层的一项重要工作。
数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
数据链路层流量控制手段:接受放收不下就不恢复确认。
传输层流量控制手段:接收端给发送端一个窗口公告。
可靠传输:发送端发啥,接收端收啥
流量控制:控制发送速率,使接收方有足够的缓冲空间来接受每一个帧。
停止-等待协议
停止-等待就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
性能分析:逻辑简单,但信道利用率太低。
信道利用率:发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率
GBN(后退N帧)协议
发送窗口:发送方维持一组连续的允许发送的帧的序号。
接收窗口:接收方维持一组连续的允许接收的帧的序号。
GBN发送方必须响应的三件事:
- 上层的要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。
- GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。
- 超时事件,协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样。定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
GBN接收方要做的事:
- 如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
- 其余情况都要丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧。
GBN协议性能分析:因连续发送数据帧而提高了信道利用率。在重传时必须把原来已经正确传送的数据帧重传,是传送效率降低。
SR(选择重传)协议
SR发送方必须响应的三件事:
- 从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
- 如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
- 超时事件,每个帧都有自己的计时器,一个超时事件发生后只重传一个帧。
SR接收方要做的事:
- SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧。直到所有帧(即序号更小的帧)皆被接收为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
CSMA协议
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
CSMA/CD协议
CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
CSMA/CA协议
CA:碰撞避免(冲突检测)
网络层
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。
功能一:路由选择与分组转发
功能二:异构网络互联
功能三:拥塞控制
数据交换
报文交换:
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 多目标服务
缺点:
- 有存储转发时延
- 报文大小不定,需要网络节点有较大缓存空间
分组交换:
把大的数据库分割成小的数据块
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 相对于报文交换,存储管理更容易
缺点:
- 有存储转发时延
- 需要传输额外的信息量
- 乱序到目的主机时,要对分组排序重组
应用层:报文
传输层:报文段
网络层:IP数据报,分组
数据链路层:帧
物理层:比特流
路由算法
最佳路由:“最佳”只能是相对于某一特定要求下得出的较为合理的选择而已。
静态路由算法(非自适应路由算法):管理员手工配置路由信息
动态路由算法(自适应路由算法):路由器间彼此交换信息,按照路由算法优化出路由表项
RIP协议
RIP是一个种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单(UDP数据报)。
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的的网络的唯一最佳纪录。
距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1,。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。
- 仅和相邻路由器交换信息
- 路由器交换的信息是自己的路由表
- 每30s交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判断邻居没了,并更新自己路由表
路由器刚开始工作时,只知道直接连接的网络的距离,接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即收敛。
OSPF协议
开放最短路径优先OSPF协议:“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的:“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF。
OSPF最主要的特征就是使用分布式的链路状态协议(IP)。
OSPF的特点:
- 使用洪泛法相自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往所有的相邻路由器。
- 发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器与那些路由器相邻,以及该链路的度量/代价–费用、距离、时延、带宽)
- 只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
BGP协议
与其他AS的邻站BGP发言人交换信息。
交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS。
发生变化时更新有变化的部分。
BGP所交换的网络可达性的信息就是要到达某个网络所要经过一系列AS。当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由(TCP)。
IP数据报格式
版本:IPv4/IPv6
首部长度:单位是4B,最小为5
区分服务:指示期望获得那种类型的服务
总长度:首部+数据,单位是1B
生存时间(TTL):IP分组的保质期。经过一个路由器-1,变成0则丢弃。
协议:数据部分的协议
首部检验和:只检验首部
源IP地址和目的IP地址:32位
可选字段:0~40B,用来支持排错、测量以及安全等措施。
填充:全0,把首部补成4B的整数倍
标识:同一数据报的分片使用同一标识
标志:只有两位有意义x _ _,中间位DF:DF=1禁止分片,DF=0,允许分片,最低位MF,MF=1后面还有分片,MF=0代表最后一片/没分片。
片偏移:指出较长分组分片后,某片在原分组中的相对位置,以8B为单位。
IP地址分类
ARP协议
由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址
ARP协议:完成主机或路由器IP地址到MAC地址的映射。
ARP协议使用过程:
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)
ARP协议4中典型情况
- 主机A发给本机网络上的主机B:用ARP找到主机B的硬件地址
- 主机A发给另一网络上的主机B:用ARP找到本网络上的一个路由器(网关)的硬件地址
- 路由器发给本网络的主机A:用ARP找到主机A的硬件地址
- 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址
DHCP协议
动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。
DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。
- 主机广播DHCP发现报文,试图找到网络中的服务器,服务器获得一个IP地址。
- DHCP服务器广播DHCP提供报文,服务器拟分配给主机一个IP地址及相关配置,先到先得。
- 主机广播DHCP请求报文,主机向服务器请求提供IP地址。
- DHCP服务器广播DHCP确认报文,正式将IP地址分配给主机。
ICMP协议
- 终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。- 时间超过:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
- 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
- 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。(可通过更好的路由)
ping:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文
Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。
传输层
只有主机才有的层次,为应用层提供通信服务,使用网络层服务。
传输层功能:
- 传输层提供进程和进程之间的逻辑通信
- 复用和分用
- 传输层对收到的报文进行差错检测
- 传输层的两种协议
面向连接的传输控制协议TCP:
传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。(可靠、面向连接、时延大、适用于大文件)
无连接的用户数据报协议UDP:
传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。(不可靠、无连接、时延小、适用于小文件)
复用:应用层所有的应用进程都可以通过传输层再传输到网络层
分用:传输层从网络层收到数据后交付指明的应用进程
应用程序对应的端口号
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一表示了网络中的一个主机和它上面的一个进程。
UDP协议
UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。
UDP的主要特点:
- UDP是无连接的,减少开销和发送数据之前的时延
- UDP使用最大努力交付,即不保证可靠交付
- UDP是面向报文的,适合一次性传输少量数据的网络应用
- UDP无拥塞控制,适合很多实时应用
- UDP首部开销小,8B,TCP20B
应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。
UDP首部格式
分用时,找不动对应目的的端口号,就丢弃报文,并给发送方发送ICMP“端口不可达”差错报告报文。
TCP协议
- TCP是面向连接的传输层协议
- 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
- TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。
- TCP提供全双工通信,发送缓存(准备发送的数据&已发送但尚未收到确认的数据),接受缓存(按序到达但尚未被接收应用程序读取的数据&不按序到达的数据)
- TCP面向字节流:TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流
TCP报文段首部格式
序号:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号
确认号:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到。
数据偏移(首部长度):TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B为单位,即1个数值是4B。
紧急位URG:URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用再缓存里排队,配合紧急指针字段使用。
确认位ACK:ACK=1时,确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1.
推送为PSH:PSH=1时,接收方尽快交付接收应用程序,不再等到缓存填满再想上交付。
复位RST:RST=1时,标明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输连接。
同步位SYN:SYN=1时,标明是一个连接请求/连接接收报文。
终止位FIN:FIN=1,标明此报文段发送方书记已发完,要求释放连接。
窗口:指的是发送本报文段的一方的接受窗口,即现在允许对方发送的数据量。
检验和:检验首部+数据,检验时要加上12B伪首部,第四个字段为6
紧急指针:URG=1时才有意义,指出本报文段中紧急数据的字节数。
选项:最大报文段长度MSS、窗口扩大、时间差、选择确认…
TCP连接管理
TCP连接传输三个阶段:连接建立、数据传送、连接释放
TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。
假设运行在一台主机(客户)上的一个进程想与另一台主机(服务器)上的一个进程建立一条连接,客户应用进程首先通知客户TCP,他想建立一个与服务器上某个进程之间的连接,客户中的TCP会用以下步骤与服务器中的TCP建立一条TCP连接:
- 客户端发送连接请求报文段,无应用层数据。
- 服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据。
- 客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据。
TCP连接的释放:
参与一条TCP连接的两个进程中的任何一个都能终止该连接,连接结束后,主机中的“资源”(缓存和变量)将被释放。
- 客户端发送释放报文段,停止发送数据,主动关闭TCP连接。
- 服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了–半关闭状态。
- 服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接。
- 客户端回送一个确认报文段,再等到时机等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭。
TCP可靠传输
确认重传不分家,TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段。(超时重传)
TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)
冗余ACK(冗余确认):每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号。
发送方已发送1,2,3,4,5报文段
接收方收到1,返回给1的确认(确认号为2的第一个字节)
接收方收到3,仍返回给1的确认(确认号为2的第一个字节)接收方收到4,仍返回给1的确认(确认号为2的第一个字节)
接收方收到5,仍返回给1的确认(确认号为2的第一个字节)
发送方收到3个对于报文段1的冗余ACK:认为2报文段丢失,重传2号报文段。
TCP流量控制
流量控制:让发送方慢点,要让接收方来得及接收。
TCP利用滑动窗口机制实现流量控制。
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd(接收方设置确认报文段的窗口字段来讲rwnd通知给发送方),发送方的发送窗口去接收rwnd和拥塞窗口cwnd的最小值。
TCP为每一个连接设有一个持续计时器,只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器。
若持续计时器设置的时间到期,就发送一个零窗口探测报文段。接收方收到探测报文时给出现在的窗口值。
若窗口仍然是0,那么发送方就重新设计持续计时器。
TCP拥塞控制
拥塞控制:防止过多的数据注入到网络中。
接收窗口:接收方根据接收缓存设置的值,并告知给发送方,反应接收方容量
拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反应网络当前容量。
慢开始与拥塞避免:
快重传与快恢复:
应用层
应用层对应用程序的通信提供服务
DNS
域名:www(三级域名).baidu(二级域名).com(顶级域名)
DNS解析全过程:
本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。
万维网和HTTP
万维网WWW是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。
HTTP协议定义了浏览器怎么想万维网服务器请求万维网文档,以及服务器怎么把文档传送给浏览器。
用户浏览页面过程:
- 浏览器分析URL
- 浏览器向DNS请求解析IP地址
- DNS解析出IP地址
- 浏览器与服务器建立TCP连接
- 浏览器发出取文件命令
- 服务器响应
- 释放TCP连接
- 浏览器显示
HTTP是无状态的。