目录
- 概述
- 物理层
- 数据链路层
- 网络层 (1) 基础知识
- 网络层 (2) IP地址设计和用尽问题
- 网络层 (3) 网络层分组的传输流程
- 网络层 (4) 网络层多播等应用
- 运输层 (1) 可靠传输和TCP/UDP
- 运输层 (2) 拥塞控制和握手挥手
- 应用层 (1) HTTP和万维网
分层下的任务
链路和数据链路:链路是是从节点到节点的物理链路,而数据链路是把传输数据的协议硬件软件实现了。因为传输数据不光有硬件链路就可以的。所以它的职责就是在物理层上负责传输协议的软件实现,而网络传输非常复杂,不肯能所有的功能都在它上面实现,所以又分了网络层、传输层、应用层等。各自负责不同的职责,共同组成可以在物理链路上传输数据的协议簇。网络层传递下来的ip数据包,直接传输了,不用关心在物理链路上怎么传输的,点对点还是广播传输。
主要研究的问题
主要研究局域网,它没有使用路由器转发,它的上层网络成讨论的是通过路由器转发到另一个网络的情况。局域网属于数据链路层的范围。
传输数据的格式
数据链路上传输的是帧,ip数据包封装成帧传递。过程设计三个问题:
- 封装成帧:在一段数据添加首部和尾部,判断开始和结束,并添加了很多控制信息。如果只有开始没有结尾,那么这段帧是有问题,直接丢弃。开始使用二进制0000001表示,结束使用二进制00000100表示。
- 透明传输:当传输的数据中有和开始结束标记相同的标记时,会出现问题。这时候就要在数据中加入转义字符,二进制是00011011,在接收到数据后需要删除这个转义符,如果数据中有转义符,再在前面加上转义符。透明是指看不到它的存在,但是却实际在使用它完成任务。不管上层抛下来什么数据,都可以通过增加转义正确的传输过去。
- 差错检测:实际传输中会产生差错,一般是用循环冗余的方式检测传递数据的错误与否,不对就不就收,抛弃它。数据链路并不负责可靠传递的服务,有传输层提供。原来OSI时链路层需要确认和重传等功能,但现在物理线路的质量大大提高了,所以对于质量不好的链路,数据链路层还是提供可靠的服务的。相反,质量好的链路就又传输层TCP完成。
各种通信协议
点对点通信
一对一的通信,最常用的是PPP协议。通信较差时,HDLC协议提供了可靠的传输,但现在很少使用了,简单的PPP协议是使用最广泛的。IETF设计互联网体系时把最复杂的放到了TCP中,IP协议稍微简单,所以链路层更不需要多复杂了。同时还需要支持多种网层的协议,还要支持多种链路的类型,例如串行的,并行的。还要对差错的帧进行丢弃。PPP只支持全双工的网络。
广播通信
一对多的广播通信,必须使用共享信道协议来协调数据的发送。
局域网
使用广播通信,主机可以共享局域网上的其他软件和硬件资源。局域网的拓扑结构有多种,星型/环形/总线型,总线型以以太网最为出名,现在以太网已经成为局域网的同义词。共享信道就需要考虑如何使众多用户可以方便的共享媒体的资源,有两种方法,第一种就是静态划分,比如物理层的频分,时分等,但这种划分代价比较高。第二种就是随机接入的控制。不事先分配资源。不控制用户的数据发送,先检测是否被占用,如果没有被占用,那么就发送发生碰撞就发送失败。以太网对随机接入使用的是CSMA/CD协议。 随着上网用户的剧增,大规模的集成电路的发展,使用集线器的星型结构不但便宜而且可靠,所以总线型被替换成了星型结构。发展出了交换机的全双工的工作模式,不发生碰撞,交换机使用MAC地址寻址发送数据。
网路适配器
计算机与外界局域网链接就是通过适配器进行的,简称网卡。由于数据在计算机中是并行的,而在网络中是串行的,所以适配器还要做转化操作,计算机的硬件MAC地址就存储在适配器里。
本文使用 mdnice 排版