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

OSI七层模型是什么?每一层的作用是什么?

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

  1. 物理层
    物理层的作用是提供了网络的双向通讯,为双向传输提供了有保障的通路。其中定义了四个统一特性:电气特性,机械特性,功能特性,规程特性。
  2. 数据链路层
    交换机就是工作在二层数据链路曾,链路层主要有三个功能:
    • 提供了通讯过程中用到的mac地址。计算机通讯过程中一共要用到两个地址:一个是物理mac地址,一个是逻辑ip地址。 mac地址就是数据链路层提供的。其实就是我们的网卡地址。
    • 负责数据帧转发。数据链路层传输的数据被称为数据帧
    • 提供错误检测机制。只能发现问题但不能纠正。
  3. 网络层
    路由器工作在网络层。网络层一共有四个功能:
    • 提供逻辑ip地址
    • 连接不同的媒介类型(内网和外网),使不同的媒介之间可以相互通信。
    • 根据路由器运行的不同路由协议选择最佳路径
    • 在选好的最佳路径上负责路由数据包
  4. 传输层
    传输层的功能是提供了端口号码的概念。
  5. 会话层
    会话层的作用是负责在应用程序之间建立,维护并解除会话连接
  6. 表示层
    表示层的作用是负责数据加密,提供了四种常见的加密方式:
    1. 对称加密:加密方式和揭秘方式使用相同的密钥
    2. 非对称加密:一把私钥,N个公钥
    3. hash 256加密
    4. 光密
  7. 应用层
    给用户和抽象的网络之间提供一个接口,使得用户可以通过使用应用程序,app,来使用整个6层网络模型。

TCP/IP四层模型是什么?每一层的作用是什么?

osi七层模型与tcp/ip四层模型对应关系

上面说到了osi七层模型是一种很理论上的东西,而它落地的实现之一就有tcp/ip四层模型。当然了这种模型感觉是翻译过来的,所以中文名会略有不同,我看到了好多种叫法,但是主要作用是不变的,而且不同名称也类似。我这里用的是一种比较常见的译法:

  • 应用层
    TCP/IP的应用层对应OSI的应用层,会话层,表示层。主要功能是:
    1. 为用户的应用提供服务并支持网络访问
    2. 负责管理网络中计算之间的通信,提供传输层不具备的连接相关功能
    3. 负责转化数据格式,处理数据加密和数据压缩
  • 传输层
    传输层主要提供以下几个功能:
    1. 提供应用程序接口,为网络应用程序提供网络访问的途径。
    2. 提供可以从多个应用层接收消息的功能(多路复用),同时可以提供把消息分发给应用程序的功能(多路分解)
    3. 对数据进行错误检测,流量控制

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

  • 网际层
    网际层主要是解决数据由一个计算机的ip如何路由到目标计算机的过程规范。我们的计算机消息发出去之后,经理了哪些处理才能正确的找到目标计算机,其中包括了IP,ARP,RARP,ICMP等协议。
    而ip地址是一套有规则的数据组合,通过ip地址可以快速定位到我们的目标计算机区域,和mac组合就能快速找当网络中具体的一台计算机了。
  • 网络访问层
    主要是管理物理网络准备所需要的数据,包括:
    1. 与计算机网络适配器连接
    2. 根据合适的方式调整数据传输
    3. 把数据转化为电子流或者脉冲的形式在传输介质上传输
    4. 对发送的数据添加错误检查信息,对接收的数据进行数据校验

为什么网络要分层?

可以使得每一层的功能明确,并且各层之间独立,增加了每一层的灵活性。简单来讲分层的优点如下:

  1. 各层之间独立,把复杂的问题分解为若干个比较容易处理的更小一些的问题。
  2. 灵活性好,任意一层发生变化时(例如技术变化),只需要层间接口关系保持不变,整体都不受影响。
  3. 某层提供的服务不需要时可以直接取消。
  4. 结构上可分割开,各层都采用最合适的技术来实现。
  5. 易于实现和维护。
  6. 促进标准化和流程化。

