计算机网络-考研(二)
三.网络层
网络层通过路由器将异构网络互联,实现了把互联网后的计算机网络视为一个虚拟的IP网络。
路由器
路由器选择和分组转发,前者是通过路由选择算法来构造一个路由表,后者是接收到数据后通过查看路由表和数据报信息来转发到别的端口。
拥塞控制:
拥塞:出现过量的分组引起网络性能下降的现象。
拥塞控制:获取拥塞信息,从而避免由于拥塞出现的分组丢失,严重拥塞和产生死锁的现象,这是一个全局性的过程,这是与流量控制的区别。
路由算法:
静态路由算法:人工修改信息
动态路由算法:距离-向量路由算法:每个节点更新自己路由选择表时将自己路由选择表给相邻的节点,然后每个节点根据收到的路由选择表,更新自己的路由选择表:就是加入没有发现的节点,更新最短路径。
链路状态路由算法:就是首先测试所有邻节点的状态,定期将自己链路状态传给其他所有节点,所以每个节点都有整个总体节点的信息,所以就可以通过最短路径算法算出到每个节点的最短路径,不用依靠邻近的节点。
层次路由:解决网络规模很大,路由很多的问题。通过把因特网分为多个自治系统,自治系统内部有各自路由选择协议,而自治系统之间由两个系统之间的协议来屏蔽差异。
IPV4
IPV4 32位:定义数据传送的基本单元——IP分组及其确切的数据格式。
IP分片:因为数据链路层最大数据称为MTU,所以网络层的IP数据报不应该大于MTU,而如果大于,则要将一个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地址。
转发表:仅仅包含目的地址以及分组下一跳接收者地址。
四.传输层
传输层提供应用进程之间的逻辑通信,而不是网络层的主机之间的通信,它是面向通信的最高层,也是用户功能中最低层,并且对收到的报文进行差错检测(首部和数据),并提供TCP和UDP两种不同的协议。
复用:发送方不同进程都可用同一传输层协议传送数据。
分用:接收方传输层在剥去报文首部能把数据正确交付到应用进程。
端口:端口其实就是应用层中进程和下方的传输层的数据运输的通道,相当于进程的地址,传输层通过端口可以找到对应的进程。
端口号:进程的标识,只具有本地意义,因特网中的不同计算机端口号没有联系。分为:服务器端口号和客户端端口号
套接字:就是ip地址+端口号,唯一标识一台主机上的一个应用进程。
UDP协议:
UDP仅在IP数据报上增加了复用分用和差错检测,是不可靠传输。
优点:
1.无需建立连接 2.分组首部开销小 3.能更好的控制发送数据和发送时间,因为没有拥塞控制,会有丢失但速度稳定。 4.支持一对一,一对多,多对一。
不保证可靠交付,但其可靠性可以依赖应用层完成。
UDP面向报文,这个UDP报文在传输添加首部就交给IP层了,一次只发送一个报文,不拆分也不合并,所以应用程序要合理设计报文的大小。
根据首部中的目的端口上交给对应应用进程,如果端口号不正确,应用进程就丢弃该报文,并由ICMP发送端口不可达差错报文给发送方。
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开始了,所以很快恢复了。
五.应用层
客户/服务器模型:服务器处于接受请求状态,并不知道客户机程序地址;但是客户机需要知道服务器地址,并发送请求。常见的有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
邮局协议:用户代理向邮件服务器请求“拉”取用户邮箱中的邮件
IMTP
因特网报文存储协议
万维网
一个分布式,联机式的信息存储窗口。
万维网内核三标准:
URL,HTTP,HTML
URL
URL对因特网得到资源的位置和访问方法的简介表示<协议>://<主机>:<端口>/<路径>
协议指用什么协议获取文档,主机代表域名
超文本传输协议HTTP
定义了浏览器怎么向万维网服务器请求文档,和服务器怎么把文档传送给浏览器
HTTP是基于TCP的,所以首先用户点击链接以后,通过域名找到服务器IP地址,然后发送链接请求,当连接以后,浏览器发送web页面的HTTP请求,服务器收到请求构建页面,再通过HTTP返回给浏览器。
特点:HTTP协议是基于TCP的,所以HTTP本身没有连接,并且没有状态,无论第几次点击链接,都和第一次一样连接并相应。