计算机网络——01网络模型

作者:流浪舟

目录:
  1. 概念
  2. 分类
  3. 网络分层
  4. TCP确认机制
  5. 连接与关闭
  6. TCP/UDP
  7. TCP/ISO面向连接与无连接
  8. 总结

一、概念

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统

二、分类

地理范围划分是一种大家都认可的通用网络划分标准。按这种标准可以把各种网络类型划分为局域网、城域网、广域网三种。最后讲一下互联网!

  • 局域网:(Local Area Network,LAN) 通常我们常见的“LAN”就是指局域网,这是我们最常见、应用最广的一种网络。所谓局域网,那就是在局部地区范围内的网络,它所覆盖的地区范围较小。局域网在计算机数量配置上没有太多的限制,少的可以只有两台,多的可达几百台。一般来说在企业局域网中,工作站的数量在几十到两百台次左右。在网络所涉及的地理距离上一般来说可以是几米至10公里以内。这种网络的特点就是:连接范围窄、用户数少、配置容易、连接速率高。目前局域网最快的速率要算现今的10G以太网了。IEEE的802标准委员会定义了多种主要的LAN网:以太网(Ethernet)、令牌环网(Token Ring)、光纤分布式接口网络(FDDI)、异步传输模式网(ATM)以及最新的无线局域网(WLAN)。

  • 城域网:(Metropolitan Area Network,MAN) 这种网络一般来说是在一个城市,但不在同一地理小区范围内的计算机互联。这种网络的连接距离可以在10-100公里,它采用的是IEEE802.6标准。MAN与LAN相比扩展的距离更长,连接的计算机数量更多,在地理范围上可以说是LAN网络的延伸。在一个大型城市或都市地区,一个MAN网络通常连接着多个LAN网。如连接政府机构的LAN、医院的LAN、电信的LAN、公司企业的LAN等等。

  • 广域网:(Wide Area Network,WAN) 这种网络也称为远程网,所覆盖的范围比城域网(MAN)更广,它一般是在不同城市之间的LAN或者MAN网络互联,地理范围可从几百公里到几千公里。因为距离较远,信息衰减比较严重,所以这种网络一般是要租用专线,通过IMP(接口信息处理)协议和线路连接起来,构成网状结构。这种城域网因为所连接的用户多,总出口带宽有限,所以用户的终端连接速率一般较低,通常为9.6Kbps-45Mbps 如:邮电部的CHINANET,CHINAPAC,和CHINADDN网。

  • 互联网:(internet)指的是网络之间所串连成的最大网络,这些网络以一组通用的协议相连,形成逻辑上的大型国际网络,始于1969年美国的阿帕网。通常internet泛指互联网,而Internet则特指因特网(国际互联网)。因特网于1969年诞生于美国,最初名为“阿帕网”(ARPAnet)是一个军用研究系统 ,采用TCP/IP协议,现在则已发展成为一个覆盖五大洲多个国家的开放型全球计算机网络系统。

三、网络分层

为什么要分层?在计算机之间通信,主要是为了发送一些数据信息,一台计算机把数据发送出去,首先要让网络识别目的主机,能够找到它;明确目的主机是否连接网络;机子上的应用是否打开准备接收数据以及相应的异常处理。让我们去处理的话,会怎么解决这些问题呢?这里建立了两种模型:

OSI七层模型:亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。

应用层:

网络服务与最终用户的一个接口。

协议有:HTTP FTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP

表示层:

数据的表示、安全、压缩。

格式有,JPEG、ASCll,加密格式等

会话层:

建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话

传输层:

定义传输数据的协议端口号,以及流控和差错校验。

协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层

网络层:

网络层的主要工作是定义网络地址、区分网段、子网内MAC寻址、对于不同子网的数据包进行路由

协议有:ICMP(因特网控制报文协议) IP(IPV4 IPV6) ARP地址解析 Routing路由协议

数据链路层:

建立逻辑连接、进行硬件地址寻址、差错校验等功能,将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。

协议有:Ethernet PPP

物理层:

建立、维护、断开物理连接,比特传输。

