1.应用程序处理网络
(1)A用户启动邮件应用程序,填写收件人邮箱和发送内容,点击“发送”,开始TCP/IP通讯;
(2)应用程序对发送的内容进行编码处理,这一过程至关于OSI的表示层功能;
(3)由A用户所使用的邮件软件决定什么时候创建通讯链接、什么时候发送数据的管理,这一过程至关于OSI的会话层功能;
(4)如今能够发送了,就在发送的那一刻,创建链接,经过这个TCP链接发送数据。首先是将应用层数据发送给下一层的TCP,再作实际转发处理。
2.TCP模块的处理编码
传输层TCP负责创建链接、发送数据以及断开链接。TCP要将应用层发来的数据实现可靠传输至对端,须要在应用层数据前段加上TCP首部。(TCP首部包括源端口号和目标端口号,序列号,校验和)。而后,就能够将附加了TCP首部的包发送给IP。blog
3.IP模块的处理接口
IP层将上层传来的附加了TCP首部的包当作本身的数据,又在该数据前段加上本身的IP首部,生成IP包。而后参考路由控制表决定接受此IP包的路由或主机,以此发送到对应的路由器或主机的网络接口的驱动程序,实现真正发送数据。接下来将MAC地址(若果位置,能够利用ARP查找)和IP地址交给以太网的驱动程序,实现数据传输。路由
4.网络接口(以太网驱动)的处理软件
把上层传来的IP包附加上以太网首部(该首部包括收、发端的MAC地址,以及标志以太网类型的以太网数据的协议),生成以太网数据包,经过物理层传输给接收端。此外,还要对该太网数据包进行发送处理,生成FCS(frame check sequence),由硬件计算添加到包的后面,主要是为了判断数据包是否因为噪声而破坏。路由器
如今能够经过物理层传输了
如今的数据包是这个样子的(截图于《图解TCP/IP》) 硬件
如下就是包的接收处理了程序
5.网络接口(以太网驱动)的处理im
对以太网数据包首部进行解析,若是发现是发给本身的包,则识别上一层为IP,不然丢弃包。
6.IP模块的处理
IP包首部的解析,若是发现是发给本身的包,则识别上一层为TCP,不然丢弃包。
7.TCP模块的处理
TCP包首部的解析。数据接收完毕后,接收端发送一个“确认回执”给发送端,若是该回执信息未能到达发送端,则发送端会认为接收端没有接收到数据则一直发送。数据被完整接收后,传递给端口号识别的应用程序。
8.应用程序的处理
接收端应用程序接收发送端发来的数据,确认地址,若无此地址,则返回给发送端一个“无此收件地址”的报错信息。如有此地址,则邮件被保存到本地硬盘,若保存也能正常进行,则发送一个“处理正常”给发送端,不然,如磁盘满等异常致使未能保存成功,则发送一个“处理异常”给发送端。
如今,接收端就能够阅读邮件了
总结,整个流程如图(截图于《图解TCP/IP》)