例解TCP/IP通信过程(与同学发电子邮件)

假设你与北京的同学各有一个E_MAIL帐号,请简述你与同学之间通过PC发送和接收电子邮件的详细过程。

  1. 发件人调用 PC 机中的用户代理撰写和编辑要发送的邮件。
  2. 发件人的用户代理把邮件用 SMTP 协议发给发送方邮件服务器,
  3. SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。
  4. 发送方邮件服务器的 SMTP 客户与接收方邮件服务器SMTP服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去。
  5. 运行在接收方邮件服务器中的SMTP服务器进 程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。
  6. 收件人在打算收信时,就运行 PC 机中的用户代理,使用 POP3(或 IMAP)协议读取发送给自己的邮件。

POP3 服务器和 POP3 客户之间的通信是由 POP3 客户发起的。

详细步骤

1.应用程序处理

  1. A用户启动邮件应用程序,填写收件人邮箱和发送内容,点击“发送”,开始TCP/IP通信;
  2. 应用程序对发送的内容进行编码处理,这一过程相当于OSI的表示层功能;
  3. 由A用户所使用的邮件软件决定何时建立通信连接、何时发送数据的管理,这一过程相当于OSI的会话层功能;
  4. 现在可以发送了,就在发送的那一刻,建立连接,通过这个TCP连接发送数据。首先是将应用层数据发送给下一层的TCP,再做实际转发处理。

2.TCP模块的处理

传输层TCP负责建立连接、发送数据以及断开连接。TCP要将应用层发来的数据实现可靠传输至对端需要在应用层数据前段加上TCP首部。(TCP首部包括源端口号和目标端口号,序列号,校验和)。然后,就可以将附加了TCP首部的包发送给IP。

3.IP模块的处理

IP层将上层传来的附加了TCP首部的包当做自己的数据,又在该数据前段加上自己的IP首部,生成IP包。然后参考路由控制表决定接受此IP包的路由或主机,以此发送到对应的路由器或主机的网络接口的驱动程序,实现真正发送数据。接下来将MAC地址(若获得位置,可以利用ARP查找)和IP地址交给以太网的驱动程序,实现数据传输。

4.网络接口(以太网驱动)的处理

把上层传来的IP包附加上以太网首部(该首部包括收、发端的MAC地址,以及标志以太网类型的以太网数据的协议),生成以太网数据包,通过物理层传输给接收端。此外,还要对该太网数据包进行发送处理,生成FCS(frame check sequence),由硬件计算添加到包的后面,主要是为了判断数据包是否由于噪声而破坏
在这里插入图片描述

5.网络接口(以太网驱动)的处理

对以太网数据包首部进行解析,如果发现是发给自己的包,则识别上一层为IP,否则丢弃包。

6.IP模块的处理

IP包首部的解析,如果发现是发给自己的包,则识别上一层为TCP,否则丢弃包。

7.TCP模块的处理

TCP包首部的解析。数据接收完毕后,接收端发送一个“确认回执”给发送端,如果该回执信息未能到达发送端,则发送端会认为接收端没有接收到数据则一直发送。数据被完整接收后,传递给端口号识别的应用程序。

8.应用程序的处理

接收端应用程序接收发送端发来的数据,确认地址,若无此地址,则返回给发送端一个“无此收件地址”的报错信息若有此地址,则邮件被保存到本地硬盘,若保存也能正常进行,则发送一个“处理正常”给发送端,否则,如磁盘满等异常导致未能保存成功,则发送一个“处理异常”给发送端。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值