全球网站域名微网站建设及微信推广方案ppt
news/
2025/10/3 23:45:42/
文章来源:
全球网站域名,微网站建设及微信推广方案ppt,深圳低价网站建设,衡水做网站技术一、首先讲一下TCP的由来
最开始#xff0c;人们考虑到将网络信息的呼唤与回应进行规范#xff0c;达成一种公认的协议#xff0c;就好像没有交通规则的路口设定交通规则。 人们设计出完美的OSI协议#xff0c;这个协议包含七个层次由下到上分别是#xff1a; 物理层人们考虑到将网络信息的呼唤与回应进行规范达成一种公认的协议就好像没有交通规则的路口设定交通规则。 人们设计出完美的OSI协议这个协议包含七个层次由下到上分别是 物理层数据链路层网络层传输层会话层表示层应用层。 大家都觉得很完美但是现实总是会打破理想十分现实。 人们发现在使用过程中没有必要这么繁琐很多层次也分的不必太清晰可以合并于是在实践过程中人们逐渐演变出更实用的TCP/IP协议。
二、三次握手连接四次挥手断开
画图解释吧更形象
三、总结
3次握手的过程是双方都在准备资源4次挥手的过程是让之前准备的资源释放。 这个时候可能会产生疑问为什么连接是三次挥手就要四次 这是因为套接字是全双工的同时收发数据无影响所以关的时候要收发都关掉。 不知道有没有同学会跟我一样产生一个疑惑为什么要客户端先调用close而不是服务器先调用close 我经过查阅资料学习我们先来追溯一下收发信息原理的源头TCP为了保证数据的可靠性一般接收方在收到一个数据“请求断开连接”之后才会给发出方回应一个“收到这边准备妥当不再接收”信息但如果一直不回应发送方就会一直等待回应为了避免陷入这样一个循环引入了超时时间机制谁先调用close发完消息之后等待一定时间如果没有收到回应发送方就再发送一次。但这个时候又出现一个问题如果接收方给的回应迟了超出了等待期限范畴一边已经回应“收到已准备妥当不再接收”另一边因为等待时间内没有等到这条消息会继续发送“请求断开连接”-等待对方已经关闭接收了-发-等待-发-等待…这就又陷入了一个循环为了解决这个问题我们引入了延时机制也就是接收方接到断开请求回复“收到这边准备妥当不再接收”之后让它等待约2MSLMSL就是一个数据包在网络上传输的时间确定收不到发送方再次发来的断开请求再真正执行关闭接收操作。现实这段过程大概耗时为两分钟左右在这段时间内接收方是不被允许释放资源的这也就意味着这段时间内它所占用的端口不可以被其他程序所调用程序虽然关了但是端口仍被占用不利于资源的最大化利用。这个时候我们再来想如果是服务器先调用close,这就意味着服务器先发出断开连接请求也就意味着它要保留两分钟左右的资源的同时占用这个端口但我们知道服务端要绑定固定的端口客户端不用呀所以如果是客户端先调用close,它在等待保留资源的时候操作系统再执行其他操作分配资源时端口是自由的可以紧接着继续分配达到对资源的最大化利用刚刚好。所以客户端先调用close而不是服务器先调用close。
上码
import socketdef service_client(new_socket):为这个客户端返回数据#1.接收浏览器发送过来的请求即HTTP发送来的请求#GET /HTTP/2.0#...requestnew_socket.recv(1024)#一般来说应该空间是够了print(request)#2.返回HTTP格式的数据给浏览器#2.1准备发送给浏览器的数据--head就是HTML那些responsehttp/2.0 200 OK\r\n#浏览器不能解析换行符/n必须使用/r/n的方式response\r\n#不可或缺的换行符代表着body即将到来#2.2准备一些--body部分内容准备给浏览器送去#responseh1xixizi/h1responsexixizinew_socket.send(response.encode(utf-8))#关闭套接字new_socket.close()def main():用来完成整体的控制#1.创建套接字tcp_server_socketsocket.socket(socket.AF_INET,socket.SOCK_STREAM)#2.绑定tcp_server_socket.bind((,65534))#3.变为监听套接字tcp_server_socket.listen(128)while True:#4.等待新客户端的链接new_socket,client_addrtcp_server_socket.accept()#5.为这个客户端服务service_client(new_socket)#关闭监听套接字tcp_server_socket.close()if __name____main__:main()最近很努力在找实习把尘封已久的知识重新翻出来再温习温习不问前程但行脚下
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926438.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!