早期的网络是基于OSI(开放式系统互联网,一般叫OSI参考模型)模型,该模型是由ISO国际标准组织制定的,包含了七层(应用层、表示层、会话层、传输层、网络层、数据链路层、物理层),即复杂又不实用,以至于招到了许多批评,所以,当时就有一批技术人员为了方便开发,提高效率,自己开发了一套新的协议,TCP/IP协议,在简化的计算机网络OSI模型中,她完成了第四层传输层所指定的功能
TCP/IP协议(Transmission Control Protocol),翻译过来是传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。包含有四层(应用层、传输层、网际层、网络接口层),不过从实质来讲,TCP/IP协议只有最上面的三层,因为最下面的网络接口层基本上和一般的通信链路的功能上没多大差别
应用层:负责处理特定的应用程序细节。包含各种应用程序协议,如:Telnet远程登录、FTP文件传输协议、SMTP简单邮件传送协议、SNMP简单网络管理协议
传输层:为网络提供了流量控制,错误控制和确认服务。在TCP/IP协议族里面,又包含两个互不相同的传输协议:TCP和UDP,后面会讲解
网际层:提供独立于硬件的逻辑寻址,实现物理地址与逻辑地址的转换,网际层(也叫网络层)协议包括IP协议、ICMP协议以及OGMP协议( Internet 组管理协议)
网络接口层:通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与电缆或其他人护额传输媒介的物理接口细节,对应的设备有,传输介质、网卡、交换机
TCP和UDP是两种最为著名的传输层协议,二者都使用IP作为网络层协议尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务
TCP,传输控制协议,面向连接的协议,可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须建立一个TCP连接
只支持一对一传输(端对端的传输)
数据大小无限制
建立连接通道
速度慢,但是可靠性高
用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,UDP提供了无连接通信,适合于一次传输少量数据,UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。但是正因为UDP协议的控制选项较少,在数据传输过程中延迟小、数据传输效率高,适合对可靠性要求不高的应用程序,或者可以保障可靠性的应用程序,如DNS、TFTP、SNMP
一般应用于QQ、微信等即时聊天上
这个是前端面试中,最经常考的,所以呢,这个我们得重点掌握才行。
在了解三次握手和四次挥手之前,我们得先了解tcp头部数据的宏观位置和首部报文格式,方便我们后面理解
一行有32个bit即32位,1个字节=8个位,即一行有4个字节
第一次握手 :第一次握手是有客户端发起的,客户端向服务端发送一个报文,在报文里面SYN标志位为1,seq携带一位32位的序列号,当服务端收到这个报文之后,就在知道客户端是想要和我建立一个新的连接
第二次握手 :第二次握手是由服务端发起的,服务端在收到客户端在第一次握手时发的报文之后,确定客户端是想和自己建立连接后,,于是服务端就向客户端发送了一个确认消息包,在这个包里面,SYN标志位和ACK标志位都为1,并携带32位的确认序号
以上两次握手后,对于客户端而言,已经明确了客户端既能给服务端发小心,也能收到服务端的响应。但是对服务端而言,两次握手是不够的,到目前为止,服务端只知道一件事情,客户端发给我的消息我能收到,但是客户端能不能收到我的消息我是不知道的,所以,还需要进行第三次握手
第三次握手 :第三次握手就是当客户端收到服务端发送的响应报文之后,还要继续去给服务端进行回应,在报文里面携带一个32位的确认序号。
通过以上三次握手之后,不管是客户端还是服务端,都知道,我既能给对方发送消息,也能收到对方的响应,那么这个连接就被安全的创建了
第一次挥手 :第一次挥手也是由客户端发起的,客户端会发送一个报文,报文里面FIN标志位为1,表示关闭连接,当服务端收到这个报文之后,就知道客户端想要和我断开连接了
第二次挥手 :第二次报文是由服务端发起的,当服务端收到客户端的报文之后,服务端辞职可能还有未发送完的报文消息,需要继续发送,所以此时客户端只能告诉客户端,我知道你要和我断开连接啦,但是我还没准备好,需要等我一下等我好了之后我会通知你的(此时的报文消息里面包含32位确认序号ack和确认标志ACK=1)
第三次挥手 :此时的服务端已经准备好了,于是就告诉客户端,我可以断开连接啦,在这条消息报文里面FIN=1,并携带32位的ack确认序号
第四次挥手 :当客户端收到服务端的断开连接的报文后,客户端同样需要继续发送一个确认包的报文给服务端。
通过这四次的相互沟通和连接,不断时客户端还是服务端,都已经做好了断开的准备
原文 http://www.cnblogs.com/cythia/p/14743096.html
HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。
//缺省协议的使用,代表资源访问的协议和当前页面保持一致,如果当前页面是http ,采用http协议访问,如果是https,则使用 https 协议访问。这样用就不管是http还是升级到https都不用改动代码,现在很多CDN资源都是这样引用。一般使用在内链中,外链的协议头具有不确定性的原因。
常用的网络协议有TCP/IP协议、HTTP协议、FTP协议、Telnet协议、FTP协议、SMTP协议、NFS协议、UDP协议等。网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
实践证明IPv4是一个非常成功的协议,它本身也经受住了Internet从数目很少的计算机发展到目前上亿台计算机互联的考验。但该协议是几十年前基于当时的网络规模而设计的。
一天,你有个需求,你要去超市买一瓶酱油。到了超市买了酱油,你告诉售货员,下次给我准备下面粉,我下次来拿。第二次,你去超市拿面粉,售货员说他不记得你什么时候说要准备面粉。
手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”
HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快
memcached 本身并不支持集群,为了使用集群,我们可以自己在客户端实现路由分发,将相同的 key 路由到同一台 memcached 上去即可。路由算法有很多,这里我们使用一致性哈希算法。
HTTP 协议中共定义了八种方法或者叫“动作”来表明对 Request-URI 指定的资源的不同操作方式,具体介绍如下:虽然 HTTP 的请求方式有 8 种,但是我们在实际应用中常用的也就是 get 和 post
伪协议是为关联应用程序而使用的,JavaScript伪协议实际上是把javascript:后面的代码当JavaScript来执行,并将结果值返回给当前页面。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!