推广 热搜:     参数  行业  机械  教师  设备  系统  公司  企业 

TCP/IP数据流向分析

   日期:2024-11-19     浏览:97    移动:http://sicmodule.glev.cn/mobile/quote/9162.html

您正在看的这篇文章,从点开发起请求到最终内容呈现到您眼前,整个数据流向的复杂度可能超乎您的想像:

TCP/IP数据流向分析

这里涉及到的最关键的知识点是.

互联网的核心是一系列协议,总称为"互联网协议"()。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。林林总总如此多的协议总归有个分类才好。而七层和四级网络协议模型是互联网通信的基石。

和模型对于大家是即熟悉又陌生的存在,翻阅完宝典,所有的信仰才尘埃落定。我们也不打算在原本就已经很紧凑的篇幅中加入四/七层模型“奥义”。有机会江湖见。

需要简单说明的是,七层协议只是一个参考模型,过于详细阐述网络各方面情况,实际生产中为协议。

即便如此,也不影响我们理解数据在各层之间的流转!

数据在各层间的传输

4层中应用层多属于,其它层多属于。

,主要完成用户所有的资源包装、收集、调用、转换、表示等,用户层的数据处理完毕经由内核自上而下交由处理数据的传输、加工、转换等工作。在经历的每次均需打上每层的特有标签,在最终的链接层将数据转交路由交换设备,经网络传输最终送达目的地。

对方收到数据包后,判断数据包是否是自己的响应,如是会再根据每层协议一层层解开,最终拿到数据。

我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信。数据包的结构,基本上是下面这样:

基础通信流程

发送这个包,需要知道两个地址:

有了这两个地址,数据包才能准确送到接收者手中。但大家知道,地址有局限性,只能在局域网中传播,如果两台电脑不在同一个子网络,就无法知道对方的地址,必须通过网关()转发。

跨网络数据传输

如图:1号电脑要向4号电脑发送数据包。首先先判断4号电脑是否在同一个子网络,结果发现不是,于是就把这个数据包发到网关A。网关A通过路由协议,发现4号电脑位于子网络B,又把数据包发给网关B,网关B再转发到4号电脑。

1号电脑把数据包发到网关A,必须知道网关A的地址。所以,数据包的目标地址,实际上分成两种情况:

发送数据包之前,电脑必须判断对方是否在同一个子网络,然后选择相应的MAC地址。

假定我们的网络信息如下:

要访问,在地址栏输入了网址:。

google.com

这意味着,浏览器要向Google发送一个网页请求的数据包。

3.1、DNS协议

我们知道,发送数据包,必须要知道对方的地址。但是,现在,我们只知道网址,不知道它的地址。

协议可以帮助我们,将这个网址转换成地址。已知DNS服务器为,于是我们向这个地址发送一个数据包(53端口)。

DNS数据包

然后,服务器做出响应,告诉我们的地址是。于是,我们知道了对方的IP地址。

3.2、子网掩码

接下来,我们要判断,这个地址是不是在同一个子网络,这就要用到子网掩码。

已知子网掩码是,本机用它对自己的IP地址,做一个二进制的AND运算(两个数位都为1,结果为1,否则为0),计算结果为;然后对的IP地址也做一个AND运算,计算结果为。这两个结果不相等,所以结论是,与本机不在同一个子网络。

因此,我们要向发送数据包,必须通过网关转发,也就是说,接收方的地址将是网关的MAC地址。

3.3、应用层协议

浏览网页用的是协议,它的整个数据包构造是这样的:

HTTP数据包

部分的内容,类似于下面这样:

我们假定这个部分的长度为4960字节,它会被嵌在数据包之中。

3.4、TCP协议

数据包需要设置端口,接收方()的端口默认是80,发送方(本机)的端口是一个随机生成的之间的整数,假定为51775。数据包的标头长度为20字节,加上嵌入的数据包,总长度变为4980字节。

3.5、IP协议

然后,数据包再嵌入数据包。数据包需要设置双方的IP地址,这是已知的,发送方是(本机),接收方是(Google)。数据包的标头长度为20字节,加上嵌入的数据包,总长度变为5000字节。

3.6、以太网协议

最后进入数据链路层,数据包嵌入以太网数据包。以太网数据包需要设置双方的地址,发送方为本机的网卡地址,接收方为网关的地址(通过协议得到)。

以太网数据包的数据部分,最大长度为字节,而现在的数据包长度为5000字节。因此,IP数据包必须分割成四个包因为每个包都有自己的IP标头(20字节),所以四个包的IP数据包的长度分别为1500、1500、1500、560

数据链路层数据包

3.7、服务器端响应

经过多个网关的转发,的服务器,收到了这四个以太网数据包。

根据标头的序号,将四个包拼起来,取出完整的数据包,然后读出里面的"请求",接着做出"响应",再用协议发回来。

本机收到响应以后,就可以将网页显示出来,完成一次网络通信。

Response信息

数据流每层的传输及每层所涉及的协议图,大家可参考如下逆天图

本文地址:http://sicmodule.glev.cn/quote/9162.html    歌乐夫 http://sicmodule.glev.cn/ , 查看更多

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关行业动态
推荐行业动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2023001713号