最近看了《图解TCP/IP》这本书,于是将这本书中的精髓做一个归总,以便之后查阅。
协议就是计算机与计算机之间通过网络实现通信事先达成的一种“约定”。这种“约定”使那些由不同厂商的设备、不同的CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。反之,如果使用的协议不同,就无法通信。
Windows操作系统的平板电脑和Mac操作系统的一体机电脑,虽然操作系统不同,硬件组成不同,但是只要事先达成一个详细的约定,并遵循这一约定进行处理方可建立通信。
协议分层就如同计算机软件中的模块化开发,OSI参考模型的建议是比较理想化的一种分层模型。
- OSI参考模型中定义了每一层的“作用”
- 定义每一层作用的是“协议”
- “协议”是约定,其具体内容为“规范”
- 我们日常所使用的就是遵循各个协议具体“规范”的产品和通信手段
信号和介质
比特流与电子信号之间的切换
最低的一层。物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。简单的说,物理层确保原始的数据可在各种物理媒体上传输。局域网与广域网皆属第1、2层。
提供传输媒体及互连设备,为数据传输提供可靠的环境。
数据帧与比特流之间的转换
第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。
路径选择、路由及逻辑寻址
第三层,介于传输层和数据链路层之间,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。
管理两个节点之间的数据传输
关键层次之一,TCP/UDP运行在传输层
复用和分用功能。传输层在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。传输层在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。传输层的一些协议是面向链接的,这就意味着传输层能保持对分段的跟踪,并且重传那些失败的分段。
建立和维持会话,并能使会话获得同步。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。
数据的压缩、解压、加密、解密
语法转换、语法协商、连接管理
公共语言,以便能进行互操作。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。与第五层提供透明的数据运输不同,表示层是处理所有与数据表示及运输有关的问题,包括转换、加密和压缩。每台计算机可能有它自己的表示数据的内部方法,例如,ASCII码与EBCDIC码,所以需要表示层协定来保证不同的计算机可以彼此理解。
但是数据传送只是手段而不是目的,最终是要实现对数据的使用.由于各种系统对数据的定义并不完全相同,最易明白的例子是键盘,其上的某些键的含义在许多系统中都有差异.这自然给利用其它系统的数据造成了障碍.表示层和应用层就担负了消除这种障碍的任务.
直接为应用进程提供应用服务
每个应用有不同的应用协议
网络应用服务。应用层也向表示层发出请求。
至上而下和至下而上
附加首部信息
封装和解封装
- 发送方从模型的第七层到第一层至上而下传输数据,接收方则至下而上从第一层到第七层传输数据
- 发送端发送信息的过程中,每个分层上,在处理上一层传过来的数据时,都会在数据中附上当前协议需要包含的“首部信息”
- 接收端对收到的数据进行数据“首部”与“内容”的分离,再转发给上一分层,并最终将发送端的数据恢复为原装。
协议“簇”
协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
TCP/IP分层模型将OSI参考模型的应用程、表示层、会话层统一归为应用层
TCP/IP更强调“在计算机上实现协议应该开发哪种程序
打败了OSI模型,成为了事实上的标准。
帧和数据包都是数据的传输形式。
- 数据链路层:Frame(帧)
- 网络层:Packet(数据包)
- 传输层:
- TCP的叫做Segment(数据段)
- UDP的叫做Datagram(数据报)
应用层:Message(消息)
- Frame(帧),工作在二层,数据链路层传输的是数据帧,包含数据包,并且增加相应MAC地址与二层信息;
Packet(数据包),工作在三层,网络层传输的是数据包,包含数据报文,并且增加传输使用的IP地址等三层信息。
Packet(数据包):封装的基本单元,它穿越网络层和数据链路层的分解面。通常一个Packet映射成一个Frame,但也有例外:即当数据链路层执行拆分或将几个Packet合成一个Frame的时候。
通信过程数据结构变化大致如下:
加入端口信息
TCP\UDP协议
无法确定哪个应用程序要接收这个包,所以需要在数据包中加入端口信息。
应用进程 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP |
---|---|---|---|---|---|---|---|
端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 |
关于TCP/UDP等协议的异同点将在另一篇博客中专门介绍
IP数据报
IP协议
源IP地址、目标IP地址
MAC֡
LLC֡
此篇博客并没有讲解各层具体的协议,这些内容将在下一篇博客中详细说明。
参考资料:
――――――――――――――――――――――――――――――――――――――――――――
版权声明:本文为吴恺的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://www.cnblogs.com/zaijianba/p/11520397.html
如有不足之处,欢迎指正!
来源:博客园
作者:ChooseTodo
链接:https://www.cnblogs.com/zaijianba/p/11520397.html