计算机网络 - 课程笔记
基本概念
以太网帧格式
类型:0800是ipv4,86DD是ipv6,0806是ARP帧,8100是IEEE 802.1Q帧
ip报文格式
首部长度单位是4字节。
标志中:第一位未使用,值为0;第二位称为DF(不分片),值为1时不允许分片;第三位称为MF(更多分片),值为1时表示有更多分片需要发送。
协议:6是tcp协议、17(0x11)是udp协议、1是icmp协议、2是igmp协议。
tcp报文格式
161端口是snmp
知名端口(Well-Known Ports)的范围是0到1023。通常情况下,客户端会使用一个大于知名端口的临时端口与服务器建立连接,而服务器则使用一个知名端口监听客户端的连接请求。
udp报文格式
网络传输技术:广播和单播,其中广播中一种特殊情况是组播(一部分接收)。
网络分为多个层次。
层次之间的上传下达通过接口来完成,通过接口,下一层可以向上一层提供相应的服务。
协议是通讯双方在同一个层次里面,针对同一个数据处理的时候,需要遵循的标准。协议的三要素:语法、语义、时序。语法定义协议的结构是怎么样的;语义表达在数据处理中间需要采取的方法或操作,也可以说语义是一种命令;时序是指在数据处理时所要遵循的顺序。
协议的封装。是指上层的协议数据被整个封装在下层协议的一部分。
OSI七层参考模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
其中物理层、数据链路层、网络层构成了整个通讯子网;上面的三层是与应用关联的,也被称为资源子网;传输层则是介于这上下层之间,可以说是资源子网的最底层,或通信子网的最高层。
物理层用于完成物理bit流的传输,所以单位是bit。
数据链路层用于解决一条链路上,两个端点之间的可靠传输。确保可靠性主要从两个方面进行解决,一个是从数据处理上确保可靠,一个是在信道传输的过程中确保可靠。数据链路层是一个个数据块进行处理的,这里称为数据帧,所以数据链路层的单位是帧。
网络层用于从局域网的环境里面,走向广域网的环境。需要解决的问题是从众多路径中,找出最优的路径进行转发,因此网络层的作用就是路由选择。单位是数据分组,或称为数据包。
传输层也是用于提供端到端的可靠传输,不过它是完成广域网环境下的可靠传输。单位是一个报文段。
会话层用于完成一个节点的会话管理。
表示层用于进行数据结构的规范化。
应用层则是根据不同的应用选择不同的协议,来满足用户不同的需求。
TCP/IP四层模型,应用层、传输层、网络层(网络互联层)、数据链路层(主机到网络层)。
主机到网络层是将OSI模型中的物理层和数据链路层合在一起。这样就可以不用管局域网是怎么组建的,只提供接口,让底层自己构建,然后接入到网络互联层即可,使得兼容性很
强。
TCP/IP模型去掉了表示层和会话层。
应用层同样提供了很强的兼容性,让其自己构建,然后通过接口接入到传输层即可。
所以TCP/IP模型主要的核心就在于传输层和网络层。
物理层
带宽:信号占据的频率范围。
信号传输速率:单位时间里传送信号波形的个数,单位为波特。
数据传输率:比特率,单位时间里传送二进制数据的位数,单位b/s、Kb/s、Mb/s,简写为bps、Kbps、Mbps。
信道容量:一个信道传输数字信号的能力,以数据传输率为指标,即信道所能支持的最大数据传输率。
Nyquist定理中,离散级数N通常以N级数字信号给出,如使用4级数字信号。
数据传输率的计算,在理想信道(无噪声信道)的情况下,使用Nyquist定理计算,在有噪声情况下,使用香农定理计算。
数据链路层
数据成帧(组帧)是为了提高传输效率和差错控制等。
成帧方法有字符计数法、字符填充的首位定界符法、零比特填充的首位定界符法、违规编码法。
字符计数法:在帧头部用一个字段表明帧内字符数。
字符填充的首位定界符法:用特定字符来标识帧的开始和结束,控制字符SOH放在帧前面,控制字符EOT放在帧后面,信息位中的特殊字符在前面添加一个转义字符ESC来区分。
零比特填充的首位定界符法:用01111110来标识帧的开始和结束,编码时在信息位中每遇到5个1就加上一个0,从而防止信息位中出现01111110,解码时遇到5个1就删去后面的一个0.
物理层违规编码法:如用"高-高"电平或"低-低"电平来定界帧的起始和终止。
CRC循环冗余校验码,在原始码串(数据帧)后面加上CRC,用来校验传输中是否出错。
用生成多项式确定位串,在原始码流后面补r个的0,其中r是生成多项式最高次数。
用补0后码流的高位异或位串,重复进行,直到得到余数长度小于位串(一般是位串长度-1),这个余数就是CRC。
例如生成多项式是G(x)=x4+x2+x+1,最高次数是4,则需要在原始码流后补4个0。位串的确定方法,看有x的几次方,有0次方、一次方、二次方、四次方,没有三次方,用二进制表示,存在的位都为1,所以应该是10111。
在流量控制里,主要有3个协议:停等协议、连续ARQ(自动请求重发)协议、滑动窗口协议
停等协议:发送方每发一帧,接收方都回复一个应答,然后发送方才发下一帧。显然这样效率很低,但是确实解决了发送和接收方通信能力的平衡问题。如果数据帧丢失了,接收方不给应答,发送方就要超时重发;如果应答帧丢失了,发送方也要超时重发。因为每发送一个帧就停止并等待,因此用1bit编号就够了。
连续ARQ协议:连续发送数据帧,不停下来等待,当一个帧的超时时间到了,仍然没有收到它的应答,则重新从这个帧开始发起(回退N)。接收端收到坏帧时,直接丢弃它和之后的帧,让发送方超时并且从这个帧开始重发。
滑动窗口协议:是一个停等和连续ARQ的折中,发送者和接收者都有一个窗口。
发送窗口:发送方发出一个帧后设置一个计时器,如果收到确认帧则发送窗口向后滑动一个位置,如果超时则重新发送该帧。
接收窗口:每收到一个帧后,接收窗口就向后滑动一个位置并返回确认帧。
根据接收窗口的大小,又可以分为两个协议:
接收窗口大小为1时,是回退N协议。一旦接收到错误帧时,就丢弃该帧和后续帧,让发送方超时并且从该帧开始重发。
接收窗口大于1时,是选择重传协议。继续接收错误帧的后续帧,但不提交给网络层,直到收到该帧后再按顺序提交。发送方在一个帧超时后也只重发该帧。
信道利用率是发送方的发送时间除以整个发送周期。
停等协议一次只发一帧,所以是发送一帧的时间除以发送周期。
回退N协议一次发窗口大小个帧,所以是发送这些帧的时间除以发送周期。一般给出帧的序号为n位,则窗口大小=2^n-1
选择重传协议也一次发送窗口大小个帧,帧的序号为n位时,窗口大小=2^(n-1)
CSMA载波监听多路访问协议,在发送之前先监听信道上是否有别人在传输,如果有就等待一段时间后再发送。
CSMA分为三种形式:
CSMA中因为大家都等到信道空闲就立刻传输,所以很有可能会冲突。
CSMA/CD带冲突检测的CSMA,是实际使用的协议。在发送之前先监听信道。如果介质空闲,则马上传输。如果介质正在忙,则一直监听到信道空闲,立刻传输。如果检测到冲突,那么立刻停止传输,等待一个随机的时间,之后再重复上面的步骤。
曼彻斯特编码和差分曼彻斯特编码,在一个bit中间的时刻做一个跳变,会使得发送和接收双发的同步变得非常容易,而且在识别的时候也不容易出错。
注意曼彻斯特编码的规则是:1前高后低,0前低后高。
而差分曼彻斯特编码的规则是:0变1不变。
以太网协议,目的MAC、源MAC、类型、数据段。注意以太网协议中目的地址在前,而IP和TCP中都是源地址(端口)在前。
源地址后两个字节中如果是大于0600H的话,则是指类型,是以太网格式。小于0600H的话是IEEE802.3格式。
数据帧大小最小是64字节,必须要限制数据帧的大小,因为如果太小的话,数据发送时间小于往返传播时延,发送方就可能会监听不到冲突。
网络设备
网络层
数据报子网,每一个分组独立地进行路由选择,不需要连接。
虚电路子网,需要建立连接,然后在连接上进行数据的传输
Ip地址划分,网络号和主机号
A类地址:从1到127,以0起始
B类地址:从128到191,以10起始
C类地址:从192到223,以110起始
D类地址:从224到239,以1110起始
E类地址:从240到255,以1111起始
子网划分
通常主机地址够用的话,对子网号的全0和全1也保留。
所以下面例子中,B类地址的网络号有16位,子网掩码共22位,则子网号有6位,有26-2个子网可用。
计算主机地址数时,因为网络号(全0)与广播地址(全1)不能作为主机地址使用,因此最多可容纳的主机数量就要减去
2。
问几个ip地址使用同一条出境线路时能否被聚合,聚合到哪个地址,就是看它们相同bit的最大位。
Ip报文格式
协议部分,如果十进制是6则上层是TCP协议,十进制是17则上层是UDP协议。
分段标识DF,DF=0可以分段,DF=1不可以分段。
传输层
Ip数据报的总长度部分是16位,所以最大字节数是2^16-1=65535。
Ip数据报有20字节的固定头部,tcp数据报有20字节的固定头部,因此tcp的payload字段的最大大小为65535-40=65495字节
Udp格式
TCP协议是面向字节的协议
注意TCP头部长度字段的单位是4字节。
三次握手建立连接
四次握手释放连接
流量控制,拥塞控制