JavaGuide知识点整理——盘算机网络常见知识点

程序员 2024-9-4 02:22:57 114 0 来自 中国
OSI七层模子是什么?每一层的作用是什么?

起首要明白七层模子是一个理论上的分层,是抽象的模子体,并没有实际的实现。下面是简单的明白。

  • 物理层
    物理层的作用是提供了网络的双向通讯,为双向传输提供了有保障的通路。其中界说了四个同一特性:电气特性,呆板特性,功能特性,规程特性。
  • 数据链路层
    交换机就是工作在二层数据链路曾,链路层主要有三个功能:

    • 提供了通讯过程中用到的mac地点。盘算机通讯过程中一共要用到两个地点:一个是物理mac地点,一个是逻辑ip地点。 mac地点就是数据链路层提供的。实在就是我们的网卡地点。
    • 负责数据帧转发。数据链路层传输的数据被称为数据帧
    • 提供错误检测机制。只能发现题目但不能纠正。

  • 网络层
    路由器工作在网络层。网络层一共有四个功能:

    • 提供逻辑ip地点
    • 连接差异的媒介范例(内网和外网),使差异的媒介之间可以相互通讯。
    • 根据路由器运行的差异路由协议选择最佳路径
    • 在选好的最佳路径上负责路由数据包

  • 传输层
    传输层的功能是提供了端标语码的概念。
  • 会话层
    会话层的作用是负责在应用程序之间创建,维护并清除会话连接
  • 体现层
    体现层的作用是负责数据加密,提供了四种常见的加密方式:

    • 对称加密:加密方式和揭秘方式使用类似的密钥
    • 非对称加密:一把私钥,N个公钥
    • hash 256加密
    • 光密

  • 应用层
    给用户和抽象的网络之间提供一个接口,使得用户可以通过使用应用程序,app,来使用整个6层网络模子。
TCP/IP四层模子是什么?每一层的作用是什么?

1.png 上面说到了osi七层模子是一种很理论上的东西,而它落地的实现之一就有tcp/ip四层模子。固然了这种模子感觉是翻译过来的,以是中文名会略有差异,我看到了很多多少种叫法,但是主要作用是稳定的,而且差异名称也类似。我这里用的是一种比力常见的译法:

  • 应用层
    TCP/IP的应用层对应OSI的应用层,会话层,体现层。主要功能是:

    • 为用户的应用提供服务并支持网络访问
    • 负责管理网络中盘算之间的通讯,提供传输层不具备的连接干系功能
    • 负责转化数据格式,处理数据加密和数据压缩

  • 传输层
    传输层主要提供以下几个功能:

    • 提供应用程序接口,为网络应用程序提供网络访问的途径。
    • 提供可以从多个应用层吸取消息的功能(多路复用),同时可以提供把消息分发给应用程序的功能(多路分解)
    • 对数据举行错误检测,流量控制

TCP协议就是一个传输协议,包罗下面几个特性:
1.必要三次握手创建连接,四次挥手断开连接
2. 面向流的处理,可以一个个字节的方式吸取数据,然后把这些数据构成数据段,发给网际层
3. 对数据发送举行流量控制,克制发送和吸取方因为缓存写满造成数据丢失。
4. 对数据举行校验,分段的数据有重排序功能,对错误和丢失的数据有重发机制。
还有一个类似TCP的协议是UDP,UPD不面向连接,错误检测机制不如TCP,也不举行流量控制。但是就因为校验少,以是性能比TCP好。如果不器重数据校验更器重性能的话,可以用UDP。

  • 网际层
    网际层主要是办理数据由一个盘算机的ip怎样路由到目标盘算机的过程规范。我们的盘算机消息发出去之后,司理了哪些处理才气精确的找到目标盘算机,其中包罗了IP,ARP,RARP,ICMP等协议。
    而ip地点是一套有规则的数据组合,通过ip地点可以快速定位到我们的目标盘算机地域,和mac组合就能快速找当网络中具体的一台盘算机了。
  • 网络访问层
    主要是管理物理网络预备所必要的数据,包罗:

    • 与盘算机网络适配器连接
    • 根据合适的方式调整数据传输
    • 把数据转化为电子流大概脉冲的情势在传输介质上传输
    • 对发送的数据添加错误查抄信息,对吸取的数据举行数据校验

为什么网络要分层?

