TCPSocket编程原理.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TCPSocket编程原理

我们简单对HTTP相关的基本概念做了一些简单的了解,但未对HTTP连接管理的内容做一些详细的介绍。本篇博客我们就一起来看一下HTTP连接管理的相关内容。世界上几乎所有的HTTP通信都是有TCP/IP承载的,它是一种常用的分组交换网络分层协议集,同时它也是一种可靠的数据传输通道。它可以安全无误的把我们想要传输的数据传输到世界各地。也正是因为它的安全无误,HTTP的连接通信才选择采用TCP/IP传输,HTTP连接实际就是TCP连接及其使用规则。web浏览器与服务器通过TCP连接的交互如下图:???TCP流是通过分段、由IP分组传送?TCP数据是通过IP分组的小数据块来发送的。这样就形成了“HTTP OVER TCP OVER IP”的数据传输方式。http就是这种传输方式的最顶层。HTTP的安全版本HTTPS就是在HTTP和TCP之间插入了一个密码和加密层(成为TLS或SSL),TCP在传输数据时会以流的形式从一个打开的TCP连接中传输,在传输的过程中TCP流会分成一个个小/base/14数据库分不到各个IP分组里面。每个IP分组都包括:l一个IP分组收首部(包含源和目的IP地址、长度等)l一个TCP段首部((包含TCP端口号、控制标志等)l一个TCP数据块?保持TCP连接的正确性?如何保证数据传输过程中的正确性是TCP连接的一个首要任务,世界上那么多的计算机,怎么样才能正确的从源计算机的某个源应用传输到目的计算机的目的应用。TCP就是通过IP和端口号来保证这一连接的正确性的。TCP通过4个值来识别:源IP地址?源端口号?目的IP地址?目的端口号TCP数据流中的IP分组中小数据块形式:???TCP套接字编程? 操作系统提供了一套操作TCP连接的工具,为了简单明了起见,我们来直接看一下TCP的编程接口。主要是/base/17Java的一些常用API1.socket(family,type)创建套接字对象,family=socket.AF_INET,type=socket.SOCK_STREAM(TCP)/socket.SOCK_DGRAM(UDP)2.s.bind((host,port))绑定套接字s以接收来自主机host在端口号port上的连接。host可以是空字符串(),表示接受来自任何主机的连接。3.s.listen(maxpending)监听到该套接字的连接尝试,任何时候允许最多maxpending个排队的连接尝试。4.s.accept()s必须是TCP类型,接收一个连接请求并返回一个数据对(s1, (ipaddress, port))。s1是一个新连接的套接字。调用之前必须已经调用了s.bind和s.listen方法。5.s.recv(bufsize)从套接字接收最多bufsize个字节的数据,并返回一个由接收的数据组成的字符串。6.s.sendall(string)在套接字上按字节发送string字符串,该方法将会阻塞,直到所有的字节都被发送。7.s.close()关闭套接字。8.s.recvfrom(bufsize)从套接字接收最多bufsize个字节的数据,并返回一个元组(data, (ipaddr, port))。在使用UDP时很有用,可以接收来自多个发送方的数据。9.s.sendto(string,(host,port))在套接字上将string字符串按照字节发送到目的host和port上,并返回发送的字节数n。对UDP很有用,可以将数据发送到多个目的地。10.s.connect((host, port))将套接字s连接到给定host和port指定的服务器上。????对TCP性能的考虑? HTTP在TCP的上一层,位于应用层,对HTTP性能的考虑无非就是对TCP性能的考虑,在了解了TCP的性能优化之后就可以很好的理解HTTP的连接优化的相关特性了。这样我们在做应用开发的过程中就可以设计实现一些高性能的HTTP应用程序了。?1.HTTP事务时的延时?在一个HTTP事务的整个过程中的延时可以描述出TCP性能瓶颈的问题所在。下面我们从一个图中看一下TCP性能问题所在之处???从上图可以看出整个HTTP事务的延时主要有以下:1).解析时延?DNS解析与DNS缓存客户端首先需要根据URL确定Web服务器的IP地址和端口号,如果最近没有对URL中的主机名进行访问,那么DNS将URL中的主机名转换为IP地址可能会花费数十秒的时间。如果是近期访问过的主机名,那么在HTTP客户端的DNS缓存中,就会保存该主机名对应的IP地址。2).连接时延?TCP连接的建立接下来,客户端会向服务器发送一条TCP连接请求,并等待服务器回送一个请求接受应答。每条新的TCP连接都会有连接新建时延,这个时间虽然很短,但是如果一次性新建多条TCP连接,那么

文档评论(0)

gangshou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档