每种协议都有自己的规则并且都是过程组成的系统,而我们的TCP/IP也是一个协议系统。大多数情况下,我们的计算机已经实现了TCP/IP,当是对于我们搞嵌入式开发的说,掌握TCP/IP知识显得尤为重要。
一、TCP/IP协议系统的职责
1. 把消息分为能有效通过传输介质的可管理的数据块;
2. 负责与网络适配器连接;
3. 寻址,发送端的计算机能定位到接收数据的计算机,同理接收的计算机也能够识别要接收的数据。
4. 可路由,是指数据能够路由到不同子网中目的计算机。
5.差错控制,流量控制和确认;
6.从应用程序中接收到数据并传输到网络;
7.从网络中接收数据并传输到应用程序;
二、OSI模型
为了方便我们了解TCP/IP是如何工作的,这里我们引入一个标准七层模型,这个被称为“开发系统互联(OSI)”模型,是我们的ISO(国际标准组织)为了标准化网络协议,提高网络的户联系,并方便开发人员所做出规范。如下图
下面我们简单介绍一下每个层的任务职责:
1. 物理层:确保原始的数据可在各种物理媒体上传输,将数据转成传输介质上的电子流或模拟脉冲信号,同时能够监控这些数据的传输。
2. 数据链路层:维护子网的逻辑链接并提供与网络适配器相连的接口。
3. 网络层:定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式;即逻辑寻址和路由选择。
4. 传输层:为网络提供了错误控制和数据流控制。
5. 会话层:为客户端的应用程序提供了开启、关闭和管理会话的机制。
6.表示层:为在应用过程之间传送的信息提供表示方法的服务,向上对应用层服务,向下接受来自会话层的服务。
7. 应用层:提供为应用软件而设计的接口,以设置与另一应用软件之间的通信。例如:HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3等。
需要注意的是,OSI模型是一个标准,而不是TCP/IP的实现,在以后学习实现TCP/IP的过程中你对发现其实并没有完全遵守这个标准模型。
三、数据包 TCP/IP数据包的封装如下图所示:
数据包在每一层都有着不太的形式和不太的名称,下面简单介绍一下:
应用层 :生成的数据包被称作消息。
传输层:该层的数据封装了应用层的消息,如果是传输层中TCP协议中的数据,我们称它为分段,如果是UDP的,则叫数据报。
网际层:该层的数据封装了传输层的片段,也被称作数据报。
网络访问层:这一层数据叫帧,封装了网际层的数据报。
这里我们上面这四层其实是TCP/IP的四层模型,与OSI模型对比如下:
三、总结TCP/IP网络
如上图,
数据开始于应用层的用户进程,通过传输层中TCP或UDP中的其中一个传输协议;
数据会继续传递打破网络层,IP协议在此会提供逻辑寻址,并把数据封装为数据报,
数据报又会进入链路层,传递到物理网络相连接的软件组件。
最后数据会被转化为比特流,通过网络媒介进行传输。