TCP/IP模型:(Transmission Control Protocol / Internet Protocol,传输控制协议/网络互联协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF国际互联网工程任务组的RFC 793 定义。

TCP/IP模型合并了前三层为应用层,应用层定义了各种各样的协议来规范数据格式,常见的在HTTP的Header请求头中,分别定义了请求数据格式Accept和响应数据格式Content-Type,有了这个规范以后,当对方接收到请求以后就知道该用什么格式来解析,然后对请求进行处理。而链路层定义了主机的身份,即MAC地址,而网络层定义了IP地址,明确了主机所在的网段,有了这两个地址,数据包就从可以从一个主机发送到另一台主机。但实际上数据包是从一个主机的某个应用程序发出,然后由对方主机的应用程序接收。

因为数据链路层和物理层的内容相差不多,所以在TCP/IP协议中它们被归并在网络接口层次里。只有四层体系结TCP/IP协议,与有七层体系结构的OSI相比要简单了不少,也正是这样,TCP/IP协议在实际的应用中效率更高,成本更低 。

ARP协议(网络层):

即地址解析协议,是根据IP地址获取MAC地址的一个网络层协议。其工作原理如下:ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太网数据包,最终由以太网广播给子网内的所有主机,每一台主机都会接收到这个数据包,并取出标头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址;与此同时,ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

路由协议

首先通过IP协议来判断两台主机是否在同一个子网中,如果在同一个子网,就通过ARP协议查询对应的MAC地址,然后以广播的形式向该子网内的主机发送数据包;如果不在同一个子网,以太网会将该数据包转发给本子网的网关进行路由。网关是互联网上子网与子网之间的桥梁,所以网关会进行多次转发,最终将该数据包转发到目标IP所在的子网中,然后再通过ARP获取目标机MAC,最终也是通过广播形式将数据包发送给接收方。而完成这个路由协议的物理设备就是路由器,它会根据信道情况,选择并设定路由,以最佳路径来转发数据包。

四、TCP确认机制

应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

  • 在数据正确性与合法性上,TCP用一个校验和函数来检验数据是否有错误,在发送和接收时都要计算校验和;同时可以使用MD5认证对数据进行加密。
  • 在保证可靠性上,采用超时重传和捎带确认机制。
  • 在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。

在拥塞控制上,采用TCP拥塞控制算法(也称AIMD算法)。该算法主要包括四个主要部分:

(1)慢启动

每当建立一个TCP连接时或一个TCP连接发生超时重传后,该连接便进入慢启动阶段。进入慢启动后,TCP实体将拥塞窗口的大小初始化为一个报文段,此后,每收到一个报文段的确认(ACK),拥塞窗口cwnd(congestion window)按指数增加。当cwnd值超过慢启动阐值或发生报文段丢失重传时,慢启动阶段结束。前者进入拥塞避免阶段,后者重新进入慢启动阶段。

(2)拥塞避免

在慢启阶段,当cwnd值超过慢启动阐值后,慢启动过程结束,TCP连接进入拥塞避免阶段。在拥塞避免阶段,每一次发送的cwnd个报文段被完全确认后,才将cwnd值加1。在此阶段,cwnd值线性增加。

(3)快速重传

快速重传是对超时重传的改进。当源端收到对同一个报文的三个重复确认时,就确定一个报文段已经丢失,因此立刻重传丢失的报文段,而不必等到重传定时器(RTO)超时。以此减少不必要的等待时间。

(4)快速恢复

快速恢复是对丢失恢复机制的改进。在快速重传之后,不经过慢启动过程而直接进入拥塞避免阶段。每当快速重传后,置sshtesrh=cwnd/2、ewnd=ssthresh+3。此后,每收到一个重复确认,将cwnd值加1,直至收到对丢失报文段和其后若干报文段的累积确认后,置cwnd=ssthesrh,进入拥塞避免阶段。

五、连接与关闭

建立连接:

TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN同步序列编号数据包连接请求后,等待对方回答


SYN+ACK,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。

TCP三次握手的过程如下:

  1. 客户端发送SYN(SEQ=x序列号)报文给服务器端,进入SYN_SEND状态。
  2. 服务器端收到SYN报文,回应一个SYN (SEQ=y)+ ACK(ACK=x+1)报文,进入SYN_RECV状态。
  3. 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入已连接状态。

三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

连接终止:

建立一个连接需要三次握手,而终止一个连接要经过四次挥手,这是由TCP的半关闭(half-close)造成的。如下图所示。


(1) 某个应用进程首先调用close,称该端执行“主动关闭”。该端的TCP于是发送一个FIN结束标志数据包,表示数据发送完毕。

(2) 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认,发送ACK数据包。

注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因此,FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。

(3) 此时两者之间能够继续互相发送数据包,然而一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字,这导致它的TCP也发送一个FIN。

(4) 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)ACK确认这个FIN。既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。