可以使得每一层的功能明白,而且各层之间独立,增长了每一层的灵活性。简单来讲分层的长处如下:

  • 各层之间独立,把复杂的题目分解为多少个比力轻易处理的更小一些的题目。
  • 灵活性好,恣意一层发生变革时(比方技能变革),只必要层间接口关系保持稳定,团体都不受影响。
  • 某层提供的服务不必要时可以直接取消。
  • 结构上可分割开,各层都接纳最合适的技能来实现。
  • 易于实现和维护。
  • 促进标准化和流程化。
应用层有哪些常见的协议?

HTTP:超文本传输协议

超文本传输协议主要是为web欣赏器与web服务器之间的通讯而筹划的。当我们使用欣赏器欣赏网页的时间,我们的网页就是通过http哀求举行加载的,过程如下:


http协议是基于tcp协议,发送http哀求之前起首要创建tcp连接也就是要履历三次握手,现在使用的http协议大部分都是1.1,在1.1的协议内里默认开启了keep-Alive,如许创建的连接可以多次在哀求中被复用。
别的http协议是无状态协议,它无法记载客户端用户的状态,一样寻常我们都是通过Session来记载客户端用户的状态。
SMTP:简单邮件传输(发送)协议

简单邮件传输(发送)协议基于TCP协议,用来发送电子邮件。
留意:吸取邮件的协议不是SMTP而是POP3协议。
电子邮件的发送过程如下(好比我是163邮箱发送给qq邮箱):

  • 通过SMTP协议将写好的邮件交给163邮箱服务器。
  • 163邮箱服务器发现我发的是 qq邮箱。它使用SMTP协议将邮件转发到qq邮箱服务器
  • qq邮箱服务器担当邮件后,关照收件邮箱来收邮件(用户通过POP3/IMAP协议将邮件取出)
怎样判定邮箱是真正存在的?

  • 查找邮箱域名对应的SMTP服务器地点
  • 实验与服务器创建连接
  • 连接成功后实验想必要验证的邮箱发送邮件
  • 根据返回效果判定邮箱地点的真实性
POP3/IMAP邮件吸取的协议

这两个没必要论述,只要相识都是负责邮件吸取的协议即可。不要和SMTP协议搞混了。SMTP协议负责邮件的发送,POP3/IMAP负责邮件的吸取。
FTP文件传输协议

FTP协议主要提供文件传输服务。基于TCP实现可靠的传输。使用FTP传输文件的利益是可以屏蔽利用体系和文件存储方式。
FTP是基于客户-服务器模子而筹划的,在客户端与FTP服务器之间创建两个连接。如果我们要基于FTP协议开发一个文件传输的软件的话,必要高清FTP的原理。
FTP的独特的上风同时也是别的客户服务器程序最大的差异点在于:它在两台通讯的主机之间使用了两条TCP连接(别的客户服务器应用程序一样寻常只有一条TCP连接)

  • 控制连接:用于传输控制信息(下令和相应)
  • 数据连接:用于数据传送
这种将下令和数据分开传送的头脑大大进步了FTP的效率。

3.png Telnet 远程登岸协议

Telnet协议通过一个终端登录到别的服务器,创建在可靠的传输协议TCP之上,Telnet协议最大的缺点之一是全部数据(包罗用户名和暗码)都是以明文情势发送,有潜伏安全风险。这也是Telnet很少使用并被称为SSH的非常安全的协议所取代的主要缘故原由
SSH:安全的网络传输协议

SSH是现在比力可靠,专为远程登岸会话和别的网络服务提供安全性的协议。使用SSH协议可以有用防止远程管理过程中的信息走漏题目。SSH创建在可靠的传输协议TCP之上。
Telnet和SSH之间主要区别在于SSH协议会对传输的数据举行加密包管数据安全性。
TCP与UDP

TCP与UDP的区别


  • 是否面向连接:UDP在传输数据之前不必要先创建连接。而TCP提供面向连接的服务。在传输数据之前必须先创建连接,数据传送竣事后要开释连接。
  • 是否可靠传输:收到UDP报文后不必要给出确认,也不包管数据不丢失,不包管是否序次送达。TCP提供可靠传输服务,转达数据前会三次握手创建连接,转达数据时有确认,窗口,重传,拥塞控制机制。通过TCP连接传输的数据无不对不丢失不重复且按序次送达。
  • 是否有状态:TCP传输是有状态的,好比TCP会记载自己发送消息的状态,是否发送了,是否被吸取了等。为此TCP必要维护复杂的连接状态表。而UDP是无状态的,发出去就不管了。
  • 传输效率:因为TCP多了很多机制,以是效率比UDP低。
  • 传输情势:TCP的面向字节省的,UDP是面向报文的
  • 首部开销:TCP首部开销20-60字节。UDP首部开销8字节
  • 是否提供广播大概多播服务:TCP只支持点对点,UDP支持1对1,1对多,多对多。
