0. OSI七层协议模型 TCP/IP四层协议 五层协议

OSI的协议是由专家指定的标准,但由于制定标准周期太长、过分复杂、缺乏实际经验等原因,基于TCP/IP的互联网抢先大范围运行。学习计算机网络时,我们采取折中的办法,采用一种五层协议体系结构,自上而下/自下而上地进行学习。
1. 应用层(application layer)
Task:通过应用进程间交互完成特定的网络应用,定义了应用进程间通信交互的规则,因此不同的网络应用需要不同的应用层协议(DNS、HTTP、SMTP)。
数据单元:报文
域名系统DNS
作为域名和IP地址映射的一个分布式数据库
HTTP协议
网络协议,最初是提供一种收发HTML页面的方法
2. 运输层(transport layer)
Task:向两台主机之间通信提供通用的数据传输服务,不针对特定的网络应用,具有复用和分用的功能。
- 复用:多个应用层进程可同时使用下方运输层服务
- 分用:运输层收到消息可分发交付上方应用层相应进程
数据单元:报文段
主要是用两种协议TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)
2.1. TCP协议
Main:提供面向连接的,可靠的数据传输服务
- 面向连接(三次握手、四次挥手)
- 每一条TCP有两个端点,一对一
- 可靠交付,无差错、不丢失、无重复、按序到达
- 提供全双工通信,双发可以发送/接受数据
- 面向字节流:虽然程序与TCP一次交互一个chunk,但是TCP叫数据看成一串无结构的字节流
2.2. UDP协议
Main:提供无连接的,不保证数据传输可靠性
- 无连接
- 尽最大努力交付,不需要维持复杂的链接状态
- 面向报文
- 无拥塞控制机制
- 支持一对一,一对多,多对多的交互通信
3. 网络层(network layer)
Task:为分组交换网上的不同主机提供通信服务,通过路由选择算法,选择最适当的路径
数据单元:数据报
一般的,数据链路层解决统一网络内节点的通信,网络层主要解决不同子网的通信
4. 数据链路层(data link layer)
Task:通过各种控制协议,将有差错的物理信道变成无差错的能可靠传输数据帧的数据链路
该层通常分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层
- MAC: 解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制
- LLC:建立和维护网络连接,执行差错校验、流量控制和链路控制
数据单元:帧
5. 物理层(physical layer)
Task:实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽具体传输介质和物理设备的差别
