设为首页 - 加入收藏 PHP编程网 - 黄冈站长网 (http://www.0713zz.com)-创业,推广,IT,移动互联,VR,5G,小程序,站长网!
热搜: vivo 网站 广告 专业
当前位置: 首页 > 大数据 > 正文

数据在网络中是怎样传输的

发布时间:2022-05-19 23:44 所属栏目:[大数据] 来源:互联网
导读:整个请求交互过程分为了几个部分,首先最上层就是应用程序,接着往下是 Socket 库。 再下面就是操作系统的内部了,这里面就包括了协议栈,协议栈上半部分为 TCP 和 UDP ,它们都是负责数据的收发。 只是一个需要 连接,一个不需要连接可以直接收发数据,这两
         整个请求交互过程分为了几个部分,首先最上层就是应用程序,接着往下是 Socket 库。
 
         再下面就是操作系统的内部了,这里面就包括了协议栈,协议栈上半部分为 TCP 和 UDP ,它们都是负责数据的收发。
 
         只是一个需要 连接,一个不需要连接可以直接收发数据,这两者的详细区别我会在后期文章单独讲解,这里大家先了解下就行。
 
         协议栈的下半部分是 IP 协议,用来真正将数据转变为网络包进行实际数据传送的媒介。
 
Proto: 表示协议类型。这里是 tcp ,如果用到了 udp 就会显示为 udp。
Local Address : 本机的 IP 地址。
Foreign Address : 通信对象的 IP 地址
state : 通信状态。ESTABLISHED 表示完成连接 ,CLOSE_WAIT 表示等待关闭,还有一个状态也很常见,LISTENING:等待对方连接。
当浏览器通过 Socket 库向协议栈发出 socket 调用时,协议栈就会根据申请执行创建套接字的操作。
 
协议栈首先会分配一个存放套接字的内存空间,然后往里面存入控制信息,这样套接字就创建好了。
 
连接操作的第一步就是在 TCP 模块处创建表示连接控制信息的头部。当 TCP 头部创建好后,TCP 模块会将信息传递给 IP 模块委托其进行发送。
 
IP 执行发送后,网络包会通过网络到达服务器,服务器上的 IP 模块将接收到的数据传递给 TCP 模块,TCP 模块根据头部信息找到对应的套接字,套接字中会写入相应的信息,然后将状态改为正在连接。
 
于此同时,在返回响应时,会将 ACK 控制位设为 1,代表已接收到网络包。服务器 TCP 模块会将响应消息通过 IP 模块向客户端做出响应。
 
客户端接收到响应后,其 IP 模块将信息传递给 TCP 模块,然后通过 TCP 头部信息确认连接是否成功,SYN 等于 1 就代表成功,客户端还会将 ACK 设置为1 并发回给服务器,服务器收到这个包后才算连接操作真正的完成。
 
建立连接后,就可以随时进行收发数据了,在调用 close 之前,连接会一直存在。

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章