tcp/ip模型应用数据整条发送流程

数据的整条发送链是:

1、某进程(也就是在应用层)准备好待传输数据,若目的地址是域名则要先通过DNS解析成IP地址

2、交付到运输层(TCP/UDP层),运输层对数据进行适当的分组等操作,后对每一个分组数组加上首部形成报文段(或用户数据报)首部包括源地址、源端口、目的地址、目的端口和一些其他的诸如校验和等数据

3、交付到网际层(IP层),对分组数据加上首部形成IP数据报,首部包括源地址、目的地址(跟运输层的目的地址不同,运输层的目的地址是数据要传送的最终地址,而该目的地址是通过路由表信息得出,是该数据下一步该转移的目的计算机)和校验和等数据

4、交付到数据链路层(mac层),先是对把数据封装成帧(也就是添加首部[SOH]和尾部[EOT]),然后进行透明传输(也就是封装的数据里面,如果出现首部SOH和尾部EOT这样的数据,对其进行转义,也就是加上ESC转义字符,这种方法称为字节/字符填充)

5、交付到物理层,根据数据链路层的mac知道要传输到目的计算机,通过特定的传输介质传送到下一个地址

6、若源主机与最终目的主机在同一个网段,则该地址是最终的目的主机,开始接收数据,进入第7步骤,若源主机和最终目的主机不在同一个网段,进入第11步骤

7、交付到数据链路层,对数据进行卸装,该层会对接收的数据进行差错检测,有差错的数据都会被丢弃

8、交付到IP层,解帧校验

9、交付到运输层,在该主机上,根据端口找到对应的应用,当使用的TCP协议时,提供一种面向连接的可靠的传输服务,可以说是建立了一个虚拟通道,源主机的数据通过该虚拟通道进行传输;若是使用的UDP协议时,提供一种面向的非连接的尽最大努力的不可靠的传输服务,数据传输快,但是无法保证数据100%传输。

10、建立了传输连接后,应用开始接收数据,发送方数据和接收方都必须满足相同的标准应用层协议,如http、ftp、smtp等,通过标准协议应用即可正确的接收源主机发送过来的数据。

11、该计算机不是最终主机,那该计算机就是路由器也就是用于转发分组数据的中转站,首先接收数据的处理同步骤7和8一样,然后接下来的流程又是如同步骤3,

12、如此循环直至找到最终主机,将数据传送到目的应用

全部评论

相关推荐

零OFFER战士:另一个版本查看图片
点赞 评论 收藏
分享
07-11 22:27
中南大学 Java
程序员牛肉:学历的话没问题。但是没问题的也就只有学历了。 其实你的整体架构是正确的,博客接着干。但是项目有点过于简单了。从后端的角度上讲,你这也就是刚入门的水平,所以肯定约面试够呛。 如果你要应聘后端岗位,那你第一个项目竟然是仿写操作系统。这个你要面试官咋问你。你一定要记住一点,你简历上写的所有的东西,都是为了证明你有能力胜任当前的岗位,而不是为了证明你自己会什么。 如果你只是浅浅的做几个项目,描述也都是烂大街。技术点也都是各种混水类的配置类需求,那你就不要幻想自己能走多远。一定要保持思考,保持学习。
点赞 评论 收藏
分享
昨天 10:31
门头沟学院 Java
求问各位大佬,笔试都考点啥
投递科大讯飞等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务