五层协议的体系结构分别是什么?每一层都有哪些协议?
-
应用层: 直接为用户的应用进程(例如电子邮件、文件传输和终端仿真)提供服务。 在因特网中的应用层协议很多,如支持万维网的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议,DNS,POP3,SNMP,Telnet等等。 -
运输层: 负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此传输层具有复用和分用功能。复用:多个应用进程同时使用下面运输层的服务。分用:把收到的信息分别交付给应用层中相应的进程。 运输层主要使用两种协议:传输控制协议TCP(Transmission Control Protocol):面向连接的,数据传输的单位是报文段,能够提供可靠的交付。 用户数据报协议UDP(User Datagram Protocol):无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。 -
网络层: 网络层主要包括两个任务: (1)在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,所以分组也叫IP数据报,或者数据报。 (2)选择合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。 协议:IP、ICMP、IGMP、ARP、RARP -
数据链路层: 两个主机之间的数据传输,总是在一段一段的链路上传送的,两个相邻结点之间传送数据是直接传送的(点对点)。 数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻结点之间的链路上"透明"地传送帧中的数据。 -
物理层: 透明传输比特流
为何有MAC地址还要IP地址 假设两点在一个网络内,只需要MAC地址即可,例如使用交换机可以将多台电脑组成一个网络。 如果两点不在一个网络内,就需要IP地址了,因为IP地址含有两个部分,一个是网络地址,一个是主机地址。因此,通过对方的IP地址,可以判断对方是否和本机在一个网络内,如果在一个网络内,如上所述,只需要对方的MAC地址即可通信。
如果不在一个网络内,本机的网络层就认为数据应该发送给网关。网关就相当于网络的门卫。要想把数据发给网关,同样需要知道网关的MAC地址。 电脑里缓存了一张ARP表,该表主要有两列,一列是IP地址,另外一列是MAC地址。这张表不是天生就有的,随着网卡收到网络中的各种通信数据,不断学习增加的。 如果ARP表中有网关IP地址对应的MAC地址,则问题就转化为网内数据发送。如果ARP表中没有网关IP地址对应的MAC地址,即向网内广播,询问该IP地址的MAC地址。网关收到广播后,发现是问自己的MAC地址,就回复对方自己的MAC地址。然后数据发给网关,也转换为网内数据发送。
TCP和UDP的区别
- TCP是面向连接的(打电话之前要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。
- TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,并且不保证可靠交付。
- TCP通过校验和,重传控制,序号表示,滑动窗口,确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
- UDP具有较好的实时性,工作效率比TCP高,适用于要求传输告诉或者实时性较高的通信或者广播通信。
- 每一条TCP连接只能是点到点的;UDP支持一对一通信,一对多,多对一和多对多的交互通信。
- TCP对系统资源要求较多,UDP对系统资源要求较少。
拥塞控制和流量控制都是什么,两者的区别
- 流量控制是端到端的控制,例如A通过网络给B发送数据,A发送的太快导致B没法接收(B缓冲窗口过小或者处理过慢),这时候的控制就是流量控制,通过滑动窗口的大小来改变实现。
- 拥塞控制是指A与B之间的网络发生堵塞导致传输过慢或者丢包,来不及传输。防止过多的数据注入到网络中,这样可以使网络中的路由器或者链路不至于过载。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络性能有关的所有因素。
TCP的三次握手、四次挥手。
播放视频用TCP还是UDP,为什么? TCP和UDP是质量和实时性的权衡。 拿视频网站来说,可以完全缓冲20s再播放,不会带来什么影响,但是如果有马赛克之类的东西出现肯定是不好的,所以同TCP。 对于视频聊天,如果缓冲5s,整个聊天无法实时进行,画面质量受损反而可以接受,所以使用UDP。
响应状态码
- 1xx:表示临时响应并需要请求者继续执行操作的状态代码
- 2xx:表示成功处理了请求的状态代码
- 3xx:表示要完成请求,需要进一步操作。通常用来表示重定向。
- 4xx:表示客户端的错误,如请求中有错误的语法不能完成。
- 5xx:表示服务器端的差错,如服务器失效无法完成请求。
HTTP和HTTPS的区别:
- HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
- HTTPS:即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
- HTTPS协议的主要作用分为:建立一个信息安全通道,保证数据传输的安全;确认网站的真实性。
HTTP和Socket的区别
- http为短连接:客户端发送请求都需要服务器端会送响应,请求结束后,主动释放链接,因此为短连接。通常的做法是,不需要任何数据,也需要保持每隔一段时间向服务器发送"保持连接"的请求,这样可以保证客户端在服务器端是“上线”状态。
- socket为长连接:通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通讯双方开始互发数据,知道双方断开连接。在实际应用中,由于网络节点过多,在传输过程中,会被节点断开连接,因此要轮询高速网络,使该节点处于活跃状态。
在地址栏打入http://www.baidu.com会发生什么
- 当输入www.baidu.com时,计算机会请求DNS服务器,进行域名转换,得到服务器IP地址。
- 同时对服务器发出请求,服务器响应请求。
- 客户端浏览器发起一个HTTP会话到IP地址,然后通过tcp进行封装数据包,输入到网络层。
死锁的四个必要条件
- 互斥条件:资源不能被共享,只能由一个进程使用。
- 请求与保持:已经得到资源的进程可以再次申请新的资源。
- 非剥夺条件:已经分配的资源不能从相应的进程中被强制地剥夺。
- 循环等待条件:系统中若干进程组成环路,该环路中每个进程都在等待相邻近进程正占用的资源。
递归的缺点:递归调用函数,浪费空间;递归太深容易造成堆栈的溢出
|