本文以通信双方发送E-Mali为示例,强化理解TCP/IP通信协议族的全部过程。
一、数据包首部
上篇文章有提到,数据包在传输的过程中,每经过一层都会增加相应的首部(有时会有尾部)的数据报,通常为协议提供的信息为包首部,所以要发送的内容为数据。
要理解数据包首部信息,其实也很简单,他就相当与是协议的脸。网络中传输的数据包主要由两个部分组成:1、协议所要用到的首部;2、上层传过来的数据。在数据包的首部明确的标明了协议该如何读取数据。
区分几个小概念(包、帧、数据报、段、消息)
- 包:是一个全能型的术语;
- 帧:用于表示数据链路层中包的单位;
- 数据报:IP和TCP等网络层以上的分层中包的单位;
- 段:表示TCP数据流中的信息;
- 消息:应用协议中数据的单位;
本文中所要用到的示例整体流程图如下:
二、发送数据包(Server)
1、应用程序处理(应用层)
首先在应用程序中会进行编码处理,这些编码的过程相当于OSI七层参考模型的中的表示层功能。编码转化后,会考虑何时建立通信连接、何时发送数据的管理功能,这就相当于是参考模型的会话层的功能。
应用则在发送邮件的那一刻建立TCP连接,从而利用这个TCP连接发送数据。它的过程首先是将应用的数据发送给下一层TCP,再做实际的转发处理。