应用层有哪些常见的协议?

HTTP:超文本传输协议

超文本传输协议主要是为web浏览器与web服务器之间的通信而设计的。当我们使用浏览器浏览网页的时候,我们的网页就是通过http请求进行加载的,过程如下:

image.png

http协议是基于tcp协议,发送http请求之前首先要建立tcp连接也就是要经历三次握手,目前使用的http协议大部分都是1.1,在1.1的协议里面默认开启了keep-Alive,这样建立的连接可以多次在请求中被复用。
另外http协议是无状态协议,它无法记录客户端用户的状态,一般我们都是通过Session来记录客户端用户的状态。

SMTP:简单邮件传输(发送)协议

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

  1. 通过SMTP协议将写好的邮件交给163邮箱服务器。
  2. 163邮箱服务器发现我发的是 qq邮箱。它使用SMTP协议将邮件转发到qq邮箱服务器
  3. qq邮箱服务器接受邮件后,通知收件邮箱来收邮件(用户通过POP3/IMAP协议将邮件取出)

如何判断邮箱是真正存在的?

  1. 查找邮箱域名对应的SMTP服务器地址
  2. 尝试与服务器建立连接
  3. 连接成功后尝试想需要验证的邮箱发送邮件
  4. 根据返回结果判定邮箱地址的真实性

POP3/IMAP邮件接收的协议

这两个没必要阐述,只要了解都是负责邮件接收的协议即可。不要和SMTP协议搞混了。SMTP协议负责邮件的发送,POP3/IMAP负责邮件的接收。

FTP文件传输协议

FTP协议主要提供文件传输服务。基于TCP实现可靠的传输。使用FTP传输文件的好处是可以屏蔽操作系统和文件存储方式。
FTP是基于客户-服务器模型而设计的,在客户端与FTP服务器之间建立两个连接。如果我们要基于FTP协议开发一个文件传输的软件的话,需要高清FTP的原理。
FTP的独特的优势同时也是其它客户服务器程序最大的不同点在于:它在两台通信的主机之间使用了两条TCP连接(其它客户服务器应用程序一般只有一条TCP连接)

  1. 控制连接:用于传输控制信息(命令和响应)
  2. 数据连接:用于数据传送

这种将命令和数据分开传送的思想大大提高了FTP的效率。


FTP文件传输

Telnet 远程登陆协议

Telnet协议通过一个终端登录到其它服务器,建立在可靠的传输协议TCP之上,Telnet协议最大的缺点之一是所有数据(包括用户名和密码)都是以明文形式发送,有潜在安全风险。这也是Telnet很少使用并被称为SSH的非常安全的协议所取代的主要原因

SSH:安全的网络传输协议

SSH是目前比较可靠,专为远程登陆会话和其它网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH建立在可靠的传输协议TCP之上。
Telnet和SSH之间主要区别在于SSH协议会对传输的数据进行加密保证数据安全性。

TCP与UDP

TCP与UDP的区别

  1. 是否面向连接:UDP在传输数据之前不需要先建立连接。而TCP提供面向连接的服务。在传输数据之前必须先建立连接,数据传送结束后要释放连接。
  2. 是否可靠传输:收到UDP报文后不需要给出确认,也不保证数据不丢失,不保证是否顺序送达。TCP提供可靠传输服务,传递数据前会三次握手建立连接,传递数据时有确认,窗口,重传,拥塞控制机制。通过TCP连接传输的数据无差错不丢失不重复且按顺序送达。
  3. 是否有状态:TCP传输是有状态的,比如TCP会记录自己发送消息的状态,是否发送了,是否被接收了等。为此TCP需要维护复杂的连接状态表。而UDP是无状态的,发出去就不管了。
  4. 传输效率:因为TCP多了很多机制,所以效率比UDP低。
  5. 传输形式:TCP的面向字节流的,UDP是面向报文的
  6. 首部开销:TCP首部开销20-60字节。UDP首部开销8字节
  7. 是否提供广播或者多播服务:TCP只支持点对点,UDP支持1对1,1对多,多对多。