注意
当一个进程无论自愿地(调用exit或从main函数返回)还是非自愿地(收到一个终止本进程的信号)终止时,所有打开的描述符都被关闭,这也导致仍然打开的任何TCP连接上也发出一个FIN。无论是客户还是服务器,任何一端都可以执行主动关闭。通常情况是,客户执行主动关闭,但是某些协议,例如,HTTP/1.0却由服务器执行主动关闭。

六、TCP和UDP

  • TCP 是面向连接的传输控制协议,而UDP 提供了无连接的数据报服务;

  • TCP 具有确认机制,确保传输数据的正确性,很少出现丢失或乱序;

  • UDP 在传输数据前不建立连接,不对数据报进行查改,无须等待对方的应答,会出现分组丢失、重复、乱序;

  • UDP 具有较好的实时性,工作效率较 TCP 协议高;

  • UDP 段结构比 TCP 的段结构简单,因此网络开销也小。

TCP 协议可以保证接收端毫无差错地接收到发送端发出的字节流,为应用程序提供可靠的通信服务。对可靠性要求高的通信系统往往使用 TCP 传输数据,比如 HTTP 运用 TCP 进行数据的传输。

七、TCP、ISO模型

面向连接与无连接,面向连接可以分为三个阶段:

  1. 发出链接,建立连接
  2. 连接成功才开始传输
  3. 数据传输完毕,必须释放连接

无连接直接进行数据传输。

TCP/IP模型减少了会话层,表示层,可以变成经典5层网络模型,TCP/IP协议能够迅速发展起来并成为事实上的标准,是它恰好适应了世界范围内数据通信的需要。它有以下
特点:

(1)协议标准是完全开放的,可以供用户免费使用不收费。
(2)独立于网络硬件系统,可以运行在广域网,更适合于互联网。
(3)网络地址IP统一分配,网络中每一设备和终端都具有一个唯一MAC物理地址。

对比:OSI层次间存在严格的调用关系,两个层通信必须通过下一层,不能越级,而TCP/IP可以越过下一层,直接使用更低层次所提供的服务,因而减少了一些不必要的开销,提高了效率;TCP/IP协议先出现,之后建立模型,而ISO/OSI先建立模型,后有协议。

总结:

讲了这么多,那么重点在哪呢?在目录三开始的网络分层到最后的TCP/OSI模型对比,分层就记住TCP/IP经典五层模型和各层的协议就行了,其实四层的更好记住,四层无非是应用的服务层、传输层(弄端口号的)、网络层(弄网络IP地址,获取MAC地址及路由寻找的),接口层(偏向物理的,定义MAC地址,将比特组装成帧进行发送)。有个概念就行,另外TCP确认机制(拥塞控制机制)需要掌握,以及TCP连接和断开的握手机制,还有TCP\UDP和TCP\ISO模型对比都是重点,需要掌握。

模型对比,分层就记住TCP/IP经典五层模型和各层的协议就行了,其实四层的更好记住,四层无非是应用的服务层、传输层(弄端口号的)、网络层(弄网络IP地址,获取MAC地址及路由寻找的),接口层(偏向物理的,定义MAC地址,将比特组装成帧进行发送)。有个概念就行,另外TCP确认机制(拥塞控制机制)需要掌握,以及TCP连接和断开的握手机制,还有TCP\UDP和TCP\ISO模型对比都是重点,需要掌握。

硬核!肝完了!^ _ ^


公众号:小码之光(文章全部首发)
个人网站 流浪舟引导
github coderxm

