1.计算机网络概述
1.1计网简介
计算机网络:将分散的,有独立功能的计算机系统,连接起来,实现资源共享和信息传递的系统。简而言之,就是一些互联的、自治的计算机系统的集合。
计网组成:1.组成部分看 硬件,软件,协议 ; 2.工作方式看:核心部分和边缘部分 3.功能组成看:通信子网和资源子网
计网功能:数据通信,资源共享,分布式处理(负载过重分任务给其他计算机),提高可靠性,负载均衡(工作任务均衡分给各个计算机)
计网分类:1.分布范围分类:广域网,局域网,城域网,个人局域网 2.传输技术分类:广播式网络,点对点网络 3.拓扑结构分类:总线型,星型,环形,网状 等。。。
带宽:最高数据传输速率 bt/s
时延:网络一端到另一端所需要的总时间
· 时延带宽积:指发送第一个比特到达终点,发送端此时已经发送了多少个比特
往返时延:发送端发送开始到接收到接收端返回的确认所经过的时间
吞吐量:单位时间通过网络/信道/接口的数据量
速率:在数字信道上传输的速度
信道利用率:某一信道有百分之多少时间是有数据通过的
1.2体系结构
计网网络分层:下面的为上面的提供服务,就好像楼层一样,发送方和接收方都有一栋楼,一开始文件在发送方的最高层,然后向下发送,每次给下面一层,都要包一层协议,然后给到接收方,接收方每次往上传一层都要去掉一层协议。
协议:就是规则的集合,只有相同的层才会存在协议,
接口:相邻两层交换信息的连接点
服务:下层为上层提供的看得见的服务,是垂直的
OSI参考模型:七层
TCP/IP模型:四层
学习时采取综合上述两种参考模型的特点:物理层,数据链路层,网络层,传输层,应用层
2.物理层
2.1基本概念
数据:传送信息的实体
信号:数据的电气或电磁表示形式
码元:数字通信中数字信号的计量单位,可携带若干信息量,比如二进制时有两种码元0状态和1状态,而码元可以是多进制的也可以是二进制的。
信源:发送信号的源头
信宿:接受信号的接收方
信道:信号的传输媒介,但他不是电路,而是一条线路的逻辑部件,只是为了我们方便理解,可理解为向某个方向传送信息的介质。
速率:单位时间传输数据量,也就是数据传输速率。包括码元传输速率(单位是1波特,此时码元可以实多进制的)和信息传输速率(单位是1二进制码元个数,也就是b/s,要知道一个二进制码元就是1比特)
奈奎斯特定理:1.任何信道码元传输速率是有上限的,超过此上限会造成严重串扰问题
2.频带越宽,就可以用越高速的速率进行码元传输
3.但是并没有规定一个码元可以携带多少位数的限制,也就是信息传输速率的限制,所以可以通过每个码元带更多比特信息量,来加快传输。
香农定理:刚刚没有规定信息传输速率,而香农定理规定了一个码元对应的二进制位数是有限的。
信道极限数据传输速率=Wlog2(1+S/N) W是带宽,S是平均功率,N是高斯噪声功率
结论:信噪比越大,数据极限传输速率越高,而且这个极限是确定的,而只要信息传输速率低于这个极限,就能做到无差错传输。
编码:把数据转变为数字信号:也就是将一个个数字变成对应的线条状(直线),只要能区分不同数字就可以
调制:将数据变为模拟数据,变成曲线型
数字数据调制技术: 调制:将数字信号变为模拟信号; 解调:将模拟信号还原为数字信号
电路交换:两个节点通过先建立一条双方独占的物理通信路径,在传输期间,该路径一直被独占,直到通信结束才被释放。所以其时延非常小,但是建立连接时间长不够高效和灵活。
报文交换:单位是报文,携带有目标地址,源地址等信息,通过存储转发方式传输,没有特定的路径,交换设备根据当前的空闲线路来选择一条线路传输。因为有存储转发这一过程,会引发转发时延。
分组交换:也采用存储转发的方式,但是将大报文分成了一个个小数据块,包括一些必要控制信息,构成分组。分别传输。减少了出错率加快了速度,但是存在传输时延和增加了额外的信息量。
比较:当传送信息量很大选择电路交换。多段链路组成的通路选择分组交换,且分组交换比报文交换时延小。
分组交换中包括了数据报方式和虚电路方式。
数据报方式:也就是刚刚提到的传统的存储转发,将数据包分成一个个小数据快加上必要信息形成分组传输。
虚电路:结合了数据报方式和电路交换的优点,在发送前,接收方和发送方先建立一条逻辑上相连的虚电路,然后分组不仅有分组号等控制信号,还要有通过的虚电路号,这样就实现了可靠通信功能,对长时间频繁的数据交换效率很高。
2.2传输介质
双绞线,同轴电缆,光纤,无线传输介质
物理层应尽可能屏蔽传输介质的差异,让数据链路层感受不到差异,只需考虑本层的协议。
2.3物理层设备
中继器:将信号整形再生并放大转发出去,以消除信号的失真和衰减,进而扩大网络传输距离。但是中继器并没有存储转发功能,他连接的两个网段必须在同一协议。(区别放大器,放大器放大模拟信号,而中继器放大数字信号,将信号整形再生。)
集线器:多端口的中继器。将一个端口接受到的信号,整形放大,转发到其他所有处于工作状态的端口,只起信号放大和转发的作用,目的是扩大网络传输范围,但没有定向传送能力,是一个标准共享式设备。
3.数据链路层
加强物理层传输原始比特流,将物理层提供的可能出错的物理连接改造为逻辑无差错的数据链路,对网络层表现为无差错链路。
3.1功能
为网络层提供服务:无确认的无连接服务:发了就算了,适用于实时通信或误码率较低通信信道
有确认的无连接服务:目的机器接收到必须返回确认,发送方收不到确认就重传丢失的帧:适用误码率较高的通信信道
有确认的面向连接服务:每一帧收到都必须确认,发送方收到确认才发送下一帧(更加可靠了)
链路管理:主要面向连接的服务,进行通信要确认双方就绪,交换必要信息才能建立连接,维持链接,最后释放连接,还有负责通信站点间的分配和管理信道。
透明传输:有时候有一些帧定界符和数据的比特流刚好相同,导致数据丢失,而透明传输就是为了解决这个问题。
流量控制:流量控制用于限制发送方的发送速率,以免接收方跟不上发送方的速度,使前面来不及接受的帧被后面不断发送来的帧淹没造成帧丢失而出错。这在数据链路层和运输层都又此功能。
差错控制:通过循环冗余检测CRC来发现错误,也就是发送方发送检错码,接收方根据此来检测错误,若发现错误则丢弃,发送方没有收到确认,超时重传。这种差错控制方法称为自动重传请求ARQ
3.2组帧
帧定界:通过在一段数据前面加入首部和尾部,来确定一个帧的界限(也就是知道哪里到哪里是一个帧)
帧同步:接收方从二进制比特流区分出帧的起始和终止
就是为了区分帧与帧,必须在帧头尾加上首部和尾部
四种组帧方式:字符计数法:就是在帧前标记后面有多少数据
字符填充的首位定界符法:就是通过SOH特殊字符和EOT分别代表首部和尾部
零比特填充首尾标志法:通过01111110来作为开始和结束
违规编码法
3.3差错控制
比特差错:就是0和1在传输过程中变了
ARQ:自动重传请求:也就是发现错误叫发送方重传:所以对应检错编码
检错编码:发送方按某种关系附加一定冗余位,接收方根据收到的码字看是否符合规则。分别由奇偶校验码和循环冗余码
奇偶校验码:奇校验码1的个数为奇数,偶校验码1的个数为偶数
循环冗余码:发送方和接收方先商定一个多项式,然后帧可以被多项式整除,如果接收方把接收到的码也可以被多项式整除,则没有差错。
(但是检错编码只能检错,并不能纠错,以下说纠错编码)
FEC前向纠错
纠错编码:就是在每个要发送的数据块上附加足够冗余信息,使接收方能推导出发送方实际发送出了什么比特串。常见的纠错编码是海明码
3.4流量控制和可靠传输机制
停止-等待流量控制:发送方接受到应答,才能发送下一帧。接收方接收到必须返回应答。
滑动窗口流量控制:发送方有一个滑动窗口,代表他此时可以发送的已经准备好的帧,接收方有一个接收窗口,表示他此时此刻可以接受的帧,只有当接受了上一个帧,接受窗口就向前移动,而且接收窗口只能接收落在窗口上的帧,并且返回应答。发送窗口只有接收到应答,才会往前移动。
协议:
1.单帧滑动窗口和停止-等待协议
停止等待协议就是发送方一次放送一个,接收方接受后返回确认,发送方收到确认后才发送第二个帧,这个协议仅仅用于单帧滑动窗口。两种差错:帧被破坏,接收方检测出错后抛弃,等发送方超时重传; 确认帧被破坏,此时接收方已经接受到,但是发送方没有接收到确认帧,所以还是会超时重传,此时接收方收到第二份相同的帧,会丢弃同时再次返回确认。
2.多帧滑动窗口与后退N帧协议
发送方变成了多帧滑动窗口,不再需要收到确认才传下一帧,而是可以一直传窗口内部的帧,而接收方仍然是一帧的窗口,但是此时可以连续接收,并一直返回确认,但是当出现差错就不会返回。此时发送方已经发送到第10个帧,但是如果发现第五个帧确认超时了,则会后退5帧重新从第5帧开始传。所以说在网络极其不稳定的时候,这个协议没有停止等待协议好。
3.多帧滑动窗口和选择重传协议
就是对上面一个出错全部重传的改进,此时接收方的接收窗口也增大,当收到一串有缺失的帧后,比如1245678,少了3,按照后退N帧协议需要重传3之后所有帧,而选择重传协议则通过将3后面的在接受窗口的帧放到缓冲区,直到接收到3再开始接收。所以发送方只要发送一个3就可以了。
3.5介质访问控制
当几个节点共享某条信道,则要通过介质访问控制来让他们互不影响
信道划分介质访问控制
信道划分就是把多个输入通道信息整合到一个复用通道,一条信道逻辑上分为多条
1.频分多路复用FDM:将多路基带信号调制到不同频率载波上,叠加形成复合信号的多路复用技术,注意总的带宽不能超过信道总带宽。
2. 时分多路复用TDM:将一条物理信道按时间分成若干时间片,轮流分配给多个信号使用。
3.波分多路复用WDM:光纤中传输不同波长的光信号
4.码分多路复用CDM: 采用不同编码来区分各路原始信号的方式。与FDM和TDM都不同,他是共享空间和时间的,FDM类似把信道划分为多条,TDM是轮流走这条信道,而CDM类似把不同的信号放到同一辆车上运输。
随机访问介质访问控制
不再采用集中控制方式解决发送信息次序,而是用户根据自己意愿来发送。
常用协议是ALOHA,CSMA,CSMA/CD,CSMA/CA
CSMA/CD
先听后发,边听边发,冲突停发,随即重发
CSMA/CA
也就是与CSMA/CD不同在于一开始会检测信道是否空闲一段时间,等待一段时间信道仍然空闲再发送,如果要发送第二帧,再重新倒计时。
轮询访问介质访问控制:令牌传递协议
会有一个令牌在节点之间传送,节点不再可以随机发送,而是等到令牌来到自己手上,才可以传送,如果没有节点要发送,那么令牌就会一直游荡。
3.5局域网
局域网就是在一个较小地理范围的计算机互联网络。主要是以太网
以太网与IEEE802
总线型的局域网标准,描述物理层和数据链路层的MAC子层实现方法。
特点:采用无连接工作方式,尽最大能力交付,不需要确认
数据使用曼彻斯特编码的信号,码元中间通过电压转换来提取
1.以太网传输介质和网卡
传输介质:粗缆,细缆,双绞线和光纤
网卡:计算机与外界局域网连接的实现,功能是数据的串并转换。每一块网卡都有世界上唯一的标识:MAC地址
2.以太网MAC帧
MAC帧中包含MAC地址,网卡收到MAC帧首先检查MAC地址,看看是不是发往本站的帧。
3.高速以太网
速度超过100M/s的以太网
令牌环网
每一个站通过电缆与环接口干线耦合器相连,有一个令牌循环来控制节点占用信道
3.6广域网
广域网指覆盖范围很广的超长距离网络,与之对应的是局域网。而他们共同构成了互联网。
广域网使用协议主要在网络层,而局域网是数据链路层
PPP协议
使用串行线路通信的 面向字节 的协议,应用在 直接连接 的 两个节点 的链路上。设计目的通过拨号或专线方式建立点对点连接发送数据,是一种共同的解决方案。
HDLC协议
高级数据链路控制协议是 面向比特 的数据链路层协议,透明传输,全双工通信,所有帧有CRC检测,传输与处理功能分离。
3.7数据链路层设备
网桥
两个或多个以太网通过网桥连接,变成了更大的以太网,每个小以太网称为网段,由于网桥工作在链路层的MAC子层,所以网段之间成为隔离开的碰撞域,一边故障另一边不受影响。
网桥有路径选择功能,接收帧以后,根据信息决定正确路径,转送到对应的局域站点
透明网桥
就是对于主机来说是透明的,并不知道确切路由在哪里,通过生成树算法来转发帧,是自学习算法自动建立转发表的。
源路由网桥
对主机透明,网桥根据数据真正的路由信息对帧进行转发和接收,可以选出最佳路由
局域网交换机
相当于一个多端口的网桥,但是他每个端口连接的不是网段而是主机,而且使用的转发表也是自学习算法构建的,就是看这个帧的MAC地址是否在查找表中,如果在则发送,不在则加入查找表再发送到对应的目的端口。
交换机最大优点是一个用户通信时是独占带宽,所以N个端口的交换机总容量时N* 每个端口速度
以太网每个端口的传输速率可以不同,所以根据用户需要分配端口
交换模式
1.直通式:只检查目的地址就直接发送
2.存储转发式:存储到高速缓存器,确认无误后再发送
4.网络层
网络层通过路由器将异构网络互联,实现了把互联后的计算机网络视为一个虚拟IP网络
路由器:
路由选择和分组转发 ,前者是通过路由选择算法来构造一个路由表,后者是接收到数据报后通过查看路由表和数据报信息来转发到别的端口。
拥塞控制:
拥塞:出现过量的分组引起网络性能下降的现像
拥塞控制:获取拥塞信息,从而避免由于拥塞出现的分组丢失,严重拥塞和产生死锁的现像,这是一个全局性的过程,这是与流量控制的区别。
路由算法:静态路由算法:人工修改信息
动态路由算法:距离-向量路由算法:就是每个节点更新自己路由选择表时将自己路由选择表给相邻的节点,然后每个节点根据收到的路由选择表,更新自己的路由选择表:就是加入没有发现的节点,还有更新更短的路径。
链路状态路由算法:就是首先测试所有邻接节点的状态,定期将自己链路状态传给其他所有的节点,所以每个节点都有整个总体节点的信息,所以就可以通过最短路径算法算出到每个节点的最短路径,不用依靠临近的节点。
层次路由:解决网络规模很大,路由很多的问题。通过把因特网分为多个自治系统,自治系统内部有各自路由选择协议,而自治系统之间由两个系统之间的协议来屏蔽差异
IPv4
IPv4 32位:定义数据传送的基本单元–IP分组及其确切的数据格式。
IP分片:因为数据链路层最大数据量称为MTU,所以网络层的IP数据报不能大于MTU,而如果大于,则要将一个IP数据报中的数据分装在两个或多个较小的IP数据报中。
IP地址:世界上独一无二的用于标识一个主机地址,包括了网络号和主机号,网络号代表其所在的网络,而主机地址标识主机(通过自身所处网络分配),而路由器由于连接多个网络,所以至少有两个IP地址。(而网桥连接的若干以太网属于同一网络,用同一个网络号)
网络地址转换:因为IP地址有限,并且需要保护内部专用网信息,所以通过一个全球IP地址就可以使整个专用网与因特网互通,通过NAT表把专用网(内部)的所有主机的私有IP地址对应着全球IP地址记录下来,当专用网内部交流就用私有IP地址,当与因特网交流,则通过网络地址转换成全球IP地址再传输到外界,接收外界全球IP地址则转为原来的私有地址。
子网划分:就是把原本两级的ip地址换位三级,其中主机号又分为了子网号和主机号,其实对于网络外界来说是没有区别的,这是网络内部的事情。
子网掩码:ABC三类ip号,其网络号和主机号的位数是不同比例的,所以通过子网掩码,可以告诉主机号哪写是网络号和子网号哪些是主机号。其具体方法是,子网掩码与ip地址同样位数,其中1代表网络号和子网号,0代表主机号,然后通过将子网掩码与ip地址与操作,就可得到网络地址(网络号和子网号),所以在发送时必须把子网掩码告诉对方。
CIDR无分类域间路由选择:不再区分ABC类也不再有子网,而是通过网络前缀将他们区分开来IP:<网络前缀,主机号>
IP地址是单纯在网络层所使用的抽象地址,而硬件地址在数据链路层,因为IP数据报分组封装为MAC帧,所以数据链路层是无法直到IP地址的,只能看见MAC帧,所以数据链路层无法通过MAC地址跨网域传输。
地址解析协议ARP:就是将IP地址映射为对应的物理地址,工作在网络层,当要发送时,先通过ARP高速缓存查看有无目的主机的地址,若有则封装到帧直接发送,若没有则通过广播寻找。
动态主机配置协议DHCP:就是DHCP服务器会提供IP地址,当需要IP地址的主机启动时会广播,DHCP服务器通过寻找该主机配置,找到对应IP地址或者在地址池中找一个地址分配给该计算机
网际控制报文协议ICMP:让主机或路由器报告差错和异常情况。种类分为ICMP差错报告报文和ICMP询问报文。
IPv6
128位:就是大大增加了IP地址的长度,还有其他一些衍生的优点,从根本上解决了IP地址耗尽的问题。
优点:更长; 简化了IP分组头; 更好支持选项(从前必要的段,现在变成了可选项了)
路由协议
自治系统AS:就是一组路由器使用AS内部的路由选择协议和共同度量来选择路由,所有网络都由一个行政单位管辖,而且内部所有路由器都必须连通。
域内路由选择IGP:自治系统AS内部的路由选择,通过 内部网关协议 来完成。
域间路由选择EGP:自治系统之间的路由选择,通过 外部网关协议 来完成。
域内路由选择两个协议:
RIP路由信息协议
使用路径-向量算法的代表,最简单的协议,每个路由器通过每30秒广播一次路由更新信息,来和相邻路由器交换该路由器的完整路由表,并且每次交换信息路由就更新到每一个路由器的最短路径。
优点:简单,开销小,收敛过程快
缺点:限制网络规模最大距离为15;网络规模越大,开销越大(因为网络路由表很大);坏消息传得慢;
RIP是应用层协议,用UDP进行传输,不是用时最短的,但一定是路由最少的。
OSPF开放最短路径优先协议
OSPF是使用分布式链路状态路由算法的代表,通过将本路由器相邻的所有路由器链路状态(就是和哪写路由器相邻还有距离)通过洪范法发送给所有其他路由,而让所有路由知道全网一致的整个网络结构拓扑图,然后通过dijkstra算法算出最短路径,而虽然知道了最短路径,但是每个路由只会存储到下一跳的路径,然后不会定时传输信息,而是当有路由的链路信息发生改变,才会通知其他所有的路由。
并且还会通过划分区域,来扩大范围,交换链路状态信息的范围局限于该区域内。
优点:因为只交换相邻链路信息,所以网络规模无直接关系; 不会有坏消息传得慢的问题
是网络层协议,通过IP数据报传输。
域间路由选择协议
边界网关协议BGP
就是每个AS之间的网关之间的传输,这比较困难,所以只能找到较好的路由,通过每个AS都有一个BGP代言人,然后各个BGP代言人之间交换路由信息。BGP工作在应用层,当交换信息要先建立TCP连接,交换的信息就是要达到某个网络需要经过的一系列AS。
IP组播(多播)
应用于电视机点播这种多媒体应用。组播用于UDP,通过源地址发送单个分组给组播地址,网络通过把这个分组的副本投递给该组的每一个主机,大大减轻了网络的负载和发送者负担。
组播地址:是一个D类格式地址,尽最大努力交付即不提供可靠交付。
IGMP因特网组管理协议:让路由器知道组播组成员信息
移动IP
移动节点以固定的网络IP地址实现跨越不同网段的漫游功能,并保证基于网络IP的网络权限在漫游过程中不发生任何改变。所以通过一个本地代理来维护当前节点位置信息,从而实现连接。
网络层设备
路由器:一组有多个输入/输出端口的专用计算机,任务是连接不同的网络并完成路由转发。
结构上分为路由选择和分组转发。路由选择:就是根据所选的路由选择协议构造路由表,并交换数据从而维护路由表。而分组交换:就是处理通过路由器的数据流,进行转发表查询,转发和相关队列管理和任务调度。
路由表:包含了每一个目的主机网络IP地址,下一跳的IP地址
转发表:仅仅包含目的地址以及分组下一跳接收者地址。
5.传输层
传输层提供应用进程之间逻辑通信,而不是网络层的主机之间的通信,他是面向通信的最高层,也是用户功能中最低层,并且对收到的报文进行差错检测(首部和数据),并提供TCP和UDP两种不同协议。
复用:发送方不同进程都可用同一传输层协议传送数据
分用:接收方传输层在剥去报文首部能把数据正确交付到应用进程
端口:端口其实就是应用层中进程和下方的传输层的数据运输的通道,相当于进程的地址,传输层通过端口可以找到对应的进程。
端口号:进程的标识,只具有本地意义,因特网中的不同计算机端口号没有联系。分为:服务器端口号和客户端端口号
套接字:就是ip地址+端口号,唯一标识一台主机上的一个应用进程。
UDP协议
UDP仅在IP数据报上增加了复用分用和差错检测,是不可靠传输。
优点:1.无需建立连接,就不会有连接时延。
2.分组首部开销小
3.能更好控制发送数据和发送时间,因为没有拥塞控制,会有丢失但速度稳定
4.支持一对一,一对多,多对一
不保证可靠交付,但其可靠性可以依赖应用层完成。
UDP面向报文,这个UDP报文在传输层添加首部就交给IP层了,一次只发送一个报文,不拆分也不合并,所以应用程序要合理设计报文的大小。
根据首部中的目的端口上交给对应应用进程,如果端口号不正确,应用进程就丢弃该报文,并由ICMP发送端口不可达差错报文给发送方。
UDP校验还要校验首部和数据。
TCP协议
特点:1.面向连接的传输层协议
2.TCP连接只有两个端点
3.可靠交付服务,不丢失不重复无差错有序
4.提供全双工通信,两边可以随时发送,所以有缓冲区
5.面向 字节 流,而且发送长度根据接收方窗口值和拥塞程度决定。
TCP报文段:由首部和数据组成,数据单元是报文段,作用是运载数据,建立连接释放连接和应答。
TCP连接管理
TCP连接有三个阶段:连接建立,数据传送,连接释放。连接的两端是套接字(两个端点),并且采用客户/服务器方式(主动建立连接的是客户机,被动等待连接的是服务器)
TCP连接:三次握手
第一次:客户机向服务器发送请求报文段:同步位SYN=1,初始序号seq=x,不携带数据但是消耗一个序号。
第二次:服务器接收到后,若同意连接,则向客户机发送确认,同步位SYN和ACK=1,确认号ack=x+1,自己初始序列号seq=y,并且为该连接分配缓存和变量。
第三次:客户机收到确认,还要发送确认给服务器,并且分配缓存和变量,ACK=1,ack=y+1,seq=x+1.
这之后双方就可以开始全双工通信,要注意服务器第二次就分配资源,而客户机第三次才分配,这使得服务器容易受到SYN泛洪攻击。
TCP连接的释放:四次握手
第一次:客户机发送释放连接的请求给服务器,客户机到服务器到通信链路不能再传输了。
第二次:服务器接收到释放报文段然后发送确认,此时客户机到服务器这个方向的连接释放了,但是服务器仍然可以发送信息给客户机。
第三次:当服务器发送完所有数据,就发送给客户机TCP释放连接通知。
第四次:客户机接收到连接释放报文段后,发出确认给服务器,并且等待计时器最长报文段寿命,才进入连接关闭状态。
TCP可靠传输
TCP校验与UDP校验一致
序号:TCP首部的序号字段用来保证数能有序提交给应用层,数据流中每个字节都对应一个首部的序号,序号建立再传送的字节流上,而不是报文段。
确认:TCP首部确认号就是接收方希望发送方发送的报文段的首个序号,一个报文段包含了几个字节,而每个字节对应一个序号,但是这个确认仍然是对上一条接收到的报文段的; 注意:接收方使用累计确认,就是只确认数据流中至第一个丢失字节为止的字节。比如ABCD三个报文段,来了A和C,那么只发送B报文段的首序号。
重传:1.超时:也就是在计时器时间内还没有接收到确认,就会重传。
2.冗余ACK:就是接收方发现失序报文段,然后告诉发送方,让发送方重传。比如发送方发送12345,然后接收方只接收到1345,此时报文段是失序的,所以接收方发送3个对1报文段的冗余确认ACK,发送方当接收到连续三个1的确认,就知道接收方需要2的报文段了。
TCP流量控制
用于消除接收方缓存区溢出的可能性
通过滑动窗口来实现,但是和数据链路层又不同。
接收方有一个接收窗口rwnd,每次发送确认给发送方,都会在首部表明rwnd的值,所以rwnd是可以动态变化的,此rwnd就会限制发送方的传输速率。
发送方会根据网络拥塞程度有一个拥塞窗口cwnd,这个值根据网络拥塞程度改变
而发送方注入报文的速率取rwnd和cwnd的最小值。
TCP拥塞控制
流量控制是点对点的通信量控制,但是拥塞控制是整个全局性的网络能承载的现有网络负荷。
拥塞控制四种算法:
慢开始和拥塞避免(相辅相成)
慢开始算法:
就是一开始拥塞窗口cwnd很小只有1,那么注入速率必须比1小,然后每次收到确认就将cwnd翻倍,这样可以在一开始有效防止网络拥塞。
拥塞避免算法:
拥塞避免算法就是cwnd不再是翻倍,而是每次收到确认只加1,这样速度比慢开始算法要慢非常多。
何时使用:
会有一个动态变化的阈值ssthresh,当cwnd<ssthresh用慢开始,当cwnd>ssthresh用拥塞避免,当cwnd==ssthresh两个算法都可以用。
所以,当网络出现拥塞,系统就会将ssthresh设置为当前cwnd的一半,然后让cwnd=1,重新开始慢开始算法。
快重传和快恢复
快重传:
发送方连续收到三个重复的ACK报文,则直接重传对方尚未收到的报文段。
快恢复:
当发送方连续收到三个重复ACK报文,就表示网络比较拥塞了,所以同样将ssthresh设置为cwnd的一半,但是不同之处在于,他认为网络没有严重拥塞,所以再让cwnd=ssthresh,然后使用拥塞避免算法,所以cwnd不再从1开始了,所以很快恢复了。
6.应用层
客户/服务器模型:服务器处于接受请求状态,并不知道客户机程序地址;但是客户机需要知道服务器地址,并发送请求。常见的有web,FTP,远程登陆,电子邮箱
特点:网络中各个计算机地位不平等,服务器可以通过权限管理客户机目的
客户机相互不通信
可拓展性不佳,因为服务器能支持客户机有限
P2P模型:就是每台计算机都是对等关系的,既可以称为服务器,也可以成为客户机,互相请求服务和提供服务,所以从本质上还是客户/服务器模式,只是不再固定了。
优点:减轻服务器压力; 各个计算机可以共享文档; 可拓展性好; 网络健壮性强
缺点:获取服务同时还要给别的节点提供服务,占有较多内存,影响速度
域名系统
因特网使用的特定命名系统(就是我们常用的网站)
层次域名空间:就是分层的命名方式,比如www.cskaoyan.com ,com是顶级域名,cskaoyan是二级域名,www是三级域名。顶级域名中每个域名都表不同含义
域名服务器:就是将域名转换为ip地址的服务器,每个域名服务器负责一个区,一个区中节点连通,而每个域名服务器还必须能连通别的区,当自己无法转换域名就给别的区的域名服务器转换。
1根域名服务器:知道所有顶级域名服务器,并且告诉本地域名服务器要找哪个顶级域名服务器
2顶级域名服务器:管理所有在该服务器注册的所有二级域名并给出回答
3授权域名服务器,每台主机都要再此登记
4本地域名服务器:每个因特网服务提供者都有一个。
域名解析过程:正向解析:域名转换为IP地址; 反向解析:IP地址转换为域名
通过主机向本地域名服务器发送请求,本地域名服务器向根域名服务器请求。
分为递归查询和迭代查询,一般都是结合使用
文件传输协议FTP
FTP工作原理:
FTP提供交互式访问,允许客户对文件有存取权限,适合在任意计算机间传送文件。
功能:不同种类系统文件传输; 提供用户对FTP服务器上文件管理能力; 以匿名FTP方式提供公用文件共享能力。
组成:主进程负责接收请求; 从属进程负责处理请求
是基于TCP可靠传输的,整个会话期间保留用户状态信息。
控制连接与数据连接
控制连接:端口21;传输控制信息,客户机通过这样控制服务器端控制进程
数据连接:端口20;就是用来在客户端和服务器端建立数据连接才可以传输数据,分为PORT主动模式和PASV被动模式
电子邮件
电子邮件系统组成
是一种异步通信方式,不需要双方在场。每一个用户都会有用户代理(负责撰写显示和邮件处理的功能)和邮件服务器(相当于邮箱)
协议有SMTP,POP3等
电子邮件格式
收件人邮箱名@邮箱所在主机域名
MIME多用途网际邮件扩充:扩增加邮件主题结构,可以传其他文字
SMTP
简单邮件传输协议:可靠且有效的电子邮件传输协议,端口号为25,TCP连接
POP3
邮局协议:用户代理向邮件服务器请求“拉”取用户邮箱中的邮件
IMAP
因特网报文存取协议
万维网
一个分布式,联机式的信息存储窗口。
万维网内核三标准:
1.URL对因特网得到资源的位置和访问方法的简介表示<协议>://<主机>:<端口>/<路径>
协议指用什么协议获取文档,主机代表域名
超文本传输协议HTTP
定义了浏览器怎么向万维网服务器请求文档,和服务器怎么把文档传送给浏览器
HTTP是基于TCP的,所以首先用户点击链接以后,通过域名找到服务器IP地址,然后发送链接请求,当连接以后,浏览器发送web页面的HTTP请求,服务器收到请求构建页面,再通过HTTP返回给浏览器。
特点:HTTP协议是基于TCP的,所以HTTP本身没有连接,并且没有状态,无论第几次点击链接,都和第一次一样连接并相应。