其实根据上面的特点我们能看出来两个协议重点不一样。TCP更在意准确性从而牺牲了性能,我们可以在准确性要求高的场景使用。比如文件传输,发送和接收文件等。
而UDP则更在意性能而牺牲了准确性,在语音视频的时候使用,丢失几帧的没关系的。
HTTP协议是基于TCP协议的。

使用TCP和UDP的协议分别有哪些?

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

  1. HTTP协议
  2. HTTPS协议:更安全的超文本传输协议,身披SSH外衣的HTTP协议
  3. FTP协议
  4. SMTP协议
  5. POP3/IMAP协议
  6. Telnet协议
  7. SSH协议

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

  1. DHCP协议:动态主机配置协议,动态配置IP协议
  2. DNS:域名系统将人类可读的域名转化为机器可读的IP地址。我们可以理解其为转为互联网设计的电话本,实际上DNS同时支持UDP和TCP协议。

TCP三次握手和四次挥手

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

  • 第一次握手:客户端发送syn包到服务器,自己进入到syn_sent状态。
  • 第二次握手:服务器收到syn包,返回给客户端syn,服务器进入syn_recv状态
  • 第三次握手:客户端收到服务器的包并再次发送ack给服务器,双方都进入到established状态

三次握手完成后才正式开始传送数据。
TCP断开连接四次挥手(任意一方都可以主动关闭连接):

  • 第一次挥手: 主动关闭方发送fin给另一方,告诉对方不会再发数据了(在这之前已发送还没接收的还正常接收)
  • 第二次挥手:被动方收到fin,发ack给对方。告诉对方我知道你不给我发了。
  • 第三次挥手:被动方发送fin给主动方,告诉对方我也不会再发数据了。
  • 第四次挥手:主动关闭方收到fin后,发ack给被动方。断开连接

在浏览器中输入url显示主页的过程

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

  1. 浏览器查找域名的ip地址(DNS解析)
  2. 浏览器向web服务器发送一个http请求
  3. 服务器处理请求
  4. 服务器发回HTML响应
  5. 浏览器显示HTML。

HTTP状态码有哪些?

HTTP状态码类别

HTTP和HTTPS有什么区别?

  1. 端口号:HTTP默认80,HTTPS默认443
  2. URL前缀:HTTP的前缀是http://,HTTPS的前缀是https://
  3. 安全性和资源消耗:http协议运行在TCP之上,所传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS运行在TCP之上。所传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说我们可以理解为:HTTPS是加了一层的HTTP。所以HTTP性能比HTTPS好,但是安全性没有HTTPS高。

HTTP1.0和HTTP1.1的区别

  1. 连接方式:1.0为短链接,1.1支持长连接
  2. 状态响应码:1.1中添加了大量的状态码。
  3. 缓存处理:1.0中主要使用header里的 If-Modified-Since,Expires来作为缓存判断标准,1.1引入了更多的缓存控制策略。
  4. 带宽优化以及网络连接的使用:1.1支持断点续传。在请求头中引入了range头域,允许只请求资源的某个部分。

HTTP是不保存状态的协议,如何保存用户状态?

http是一种不保存状态,即无状态的协议。也就是说http协议自身不对请求和响应之间的通信状态进行保存。那么我们如何保存用户状态呢?
session机制解决了这个问题。服务端给特定的用户创建特定的session之后就可以标识这个用户并跟踪这个用户了。

Cookie和Session的区别?

其实两者最大的区别就是Cookie是保存在客户端(浏览器端),而Sission数据保存在服务器端。

URI和URL的区别

  • URI是统一资源标识符,可以唯一标识一个资源
  • URL是统一资源定位符,可以提供该资源的路径。它是一种具体的URI。不仅可以标识唯一资源,还可以定位该资源的信息。

本篇笔记就记到这里,如果稍微帮到你了记得点个喜欢点个关注,这篇笔记是东拼西凑出来的知识点,比较杂,如果哪里写的有问题欢迎支持,也祝大家工作顺顺利利!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容