后看,养成习惯 本文将要说明的是,当你使用http协议访问某域名时,对应网络层中TCP协议的具体工作情况。 本文将针对以下问题逐条进行解答: 01 域名解析后,TCP进程此时传送的是什么? 02 TCP进程三次握手连接的原因和步骤? 03 建立握手后,TCP如何传送HTTP? 04 TCP如何确定对方拿到了HTTP数据? 05 TCP为什么要释放连接? 06 TCP如何关闭连接? 域名解析后,浏览器回根据应用层协议,将用户访问 某域名 的请求打包成HTTP/HTTPS格式,如何将打包好的HTTP告诉TCP进程,同时告诉TCP进程 域名对应的IP地址 所以说,TCP进程此时传送的是HTTP包 TCP进程属于低调、稳健的老司机,属于不见兔子不撒鹰的狡猾猎人。既然是老司机,开车一定很稳,那么稳在哪里呢? 也许IP包遭遇了线路硬件故障、网络路劲堵塞被丢弃或者服务器压根就没有开机,最终这个IP包消失的无影无踪。 那么老司机该怎么办么? 老司机想出一个办法,先不发HTTP,想要确保自己的IP包(不包含任何用户数据)可以到达服务器,并且服务器的IP包也可以返回。(确定可以有来有回,就是可靠的) 这样的话,就可以保证 ①双向路由路径是通畅的,没有防火墙或访问列表的阻挡 ②如果IP包是可以返回的,说明服务器是正常工作的。 那么三次握手连接具体是什么呢? A:听得到 TCP三次握手本身是使用IP进程来完成发送,由于通常通信的两台主机不在同一个网段,所以是三次不同网段的通信 在IP进程的眼里,三次握手就是三个IP包的交互(不考虑超时传输的情况下),还没有传输浏览器的HTTP之前,已经花费了三个IP包的代价 TCP进程经历了三次握手之后,只要使用TCP头将HTTP包打包起来,包的格式为TCP + HTTP ,发给IP进程就好了。 那么在IP进程看来,这只是一个IP包而已,IP包的格式为 IP + TCP + HTTP 如何确定对方是否接收到这个IP包呢? TCP确认收货机制:对方发一个确认,喊一嗓子,IP包已经收到,那么本地TCP进程就放心了 那么,本地TCP进程如何知道是哪个IP包被对方确认收货了呢? 序列号,就和网购时,卖家发货时,会在外包装打上一个序列号,当买家收货时确认产品序列号,这样卖家就会知道某件产品已经安全无误送到买家手中。 TCP头就有一个序列号,比如A的TCP进程要传输1000字节数据,初始序列号就是从1开始,然后TCP把这1000个字节打包,然后层层封装、传输,并最终到达服务器TCP进程。这是发送端的序列号,从1-1000 而服务端确认收货号截至为1001,这是告诉对方1-1000序列号已经成功接受,在等着收1001的数据呢。本地TCP进程接受到服务端确认收货的消息,就安心等待服务器将 对应页面的内容发送过来了 这个过程一个数据,一个确认收货,一共两个IP包 服务器接受到请求后,将自己的主页封装成HTTP格式,服务器TCP进程发给本地一个包含网页的IP包,本地回复一个收货确认(IP+TCP),这又是两个IP包 本地浏览器将接受到的网页输出到屏幕上之后,为什么还需要将之前建立的TCP连接断开呢?继续保持不行吗? 答案是不行的,因为TCP连接回占用资源,如果你依然保持TCP连接,回占用TCP端口连接、内存资源。如果你是老板,你肯定不会养一个闲着没事干,占着茅坑不拉屎,还吃你工资的人对吧。 TCP连接可以看成两个水管,一个进水,一个出水 如果本地TCP进程数据已经发完了,大可关闭自己的出水管,但是不能关闭进水管,因为你不确认对方是否还要运水过来。所以进水管的关闭需要由对方来关闭,因为对方知道还有没有数据来传输 那具体时如何关闭TCP连接呢? A:老大,我没有水要运了,准备关闭我的出水管了,收到请确认 这样子,A接受到B的回应,就会关闭出水管 如何,假设服务器也没有水要运给本地了,所以决定关闭服务器的出水口 B:小A,我也没有水要运了,准备关闭我的出水口,收到请确认! 这样,一旦服务器接受小A的确认,就会关闭自己的出水口,服务器TCP进程释放资源 而此时本地TCP因为无法确认服务器是否已经释放TCP连接,那本地TCP进程会怎么做呢? 启动定时器等待,如果超时以内没有接受到任何重传的消息,说明对方已经接受到自己的确认,已经关闭了TCP连接,释放了资源。 而如果超时以内接受到了对方的超时重传,自己再确认,如何再等待,知道最终确认对方接受到自己的确认。 不考虑超时重传的情况下,整个通信过程一共使用了多少IP包呢? 共计11个IP包 以上文章,作为自己的学习笔记,仅供参考 本文完,感谢你的阅读!!! 最后,如果本文对你有所帮助,希望可以点个赞支持一下。你们的鼓励将会是博主原创的动力。
喜欢的话 可以点个关注哟
你们的支持对博主们来说很重要哦 !!!
为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓
01 TCP传输的HTTP包
02 TCP进程三次握手
老司机心想,如果将浏览器发来的IP地址+HTTP直接发送个IP进程,最后会产生一个IP包,但最终这个IP包是死是活,自己是无法知道的。
A:老大,有空吗?想和你说说话,听到请回答
B:小A,听得到,你能听得到我吗?03 TCP三次握手后的数据传输
04 TCP的确认机制
05 TCP释放连接机制
所以我们要释放TCP连接,把他给有需要的应用程序使用。06 TCP关闭连接
从本地TCP进程来看,发数据用的时出水管,接受服务器数据使用进水管,释放连接意味着两个水管都关闭。
B:小A,你出水管里的数据我已经接受完毕了,你可以关闭你的出水管了,确认完毕。
A:老大,我已经接受完你出水管里的水,可以放心关闭了,确认完毕!07 那么在本次的通信过程中,一共使用了多少个IP包呢?
建立三次握手,3个IP包
双向通信,2个IP包
释放连接,4个IP包
*
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算