基础网络知识

OSI

        应用层: 用户的应用程序和网络之间的接口,包含:HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。
        表示层: 协商数据交换格式。
        会话层: 允许用户使用简单易记的名称建立连接。
        传输层: 提供终端到终端的可靠连接,包含:传输控制协议(TCP)。
        网络层: 使用权数据路由经过大型网络,互联网协议(IP)。
        数据链路层: 决定访问网络介质的方式。在此层将数据分帧,并处理流控制,包含:以太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)。
        物理层: 将数据转换为可通过物理介质传送的电子信号,包含:针脚、电压、线缆规范、集线器、中继器、网卡、主适配器等。

三次握手(建立连接)

 第一次握手:客户端向服务端发送连接请求

第二次握手:服务端回复客户端收到连接请求,同意连接请求

第三次握手:客户端回复服务端收到同意连接请求

四次挥手(断开连接)

第一次挥手:客户端向服务端发送断开请求

第二次挥手:服务端回复客户端收到断开请求,请等待

第三次挥手:服务端回复服务端收到同意断开请求

 第四次挥手:客户端向服务端发送收到同意断开请求

常见协议分布

        物理层:以太网,调制解调器,电力线通信(PLC),SONET/SDH,G.709,光导纤维,同轴电缆,双绞线等。

        数据链路层:Wi-Fi,GPRS,令牌环,以太网,WiMAX,ATM,DTM,FDDI,帧中继,EVDO,HSPA,HDLC,PPP,L2TP,PPTP,ISDN,STP,CSMA/CD等。

        网络层协议:IP,RARP,ICMP,ICMPv6,IGMP,IS-IS,IPsec,ARP,RIP等。

        传输层协议:TCP,UDP,TLS,DCCP,SCTP,RSVP,OSPF等。

        应用层协:FTP,DNS,DHCP,HTTP,POP3,SIP,SSH,TELNET,NTP,Gopher,IMAP4,IRC,NNTP,XMPP,SMTP,SNMP,RPC,RTCP,RTP,RTSP,SDP,SOAP,GTP,STUN,SSDP,BGP等。

SOCKET

        套接字是通信的基石,支持TCP/IP协议的网络通信的基本操作单元,是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:协议,IP地址,协议端口,远程主机IP地址,远程主机协议端口。

        TCP同时为多个程序提供服务时,多个TCP连接或多个程序需要通过同一个协议端口传输数据,为了区别不同的程序进程和连接,系统为程序与TCP/IP协议交互提供了套接字接口。

HTTP

        协议即超文本传送协议,是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。
        HTTP连接的特点
        一次连接:客户端发送的每次请求服务器都要回送响应,请求结束后,会主动释放连接。
        短连接:保持客户端程序的在线状态,客户端需要向服务器不断地发起连接请求。若服务器长时间无法收到客户端的请求,则认为客户端下线,若客户端长时间无法收到服务器的回复,则认为网络已经断开。通常客户端每隔一段时间向服务器发送连接的请求,服务器收到请求后对客户端进行回复。

TCP/IP

        TCP/IP是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议除了TCP 和IP协议,还有FTP、SMTP、TCP、UDP、IP等协议构成。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。

SOCKET,HTTP,TCP/IP联系

 

        SOCKET与TCP/IP

        SOCKET是操作TCP/IP的编程接口,创建Socket连接时,可以指定传输层协议,使用TCP协议时,Socket连接是TCP连接。Socket本身并不是协议,而是调用接口,通过Socket,使用TCP/IP协议。

        SOCKET与HTTP

        Socket是长连接:通常Socket连接是TCP连接,连接建立,通信双方即可开始相互发送数据内容,直到双方连接断开。
        HTTP是短连接:请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。
        Socket连接,服务器就可以直接将数据传送给客户端;在实际网络中,客户端到服务器之间的通信需要多个节点,例如路由器、网关、防火墙等,防火墙会关闭长时间非活跃状态的连接,导致Socket 断开,因此需要发送心跳包。
        HTTP连接,服务器需要等到客户端发送请求后才能将数据传回给客户端。客户端定时向服务器端发送连接请求,可以保持在线,如果服务器有新数据就传给客户端。

        知识点总结        

        为什么挥手需要四次
        服务器在收到FIN报文后可以立即发送ACK报文,表明服务器收到报文;但是服务器发送FIN报文需要等到处理完接收缓冲区的数据。

        为什么会存在一个TIME_WAIT状态
        确保服务器收到最后一段ACK报文。

        如何确保服务器收到了最后一段ACK报文
        如果服务器没有收到最后一段ACK报文,就会触发超时重传,服务器会再次发送FIN ACK报文。那么在2MSL的时间内,客户端会再次收到FIN报文,客户端就知道刚刚发送的ACK丢失,需要再次发送。服务器收到了最后一段ACK报文,客户端在2MSL的时间内就不会收到任何报文,客户端就知道刚刚发送的ACK报文没有丢失,不需要再次发送,客户端进入CLOSED状态。

        HTTP,socket使用场景
        HTTP:不需要时刻保持连接在线,客户端资源的获取、文件上传等。
        Socket的:聊天程序,建立一次连接,重复使用连发送和接收消息。

        浏览器在与服务器建立TCP连接后,是否会在一个HTTP请求完成后断开,什么情况下会断开
        默认开启持久连接,除非请求中写明Connection:close,浏览器和服务器之间是会维持一段时间的TCP连接,不会一个请求结束就断掉。

        一个TCP连接可发送HTTP请求个数
        maxKeepAliveRequests配置TCP接受最大的Http请求数目,keepalive请求达到最大值,Tomcat关闭连接。

        一个TCP连接中HTTP可多请求可一起发送吗
        HTTP/1.1单个TCP连接在同一时刻只能处理一个请求。HTTP2可以在一个 TCP 连接中同时完成多HTTP请求。

        浏览器对同一 Host建立TCP连接到数量有限制吗
        Chrome最多允许对同一个 Host 建立六个 TCP 连接,不同浏览器不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值