● 初识计算机网络computer network
1.概念:
简单定义就是一些相互连接的、自治的计算机的集合。
目前对计算机网络的定义是:计算机网络是指把若干台地理位置不同且具有独立功能的计算机,通过通信设备和线路相互连接起来,以实现数据传输和资源共享的一种计算机系统。
2.组成元素:
网络的组成元素主要分为两大类,即网络节点(又称网络单元)和通信链路。网络节点又分为端节点和转接节点。通信链路是指传输信息的信道。
3.拓扑结构
总线型、星状、环状、全互连型和不规则型等。
星状结构的优点是建网容易,易于扩充,控制相对简单。其缺点是属于集中控制,对中心节点的依赖性较大。
层次结构适用于相邻层的通信较多的情况,典型的应用是底层节点解决不了的问题,请求中层计算机解决,中层计算机解决不了的问题,请求顶部的计算机解决。
总线型结构网络简单灵活、可扩展性好、设备投入量少、成本低、安装和使用方便。但在某个站点出现故障时,对整个网站系统的影响较大。特别是由于所有的工作站通信均通过一条共用的总线,所以实时性较差,当节点的通信量增加时,性能会急剧下降。
环状拓扑结构的特点与总线型结构类似,但网络的可靠性对环路则更加依赖。
点对点全连型结构的优点是无须进行路由选择,通信方便。但这种网络的连接复杂,适合在节点数少、距离很近的环境中使用。
4.传播方法
点对点网络:以点对点的连接方法,把各台计算机连接起来的网络。这种传播方法网络的主要拓扑结构有星状、树状、环状、网状。
广播式网络:用一个共同的传播介质把各台计算机连接起来的网络。包括:以同轴电缆连接起来的总线型网络和以无线、微波、卫星方式传播的无线网。
● 数据通信基础知识
1.一个数据通信系统大致可以划分为3个部分,即源系统(发送端、信源)、传输系统(传输网络)和目的系统(接收端、信宿)。
数据是通过信号进行传输的,信号是传输数据的载体。
信号也可分为模拟信号和数字信号。
将数字数据转换为模拟信号的过程称为调制。
将模拟信号转换为数字信号的过程称为解调。
2.通信方法
单工通信:数据信号只能从一个站点传送到另一个站点,即信息流仅沿单方向流动,发送器和接收器是固定的。
半双工通信:数据信号既可以从A传到B,也可以B传到A,但不能在两个方向上同时进行传输。
全双工通信:在同一时刻能够在两站之间双向传输数据信息,相当于把两个反向的单工通信信道组合一起。
光纤在任何时刻都只能单向传输。
● 数据编码
不归零编码:用两个不同的电平表示二进制数0和1.
曼彻斯特编码:从高电平跳到低电平表示1,从低电平跳到高电平表示0.
查分曼彻斯特编码:每个位周期的开始边界有跳变则代表0,无跳变则代表1,与跳变的方向无关。
● 差错控制
数据链路层采用的差错控制方法:
1.检错反馈重发:又称自动请求重发,停-等 ARQ 全部重发 Go-back-N ARQ 选择重传 ARQ
2.自动纠错:检测有错后,确定错位位置,自动纠正。
3.混合方法:前两种结合。
常见的检错码:
奇偶校验码是最常见的一种检错码,工作原理就是在原始数据字节的最高位或最低位增加一位,即奇偶校验位,以保证所传输的每个字符中1的个数为奇数或偶数。奇偶校验只能检测出奇数个位发生的错误。
循环冗余校验编码:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。
校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)*2R,这样C(x)的右边就会空出R位,这就是校验码的位置。通过C(x)*2R除以生成多项式G(x)得到的余数就是校验码。
校验和:在数据处理和数据通信领域中,用于校验目的地一组数据项的和。它通常是以十六进制为数制表示的形式。如果校验和的数值超过十六进制的FF,也就是255. 就要求其补码作为效验和。通常用来在通信中,尤其是远距离通信中保证数据的完整性和准确性。
误码率:Pc = 传错的码元数/传输的码元总数
误比特率:Pb = 传错的比特数/传输的比特总数
吞吐量:单位时间内发送的比特数、字节数或帧数等来表示。
奈奎斯特准则:对于一个带宽为W(单位为Hz)的噪声低通信道,其最高的码元传输速率Bmax为2W,单位为baud。即:
Bmax = 2W(baud)
香农定理:香农定理描述了有限带宽、有随机热噪声信道的最大传输速率与信道带宽、信号噪声功率比之间的关系。
在有随机热噪声的信道上传输数据信号时,信道容量Rmax与信道带宽W,信噪比S/N关系为: Rmax=W*log2(1+S/N)。注意这里的log2是以2为底的对数。
● 网络体系结构
OSI参考模型:
TCP/IP参考模型:
OSI模型有7层,而TCP/IP模型只有4层。他们都有网络层(或者网际层)、传输层和应用层,但是其他的层并不相同。
● 因特网及其应用
DNS使用UDP协议,运行在53号端口。
DNS解析:用户主机从URL中取出域名www.blogfshare.com并传送给本机上的DNS客户端程序,该程序将DNS的查询请求和域名一起送至本地DNS服务器。如果本地DNS服务器上有该主机的记录,就立即将其IP地址返回给发送请求的DNS客户端;如果本地DNS服务器上没有该主机的记录,DNS服务器就会向因特网最顶层的根域名服务器发出查询请求;接下来的查询会沿着com->blogfshare.com的顺序进行,最后在blogfshare.com域的DNS服务器上会查到www.blogfshare.com主机的IP地址,该地址将作为对查询的相应逐级上传,沿着DNS请求走过的路径传送到最初发生DNS请求的客户端。客户端把逐级返回的DNS响应报文中的IP地址取出,由浏览器启动TCP连接与该IP地址所指主机的HTTP服务器进程进行通信。
Telnet通过TCP连接登录到网络的另一台主机上。
邮件服务器需要使用两个不同的协议。一个协议用于发送电子邮件,即SMTP,而另一个协议用于接收电子邮件,即POP。
HTTP和FTP(21端口)同样可以传输文件并具有许多共同点,比如这两个协议都需要TCP协议的支持。但这两个协议也存在重大的区别,最为显著的特点是:FTP使用两个并行的TCP连接来传输文件,一个称为控制连接,另一个称为数据连接。而HTTP的控制信息则是“随路”发送的。
HTTP/1.0和HTTP/1.1都需要TCP(而不是UDP)提供支持。
HTTP/1.0使用非连续连接,HTTP/1.1的默认操作模式则是连续连接。
五类IP地址:
IPv4数据报头格式:
IPv6数据报头格式:
常见的因特网应用和所需要的传输协议:
TCP连接的建立(三次握手)和释放(四次握手)
TCP报文段首部格式:
序号:本报文段所发送的数据的第一个字节的序号。
确认号ack:期待收到对方下一个报文段的第一个数据字节的序号
确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效
同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。
若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。
终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接
还要再发送一次确认是为了,防止已失效的连接请求报文段突然又传到了B,因而产生错误。
已失效的报文段:正常情况下:A发出连接请求,但因为丢失了,故而不能收到B的确认。于是A重新发出请求,然后收到确认,建立连接,数据传输完毕后,释放连接,A发了2个,一个丢掉,一个到达,没有“已失效的报文段”
但是,某种情况下,A的第一个在某个节点滞留了,延误到达,本来这是一个早已失效的报文段,但是在A发送第二个,并且得到B的回应,建立了连接以后,这个报文段竟然到达了,于是B就认为,A又发送了一个新的请求,于是发送确认报文段,同意建立连接,假若没有三次的握手,那么这个连接就建立起来了(有一个请求和一个回应),此时,A收到B的确认,但A知道自己并没有发送建立连接的请求,因为不会理睬B的这个确认,于是呢,A也不会发送任何数据,而B呢却以为新的连接建立了起来,一直等待A发送数据给自己,此时B的资源就被白白浪费了。但是采用三次握手的话,A就不发送确认,那么B由于收不到确认,也就知道并没有要求建立连接。
B收到连接释放报文段后就立即发送确认,然后就进入close-wait状态,此时TCP服务器进程就通知高层应用进程,因而从A到B的连接就释放了。此时是“半关闭”状态。即A不可以发送给B,但是B可以发送给A。
此时,若B没有数据报要发送给A了,其应用进程就通知TCP释放连接,然后发送给A连接释放报文段,并等待确认。
A发送确认后,进入time-wait,注意,此时TCP连接还没有释放掉,然后经过时间等待计时器设置的2MSL后,A才进入到close状态。
为什么要等待呢?
①、为了保证A发送的最后一个ACK报文段能够到达B。即最后这个确认报文段很有可能丢失,那么B会超时重传,然后A再一次确认,同时启动2MSL计时器,如此下去。如果没有等待时间,发送完确认报文段就立即释放连接的话,B就无法重传了(连接已被释放,任何数据都不能出传了),因而也就收不到确认,就无法按照步骤进入CLOSE状态,即必须收到确认才能close。
②、防止“已失效的连接请求报文段”出现在连接中。经过2MSL,那些在这个连接持续的时间内,产生的所有报文段就可以都从网络中消失。即在这个连接释放的过程中会有一些无效的报文段滞留在楼阁结点,但是呢,经过2MSL这些无效报文段就肯定可以发送到目的地,不会滞留在网络中。这样的话,在下一个连接中就不会出现上一个连接遗留下来的请求报文段了。
可以看出:B结束TCP连接的时间比A早一点,因为B收到确认就断开连接了,而A还得等待2MSL.
一个网卡对应一个MAC地址。
后面还有一大堆理论啥的,就不整上来了。 QAQ~~
BY:AloneMonkey