zoukankan      html  css  js  c++  java
  • 【读书笔记】计算机网络

    基础部分

    1、五层协议的体系结构分别是什么?

    应用层:确定进程之间通信的性质以及满足用户需求。提供进程信息交换和远地操作,作为互相作用的应用进程的用户代理。

    运输层:负责主机中两个进程的通信

    网络层:负责分组选择合适路由

    数据链路层:网络层交下来的数据封装成帧,两个相邻借点实现帧的传输

    物理层:透明地传输比特流

    2、OSI七层

    物理层: 机械、电子、定时接口通信通道上的原始比特流传输。
    重要协议:IEEE 802.1A, IEEE 802.2到IEEE 802.11

    数据链路层:物理(MAC)寻址,同时将比特流封装成帧传输。
    重要协议:FDDI, Ethernet, Arpanet, PDN, SLIP, PPP

    网络层:给处于不同地理位置的网络中的两个主机之间提供线路。
    重要协议:IP, ICMP, ARP, RARP, AKP, UUCP

    运输层:接收上一层的数据并进行分段和传输然后送给网络层,这一层数据叫做段。
    重要协议:TCP, UDP

    会话层:通过传输层建立的通路进行会话
    重要协议:SMTP、DNS

    表示层:可确保一个系统的应用层所发送的信息一定能被对方的应用层识别,必要时表示层通过一种通用格式来实现多种格式数据之间的转换。
    重要协议:Telnet, Rlogin, SNMP, Gopher

    应用层:为应用程序提供网络服务
    重要协议:HTTP、TFTP, FTP, NFS, WAIS、SMTP

     

    3、为何有MAC地址还要IP地址?

    • 一个是物理地址,一个是逻辑地址
    • 两点在一个网络内,只需要MAC。不在一个网络内,就需要IP。IP地址:网络+主机
    •  如果不在一个网络内,本机就要发给网关。网关的MAC地址需要ARP协议
    • ARP表:IP地址,MAC地址。自主学习增加。如果有网关IP对应的MAC地址,就转化发送。如果没有,就直接启动ARP协议向网内广播。

    TCP

     1、TCP和UDP的区别?

    • TCP面向连接;UDP无连接。
    • TCP可靠:传送数据 无差错,不丢失,不重复,按序列到达;UDP尽最大努力交付,不保证可靠传输
    • UDP具有较好的实时性,工作效率比TCP高,适用于高速传输和实时性有较高的通信或广播通信
    • 每一条TCP只能是点到点;UDP支持一对一,一对多,多对一,多对多
    • TCP对系统资源要求较多;UDP较少

    2、拥塞控制和流量控制都是什么,两者的区别?

    • 流量控制:端到端。A发的太快B无法接受。就是流量控制。用滑动窗口的大小改变来实现
    • 拥塞控制:AB网络发生堵塞导致传输过慢或者丢包,来不及传输。防止过多数据注入到网络中,这样可以使网络中的路由器和链路不至于过载。拥塞控制是全局性的过程。涉及到所有的主机,路由器,以及与降低网络性能有关的所有因素。

    3、谈谈TCP为什么要三次握手?为什么要四次挥手?

    • 三次握手:

        第一次。A跟B说,我要建立连接了

        第二次。B跟A说,OK那我也建立连接

        第三次。A跟B说,我知道了

      二三次都是为了保证连接可靠。如果只有一次,A无法发到B,那就是A自己建立连接,发消息,人家都收不到。

      第二次,是为了告诉A,B收到你的消息了;如果只有两次,B不知道A是否收到自己的消息。

      第三次握手是为了告诉B,A收到B的消息,并且可以互发信息。如果A的第一次握手因为延迟才到B。但现在AB已经聊完天,关闭连接了,B发出第二次,A没什么想跟B说的,就不会发出第三次握手,这样B就不会建立连接消耗资源。

    • 四次挥手:

        第一次,A跟B说,我要断开连接了。

        第二次,B跟A说,好的我知道了,我不接受你信息了

        第三次,B跟A说,我传给你的信息传完了,你可以关闭连接了

        第四次,A跟B说,好的,我关闭连接了。

      第二次挥手是为了告诉A,B知道你不再发送信息了,且B不再接收信息。但B仍可以向A发送信息。因为A是主动关闭的一方,但B可能仍然有信息未发送完。

      第三次挥手是为了告诉A,B的信息发完了,A你可以关闭连接了。

      第四次挥手是为了告诉B,A我知道可以关闭连接了,你也可以关闭了。

    注意:对A来说,第四次挥手后2MSL内未接收到B的第三次挥手信息才会关闭连接,否则会继续第四次挥手。防止B接收不到第四次挥手信息。(若B接收不到第四次挥手信息,将重复发送第三次挥手信息,这个2MSL就是如果真的有重复发送的第三次挥手信息,在这个时间内肯定到达A了(路由不出问题的话),就是为了保证B收到第四次挥手信息)

    • seq(序号):seq是对要发送的数据进行编号;
    • ack(确认号):ack是上一个接受的数据的序号+1,也是下次期望接受的数据编号
    • FIN=1释放连接,SYN=1连接请求/接受,ACK=1一个确认报文

    4、播放视频用TCP还是UDP?为什么?

    TCP 和 UDP 是质量和实时性的权衡。

    • 拿视频网站来说,你完全可以缓冲 20s 再播放,不会带来什么影响,但如果画面有马赛克之类的东西出现肯定是不好的,所以用 TCP。
    •  视频聊天,如果缓冲 5s,相信整个聊天已经没法愉快的进行了,而这时出现一些画面质量的损失也可以被接受,所以用 UDP。

    HTTP

    1、 响应码

    1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。

    2xx(成功)表示成功处理了请求的状态代码。

    3xx(重定向)表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向。

    4xx(请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。

    400(错误请求)服务器不理解请求的语法。

    401(未授权)请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。

    403(禁止)服务器拒绝请求。

    404(未找到)服务器找不到请求的网页。

    405(方法禁用)禁用请求中指定的方法。

    408(请求超时)服务器等候请求时发生超时。

    5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。 

    2、HTTP和TCP的区别?

    • 传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的
    • Socket本身不算是协议它只是提供了一个针对TCP或者UDP编程的接口。

    3、HTTP和HTTPS的区别?

    •  HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
    • HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
    •  HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

    4、HTTP和Socket的区别?

    •  http 为短连接:客户端发送请求都需要服务器端回送响应.请求结束后,主动释放链接,因此为短连接。通常的做法是,不需要任何数据,也要保持每隔一段时间向服务器发送”保持连接”的请求。这样可以保证客户端在服务器端是”上线”状态
    • Socket为长连接:通常情况下Socket 连接就是 TCP 连接,因此 Socket 连接一旦建立,通讯双方开始互发数据内容,直到双方断开连接。在实际应用中,由于网络节点过多,在传输过程中,会被节点断开连接,因此要通过轮询高速网络,该节点处于活跃状态。

    5、一次http请求的全过程

    (1)  打开浏览器,地址栏输入blog.csdn.net。

    (2) 开始进行域名解析

      •  浏览器自身搜dns缓存 搜blog.csdn.net有没有缓存 看看有没有过期,如果过期就这个结束
      • 搜索操作系统 自身的dns缓存 
      • 读取本地的host文件;
      •  浏览器发起一个dns的一个系统调用 

    (3)浏览器获得域名对应的ip地址后 发起tcp三次握手

    (4) tcp/ip 链接建立起来后,浏览器就可以向服务器发送http 请求 。

    (5) 服务器端接受到请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果数据返回给浏览器,如果是一个完整的网页,就是把完整的html页面代码返回给浏览器。

    (6) 浏览器拿到html页面代码,解析和渲染页面,里面的 js、css图片资源都需要经过上面的步骤。

    (7) 浏览器拿到资源对页面进行渲染,最终把一个完整的页面呈现给用户。

    一些协议

    1、常用端口号

    FTP telnet SMTP DNS TFTP HTTP SNMP
    21 23 25 53 69 80 161

    2、ICMP协议(IP)

    因特网控制报文协议;TCP/IP协议族的一个子协议;在IP主机、路由器之间传递控制消息。

    ICMP报文:差错报告报文和询问报文

    3、ARP协议(IP)

    地址解析协议

    4、HTTP协议

    HTTP超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。

    GET/POST/PUT/DELETE

    5、DHCP协议

    动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段。

    6、Telnet协议(TCP)

    它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于DOS模式下的通信服务。

    7、SMTP协议(TCP)

    定义了简单邮件传送协议,现在很多邮件服务器都用的是这个协议,用于发送邮件。

    8、 DNS协议(UDP)

    用于域名解析服务,将域名地址转换为IP地址。它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

    9、TFTP协议(UDP)

    一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。

  • 相关阅读:
    tableView的高度问题
    信任机型
    cell 内部 设置width 总不对
    图文混排
    UICollectionview实现自定义cell的移动删除
    ios 各种技术
    打包ane之后在FB上生成ipa的阶段错误
    自动布局出代码植入 的图像化实例
    MapReduce编程实例
    二叉树的遍历(递归遍历、非递归遍历、层序遍历)
  • 原文地址:https://www.cnblogs.com/Asumi/p/12499939.html
Copyright © 2011-2022 走看看