计算机网络——01网络模型相关推荐

  1. 【重难点】【计算机网络 01】OSI 七层模型和 TCP/IP 四层模型、IP 地址分为哪几类、ping 的原理、从浏览器地址栏输入 URL 到显示网页的过程、什么是 socket

    [重难点][计算机网络 01]OSI 七层模型和 TCP/IP 四层模型.IP 地址分为哪几类.ping 的原理.从浏览器地址栏输入 URL 到显示网页的过程.什么是 socket 文章目录 [重难点 ...

  2. 计算机网络01:因特网概述、三种交换方式、计算机网络定义和分类、计算机网络的性能指标、计算机网络体系结构

    学习链接: 湖科大教书匠 因特网概述 网络:由若干节点和连接这些节点的链路组成 互连(联)网:多个网络通过路由器互连起来,构成一个覆盖范围更大的网络,即互连(联)网:因此互联网是"网络的网络 ...

  3. 计算机网络的拓扑模型,基于复杂网络模型的计算机网络拓扑结构研究

    一篇基于复杂网络模型的计算机网络拓扑结构研究论文 第 卷 期第年月 计算 机 科 学 基于复杂网络模型的计算机网络拓扑结构研究 杜彩凤 中国石油大学 摘 , 东营 , 要 , 随着计算机网络的快速发展 ...

  4. 计算机网络基础必备(三次握手,四次握手,以及HTTP协议相关)

    目录 一.计算机网络 通信协议 网络模型 二.TCP/IP TCP/IP 与 HTTP TCP 与 UDP TCP连接的建立与终止 TCP报文首部 TCP 三次握手 TCP 四次挥手 四个计时器 保持 ...

  5. 在一个html加载多个echarts,Echarts一个页面加载多个图表及图表自适应

    Echarts一个页面加载多个图表及图表自适应 模块化加载 //入口 require.config({ paths: { echarts: 'http://echarts.baidu.com/buil ...

  6. 缓解环境噪声对音频质量干扰

    随着数字技术的发展,我们的生活越来越离不开音频,对音频使用和呈现方式也越来越多样化,人们也从去单纯的听录制好的音频转向录制属于自己的音频,例如录歌.会议录音.录制短视频等.我们这些音频是高质量,清晰可 ...

  7. 一种基于LSTM的音频质量检测方案

    ·背景· 随着网络技术的发展,各种各样的音视频产品应接不暇,应用场景也越来越多样,使人们的生活更加丰富多彩.与此同时,人们对音频的质量也有越来越高的要求,而如何准确评估音频质量好坏成为了相关行业的研究 ...

  8. 软件测试 | 测试开发 | 一种能有效缓解环境噪声对音频质量干扰的方案

    背景 随着数字技术的发展,我们的生活越来越离不开音频,对音频使用和呈现方式也越来越多样化,人们也从去单纯的听录制好的音频转向录制属于自己的音频,例如录歌.会议录音.录制短视频等.我们这些音频是高质量, ...

  9. 一种能有效缓解环境噪声对音频质量干扰的方案

    背景 随着数字技术的发展,我们的生活越来越离不开音频,对音频使用和呈现方式也越来越多样化,人们也从去单纯的听录制好的音频转向录制属于自己的音频,例如录歌.会议录音.录制短视频等.我们这些音频是高质量, ...

最新文章

  1. html宽度自适应怎么调整li超出隐藏,HTML篇之CSS样式——div ul li 嵌套后解决高度自适应方法...
  2. Silverlight学习笔记之页面跳转
  3. 云计算竞争愈发激烈,2019年云计算运维前景怎么样?
  4. 【oracle】日期加减计算
  5. wireMock快速伪造restful服务
  6. 哈希表及哈希冲突解决办法
  7. 【Verilog语法】读文件
  8. 彻底理解Python切片
  9. 最新 Bitnami redmine安装与配置
  10. 如何在network monitor中查找试图建立TCP连接的帧?
  11. embed标签动态改变Src的值,局部刷新播放其他视频的javascript方法
  12. 论文笔记:Bridging Textual and Tabular Data for Cross-Domain Text-to-SQL Semantic Parsing
  13. 国民生产总值饼状图_预期寿命和国内生产总值
  14. Elasticsearch之近义词/同义词的使用
  15. Failed to parse mapping resource......
  16. 不值一提的计算机基础教程-0-前言
  17. linux调试工具ipcs的深入分析
  18. 共享锁(S锁)和排它锁(X锁)
  19. 基于Matlab答题卡图像检测识别研究
  20. php社区twig,twig模板简单实用介绍

热门文章

  1. Hexo-显示用户头像
  2. 5.关于laravel框架中Contorller
  3. 兰伯特(Lambert)模型
  4. php递归完成mega网盘文件命名规则
  5. 计算机组成原理中fa代表什么,计算机组成原理名词解释
  6. 关于机器人状态估计/VIO/VSLAM中能观性/可观性/FEJ的一些直接解释
  7. cics oracle xad_CICS安装问题及解决方式
  8. Spring Boot 2.x基础教程:使用JTA实现多数据源的事务管理
  9. 常见功能点测试用例大全
  10. iOS 跳转到 App Store 下载评分页面