实在根据上面的特点我们能看出来两个协议重点不一样。TCP更在意精确性从而断送了性能,我们可以在精确性要求高的场景使用。好比文件传输,发送和吸取文件等。
而UDP则更在意性能而断送了精确性,在语音视频的时间使用,丢失几帧的不要紧的。
HTTP协议是基于TCP协议的。
使用TCP和UDP的协议分别有哪些?

运行于TCP协议之上的协议:

  • HTTP协议
  • HTTPS协议:更安全的超文本传输协议,身披SSH外套的HTTP协议
  • FTP协议
  • SMTP协议
  • POP3/IMAP协议
  • Telnet协议
  • SSH协议
运行于UDP协议之上的协议:

  • DHCP协议:动态主机设置协议,动态设置IP协议
  • DNS:域名体系将人类可读的域名转化为呆板可读的IP地点。我们可以明白其为转为互联网筹划的电话本,实际上DNS同时支持UDP和TCP协议。
TCP三次握手和四次挥手

这个网上很多教程,我这里也不消官方语言讲了,用白话大概说下:
TCP创建连接的时间三次握手(先确定发起方是客户端):

  • 第一次握手:客户端发送syn包到服务器,自己进入到syn_sent状态。
  • 第二次握手:服务器收到syn包,返回给客户端syn,服务器进入syn_recv状态
  • 第三次握手:客户端收到服务器的包并再次发送ack给服务器,双方都进入到established状态
三次握手完成后才正式开始传送数据。
TCP断开连接四次挥手(恣意一方都可以自动关闭连接):

  • 第一次挥手: 自动关闭方发送fin给另一方,告诉对方不会再发数据了(在这之前已发送还没吸取的还正常吸取)
  • 第二次挥手:被动方收到fin,发ack给对方。告诉对方我知道你不给我发了。
  • 第三次挥手:被动方发送fin给自动方,告诉对方我也不会再发数据了。
  • 第四次挥手:自动关闭方收到fin后,发ack给被动方。断开连接
在欣赏器中输入url表现主页的过程

总的来说分为下面几个过程:

  • 欣赏器查找域名的ip地点(DNS分析)
  • 欣赏器向web服务器发送一个http哀求
  • 服务器处理哀求
  • 服务器发回HTML相应
  • 欣赏器表现HTML。
HTTP状态码有哪些?

HTTP和HTTPS有什么区别?


  • 端标语:HTTP默认80,HTTPS默认443
  • URL前缀:HTTP的前缀是http://,HTTPS的前缀是https://
  • 安全性和资源斲丧:http协议运行在TCP之上,所传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS运行在TCP之上。所传输的内容都颠末加密,加密接纳对称加密,但对称加密的密钥用服务器方的证书举行了非对称加密。以是说我们可以明白为:HTTPS是加了一层的HTTP。以是HTTP性能比HTTPS好,但是安全性没有HTTPS高。
HTTP1.0和HTTP1.1的区别


  • 连接方式:1.0为短链接,1.1支持长连接
  • 状态相应码:1.1中添加了大量的状态码。
  • 缓存处理:1.0中主要使用header里的 If-Modified-Since,Expires来作为缓存判定标准,1.1引入了更多的缓存控制计谋。
  • 带宽优化以及网络连接的使用:1.1支持断点续传。在哀求头中引入了range头域,答应只哀求资源的某个部分。
HTTP是不生存状态的协议,怎样生存用户状态?

http是一种不生存状态,即无状态的协议。也就是说http协议自身不对哀求和相应之间的通讯状态举行生存。那么我们怎样生存用户状态呢?
session机制办理了这个题目。服务端给特定的用户创建特定的session之后就可以标识这个用户并跟踪这个用户了。
Cookie和Session的区别?

实在两者最大的区别就是Cookie是生存在客户端(欣赏器端),而Sission数据生存在服务器端。
URI和URL的区别


  • URI是同一资源标识符,可以唯一标识一个资源
  • URL是同一资源定位符,可以提供该资源的路径。它是一种具体的URI。不仅可以标识唯一资源,还可以定位该资源的信息。
本篇条记就记到这里,如果稍微帮到你了记得点个喜好点个关注,这篇条记是东拼西凑出来的知识点,比力杂,如果那里写的有题目欢迎支持,也祝各人工作顺顺遂利!
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-22 01:26, Processed in 0.188460 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表