网络数据传输流程

在编程中,网络编程较为重要,往往搞懂其大致传输流程然后再细化其工作原理和工作过程将会事半功倍,因为要学习网络编程方面的知识,所以查阅资料后我自己整理了一下网络数据传输流程。

假设主机A向主机B发送一个"Hello World"字符串。这个字符串将经过以下几个阶段由主机A辗转到达主机B。

一.在主机A上的操作—封装

1.主机A将"Hello World"发送到应用层,在应用层对其加装一个头部信息,然后发送给传输层;
2.在传输层,对已经加装了头部信息的字符串再加装传输层的头部信息(利用TCP协议),然后转发到网络层;
3.在网络层继续加装IP协议报头,此时整个信息中已经包含了地址信息,此时将信息交付于主机A的数据链路层;
4.数据链路层对接收的信息分别加上帧头和帧尾(用于识别信息),然后交付于物理层,通过物理层转发出去。

二.在物理层(即网络中)的操作

1.信息到达路由器后,路由器去掉信息的帧头帧尾,读取IP协议报头里的地址信息,重新加上帧头帧尾,然后根据读取到的地址信息选择合适的端口,再选择合适的路由器发送信息;
2.若线路中有多个路由器,则重复以上步骤读取地址信息再添加报头,直至信息发送到目标主机,即主机B。

三.在主机B上的操作—分用

1.主机B的数据链路层在接受到信息后,去掉其帧头和帧尾,提取剩余的信息,转交给网络层;
2.网络层对IP信息读取并判断后将信息转交给传输层;
3.传输层对信息的TCP报头进行读取并判断,若判断无误则转交给应用层;
4.应用层对其头部信息进行解析,若无误则转交给主机进行下一步处理。
网络传输流程简图在后续学习中会逐渐完善网络编程的部分。新手出道,大佬请多指教。

猜你喜欢

转载自blog.csdn.net/qq_45132647/article/details/104622623