最近一直在看计算机网络方面的知识,一方面下周需要考试不得不看,一方面算是我对网络基础知识的扫盲吧。先从OSI定义的七层协议说起。
OSI标准层 | TCP/IP标准 |
---|---|
应用层 表示层 | 应用层 |
会话层 传输层 | 传输层 |
网络层 | 网络层 |
链路层 | 链路层 |
物理层 | 物理层 |
物理层
物理层包括对传输介质的描述、信号的调制模式和调制方法、传输物理参数。 包括了数据传输的物理链路的创建、维护和拆除。简单地说就是 信号+介质。 物理层的协议包括RS232、FDDI、802.2,3,5等
主要功能
- 采用不同的物理传输技术,但是对上层来说是透明的、屏蔽对上层的影响。一般来说解决包括:铜线、双绞线、光纤、无线等。
- 传输数据,单工、半双工、全双工;串行,并行等,但总的来说为上层提供输出传输的链路。同步、异步传输(ATM)
- RS-232、RJ4、EIA etc.
链路层
主要功能
- 数据封装
在分组网络上,数据应该具有封装、分组的特性,因此数据应封装成一个个独立的数据包发送。每个数据包应该携带有明显的帧头,帧尾(帧定界符)。通过帧定界符来区分多个传输的数据包 - 传输透明性
链路层的传输对上层来说应该是透明的,这意味着上层无论传送何种数据都是不会产生差错,遇到一些特殊的字符(如帧定界符、转义符)应该进行转义,从而不影响底层的分组传输。 - 差错控制
差错控制要是判断数据包在发送过程中是否出现错误、bit反转等情况,当链路层在收到数据包后判断是否产生了传输错误,一旦产生传输错误则直接丢弃包裹。(注意链路层一般不会采用拥塞控制、可靠传输等机制,原因在于上层已经处理了类似的问题,在链路层实际无需再多此一举,在现实的网络中,链路层传输的可靠率很高,误码率低于10−4)差错控制一般采用CRC之类的算法实现数据包错误检查。 - 数据逻辑链路与物理链路
以太网链路层
以太网的链路层一般分为两个子层:逻辑链路控制层(LLC),媒体介质控制层(MAC). MAC主要工作任务是CSMA/CD、差错控制、封装成帧。
PPP协议, PPP协议是一个典型的链路数据传输协议。它的功能包括了: 封装成帧、帧定界、透明传输、差错控制、网络控制、支持多种协议。其中网络控制方面,PPP具有LCP、NCP等在链路和网络层上的配置协议。PPP的工作流程:
CSMA/CD, 单帧或者单个bit在传输时,难免会发生碰撞。CSMA/CD的主要作用是判断是否网络处于碰撞状态,保证带宽的利用率提高。MAC层在发送每一个数据帧的时候,边发边检测,检测是否发生碰撞,一旦碰撞则停止传送。为了检测到碰撞,帧长最小为64个字节(100m)。发生碰撞后采用指数退避。
流程图:
- 以太网扩展
- 集线器
纯粹物理层上的连接器,实际上是一种总线结构的设备,集线器不存在转发数据,数据包在发送时直接从各个端口中同步发出。集线器不具备存储转发的任何功能,必须设备自己做CSMA/CD的能力,集线器将使得机器的平均带宽降低。 - 网桥
网络的能力比集线器上升一步,带有存储转发的能力,并且可以隔离几个总线之间的碰撞,同一个总线内的机器共享带宽,网桥接入的两个总线间的带宽互不影响。网桥拥有自学习的转发表。 - 交换机
交换机比网桥能力进一步,点对点得传输,各个机器的链路速度各不影响。交换机可实现存储转发,VLAN功能。
最后,VPN也是在链路层的一个协议,VPN分为接入VPN,内网VPN,extranet VPN三种。
- 集线器