计算机网络

1.    基本概念划分

OIS的七层协议:应用层、表示层、会话层、运输层、网络层、数据链路层、物理层

OIS的五层协议:应用层、运输层、网络层、数据链路层、物理层

物理层:发送器:通常源点生成的数字比特流要通过发送器编码后才能够在传输系统进行传输。典型的发送器就是调制器。现在很多PC使用的内置的调制解调器。目的系统:接收器:接受传输系统传送过来的信号,并把它转换为能够被目的设备处理的信息。典型的接收器就是解调器,它把来自传输路线上的模拟信号进行解调,提取出在发送端置入的信息,还原出发送端产生的数字比特流。

数据链路层:数据链路层使用的信道种类:点对点信道(PPP协议)、广播信道(CSMA/CD协议)。

网络层:网络层提供的服务:虚电路服务、数据报服务(网络层向上只提供简单灵活的、无连接、尽最大努力交付的数据报服务)。网际协议IP、网际控制报文协议ICMP。

运输层:运输层向它上面的应用层提供通信服务,两个主机进行通信就是两个主机中的应用进程相互通信。通信的真正端点并不是主机而是主机中的进程。端对端的通信是应用进程间的通信。运输层两个主要协议:用户数据报协议UDP,传输控制协议TCP。

用户数据报协议UDP:UDP是无连接的,发送数据之前不需要建立连接,减少了开销和发送数据之间的时延;UDP使用尽最大努力交付,UDP是面向报文的;UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低;UDP支持一对一、一对多、多对一和多对多的交互通信;UDP的首部开销小,只有8字节,TCP20字节。

传输控制协议TCP:TCP是面向连接的运输层协议;每一条TCP连接只能有两个端点,每一条TCP连接只能点对点的;TCP提供可靠的交付,通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达;TCP提供全双工通信;面向字节流,TCP中的流指的是流入到进程或者从进程流出的字节序列。

应用层:域名系统DNS,文件传送协议FTP

2.    TCP,UDP的基本区别:TCP面向连接(如打电话要先拨号建立连接;UDP是无连接的,即发送数据之前不需要建立连接);TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达,UDP尽最大努力交付,即不保证可靠交付;TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流,UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等);每一条TCP连接只能是点到点的,UDP支持一对一,一对多,多对一和多对多的交互通信;TCP首部开销20字节,UDP的首部开销小,只有8字节;TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。 UDP的应用场景:面向数据报方式,网络数据大多为短消息,拥有大量Client,对数据安全性无特殊要求,网络负担非常重,但对响应速度要求高。

3.    三次握手和四次挥手:

为什么连接的时候是三次握手,关闭的时候是四次握手:因为当server端收到Client端的SYN连接报文后,可以直接发送SYN+ACK报文,其中ACK报文时用来应答的,SYN报文时用来同步的。但是关闭连接时,当SERVER端受到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉CLIENT端"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

答:虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。

4.    HTTP

HTTP协议是Hyper Text TransferProtocol(超文本传输协议),是用于从万维网服务器传输文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据。HTTP是一个属于应用层的面向对象的协议。主要特点:简单快速,灵活(HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记),无连接,无状态(协议对于事务处理没有记忆能力),支持B/S及C/S模式。URI和URL的区别:URI是统一资源标识符,用来唯一的标识一个资源(如人的身份证号可以唯一指定一个人),URL是统一资源定位符,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源(如//地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人)

HTTP状态码:1XX:指示信息—标识请求已接受,继续处理

             2XX:成功—表示请求已被成功接收、理解、接受

             3XX : 重定向—要完成请求必须进行更进一步的操作

             4XX:客户端错误—请求有语法错误或请求无法实现

             5XX:服务器端错误—服务器未能实现合法的请求

        200 OK  客户端请求成功

        400 Bad Request  客户端请求有语法错误,不能被服务器所理解

        401 Unauthorized  请求未经授权

        403 Forbidden  服务器收到请求,但是拒绝提供服务

        404 Not Found  请求资源不存在

        500 Internal Server Error  服务器发生不可预期的错误

          503  Server Unavailable  服务器当前不能处理客户端的请求,一段时间后可能恢复正常

    HTTP请求方法:GET请求指定的页面信息,并返回实体主体,POST向指定资源提交数据进行处理请求,数据报被包含在请求体中。

    HTTP工作原理:HTTP协议定义web客户端如何从web服务器请求web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。HTTP请求、响应步骤:a.客户端连接到web服务器;b.发送HTTP请求;c.服务器接受请求并返回HTTP响应;d.释放连接TCP连接;e.客户端浏览器解析HTML内容。

         例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:1、浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;2、解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;3、浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;4、服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;5、释放TCP连接;6、浏览器将该 html 文本并显示内容;   

   GET和POST请求的区别:a.GET提交请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接。POST提交把提交的数据放置在HTTP包的包体中。b.传输数据的大小,HTTP协议并没有对传输数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。但是浏览器和服务器对URL长度有限制,所以GET提交时传输数据就会受到URL长度的限制。POST理论上不受限制,但实际各个web服务器会规定对POST提交数据大小进行限制。c.安全性,POST比GET安全性要高。

        长连接和短连接:数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据,相反就是短连接,长连接适用于进行大量数据传输的情况,如数据库,redis,memcached等要求快速,数据量大的情况。客户端的长连接不可能无限期,会有一个超时时间,服务器有时候会告诉客户端超时时间上图中的Keep-Alive:timeout=20,表示这个TCP通道可以保持20秒。对于客户端来说,如果服务器没有告诉客户端超时时间也没关系,服务端可能主动发起四次握手断开TCP连接,客户端能够知道该TCP连接已经无效;另外TCP还有心跳包来检测当前连接是否还活着,方法很多,避免浪费资源。

5.SOCKET:网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。过程:Server端Listen(监听)某个端口是否有连接请求,Client端向Server端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。为了实现在服务器方给多个客户提供服务的功能,利用多线程实现多客户机制,服务器总是在指定的端口上监听是否有客户请求,一旦监听的客户请求,服务器就会启动一个专门的服务器线程来响应该客户的请求,而服务器本身在启动完线程之后又进入监听状态,等待下一个客户的到来。

  


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值