华为网络学习笔记(一) 网络通信协议

华为网络学习笔记(一)

一、网络通信协议

通讯协议:通讯协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,它也叫做链路控制规程。
一般的关注于逻辑数据关系的协议通常被称为上层协议,而关注于物理数据流的协议称为底层协议。
TCP/IP:传输控制通讯协议。通常说TCP/IP是Internet协议簇,不单单是TCP/IP。包括TCP、IP、UDP、ICMP、RIP、TELNET、SMTP、ARP、TFTP等许多协议,这些协议在一起称为TCP/IP协议。
IP:国际互联网通讯协议。IP为主机提供一种无连接、不可靠的、尽力而为的数据报传输服务。在Internet上每一台机器都要有一个独一无二的IP地址。
局域网标准协议:IEEE 802(以太网)
广域网标准协议:PPP(华为) HDLC(思科)

二、分层模型-OSI

华为网络学习笔记(一) 网络通信协议
物理层:光纤、网线等看的见摸得着的线缆。以比特流为单位进行数据传输。规定了电平、速度和电缆针脚。
数据链路层:负责一段链路上数据的转发。将比特组成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。
网络层:提供逻辑地址,供路由器确定路径。不同网络之间进行通信要通过网络层来实现。
传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。建立一个端到端的连接。
会话层:负责建立、管理和终止表示层实体之间的通信回话。该层的通信由不同设备中的应用程序之间的服务请求和相应组成。
表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。比如文档的Excel格式、Word格式等都是通过表示层来实现。
应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。

三、分层模型-TCP/IP

华为网络学习笔记(一) 网络通信协议
TCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间也具备非常紧密的协作关系。TCP/IP是美国国防部提出的标准模型,具有军事化背景,在OSI之间产生。
TCP/IP模型将网络分为四层。TCP/IP模型不但关注底层物理介质,主要关注终端之间的逻辑数据流转发。TCP/IP模型的核心是网络层和传输层,网络层解决网络之间的逻辑转发问题,传输层保证源端口到目的端口之间的可靠传输。最上层的应用层通过各种协议向终端用户提供业务应用。
华为网络学习笔记(一) 网络通信协议

四、数据封装

华为网络学习笔记(一) 网络通信协议
应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段);数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包);数据包被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧);最后,帧被转换为比特,通过网络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。
Segment:数据段
packet:数据包
Frame:数据帧
Bit;比特流

五、数据帧

以太网上使用两种标准帧格式。第一种是上世纪80年代初提出的DIX v2格式,即Ethernet II帧格式。Ethernet II后来被IEEE 802标准接纳,并写进了IEEE 802.3x-1997的3.2.6节。第二种是1983年提出的IEEE 802.3格式。这两种格式的主要区别在于Ethernet II格式中包含一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理,IEEE 802.3格式中,同样的位置是长度字段。
不同的Type字段值可以用来区别这两种帧的类型,当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE 802.3格式。当Type字段值大于等于1536 (或者十六进制的0x0600)时,帧使用的是Ethernet II格式。以太网中大多数的数据帧使用的是Ethernet II格式。
以太帧中还包括源和目的MAC地址,分别代表发送者的MAC和接收者的MAC,此外还有帧校验序列字段,用于检验传输过程中帧的完整性。

六、网络通信类型

单播
华为网络学习笔记(一) 网络通信协议局域网上的帧可以通过三种方式发送。第一种是单播,指从单一的源端发送到单一的目的端。每个主机接口由一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。

广播
华为网络学习笔记(一) 网络通信协议
第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF,所有收到该广播帧的主机都要接收并处理这个帧。
广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。
当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

组播
华为网络学习笔记(一) 网络通信协议
第三种发送方式为组播,组播比广播更加高效。组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。
组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。
当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。

七、数据帧的发送和接收

华为网络学习笔记(一) 网络通信协议
帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。
如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理。本例中,Type字段的值为0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉。