本文是参考【TCP/IP详解卷一

本文是该系列文章的第一篇,将简单概述一下网络分层等简单知识

网络分层以及协议介绍

  • 一、网络七层模型
  • 二、TCP/IP协议模型
  • 三、TCP/IP协议栈
  • 四、总结

一、网络七层模型

网络通信是一个非常复杂的过程,国际标准组织(ISO)将这个过程分为七个层次,将其称为OSI模型,七个层次分别为:应用层表示层会话层传输层网络层数据链路层物理层

它们的含义如下表所示:

编号 名称 含义
7 应用层 提供应用程序间的通信
6 表示层 处理数据格式、加密等工作
5 会话层 建立、连接、维护管理、关闭会话
4 传输层 建立多个应用程序间的连接与关联
3 网络层 寻址和路由的选择
2 数据链路层 提供介质访问
1 物理层 比特流传输

之所以将其分为七个层次,是为了让开发人员可以在不同的领域分别实现整个系统的不同部分,就像一个非常庞大的工程,每个员工都有自己擅长的岗位和专门负责的工作。

我们来看一个例子,来理解一下这七层模型:

中秋快到了,某上市公司的Boss说要给所有的员工(包括总部以及分公司的所有员工)发月饼,于是就有了下面这副图


OSI参考模型要遵循以下5个原则:

  1. 各个层级之间有清晰的边界,便于理解各个层级的功能
  2. 每个层实现的功能不一样,并且不会互相影响
  3. 层与层之间是服务与被服务的关系
  4. 层次划分有利于国际标准协议的制定
  5. 层次数目越多,就越能避免各个层的功能重复

二、TCP/IP协议模型

上面讲了OSI参考模型一共有七层,那么我们再来看看另外一个模型,它是被TCP/IP协议采纳所使用的,一共有4个层次,如下表所示

编号 名称 含义
7 应用层 处理特定的应用程序细节。例如:HTTP、DNS
4 传输层 提供再抽象的、由应用管理的端口之间的数据交换。例如:TCP、UDP
3 网络层 定义抽象的数据包和提供路由。例如:IP、IPv6、ICMP
2 链路层 用于网络层到基于多接入链路层网络的链路层的地址映射的非正式的“层”。例如:ARP

其中应用层可以看成是OSI模型中应用层、表示层、会话层的结合。

说到这两个协议,我们就要来了解以下它们的特点,其中IP协议是一种不可靠的协议,IP发送给链路层数据时,有可能会造成数据丢失,因此在传输层中的TCP协议就可以为其增加一层安全保障,来处理这种数据丢失的现象,因此我们也说TCP协议是可靠的,来看一个例子

我们在淘宝上买了一件衣服,此时我们是买家,那么卖我们衣服的人就是卖家,此时这两者之间建立成的协议为当买家收到衣服以后点击确认收货即可完成交易,我们把这个协议可以看成是TCP协议。

那么卖家需要将衣服通过快递的方式发给我们,那么卖家此时需要与快递公司建立成一个协议,即快递公司帮卖家把衣服送到指定的买家手中就算完成交易,我们可以把这个协议看成是IP协议。

设想一下,快递公司有可能会把快递弄丢,按照现在的社会现象,快递公司才不管你呢,都不怎么赔给你钱,丢了就是丢了,卖家拿他也实在没办法,据此,卖家就赔了一件衣服的钱,因此我们可以把卖家与快递公司之间建立的协议(IP协议)看成是不可靠的。

虽然快递丢了,但我们买家没收到货啊,所以我们不会点确认收货的,此时卖家无奈只能重发一件衣服给我们,直到我们真正收到了衣服点击确认收货了,交易才算完成,因此我们可以把买家与卖家之间建立的协议(TCP协议)看成是可靠的。

那么,TCP是如何提供可靠的服务的呢?就如例子中说的一样,尽管TCP是可靠的,但其使用的是不可靠的IP协议,仍然会有数据丢失的现象,但当数据丢失后,TCP会重新将丢失的数据发送一次,直到对应的数据送到目的地

总结: TCP是使用了不可靠的IP协议,但提供了一种可靠的传输层服务

当然,传输层还有另一种协议,为UDP,其不同于TCP,是一种不可靠的服务,即无法保证数据在传输的过程中不会丢失,常用的场景有:DNS查询实时语音视频流传输TFTP数据传输

为何在这些场景中会用到UDP呢?我们拿其中一个举例,当双方通过网络进行打电话通信,如果对方说了20个字,但可能中间发生了数据丢失,即少传过来几个字,但一般来说我们还是能理解整句话是什么意思的。但若使用TCP会发生什么现象?对方说的20个字传过来18个字,因为那两个字丢失了,TCP重新发送了过来,因此可能在2s以后我们突然接收到了那两个字,这就非常的奇怪。

三、TCP/IP协议栈

下面有一张以以太网为例子模拟TCP/IP协议的数据如何进行传输的图:

以太网传入的帧包含一个48位的目的地址和一个16位的以太网类型字段。其中类型字段:Ox0800(十六进制)表示这个帧包含IPv4的数据报;Ox0806和Ox86DD分别表示ARP和IPv6。假设目的地址与接收地址匹配,则会根据类型字段选择相应的网络层的协议

当到达网络层以后就会交给IP来处理,IP会检测其中的IPv4的协议字段或IPv6的下一个头部字段,来决定接下来调用哪个协议来处理。常见的协议字段有:1(ICMP)2(IGMP)4(IPv4)6(TCP)17(UDP)

然后到达了传输层以后,大部分的协议会通过端口号来分解到对应的应用中去。端口号是一个16位的非负整数(范围:0 ~ 65535),常见的端口号有:22(SSH)20和21(FTP)23(Telnet)25(SMTP)53(DNS)80(HTTP)443(HTTPS)

四、总结

第一章只是对整个网络进行了大致的了解,后面的章节才会深入进行学习。

欢迎关注公众号:前端印象 , 不定时更新前端面试题,与我一起学习前端,早日斩获大厂Offer

【TCP/IP】概述网络分层以及协议介绍相关推荐

  1. 1-2:网络初识之了解OSI和TCP/IP及网络分层(物理层,数据链路层,网路层,传输层,应用层)

    文章目录 一:生活中的协议分层 (1)生活中的分层1--汉堡包 (2)生活中的分层2--打电话 二:网络分层 (1)OSI七层模型 (2)TCP/IP分层模型 一:生活中的协议分层 (1)生活中的分层 ...

  2. 计算机网络(OSI、TCP/IP、网络协议、常见网络设备工作原理)

    目录 OSI模型 TCP/IP模型 网络协议 IP协议 IP数据报格式 IP数据报分片 IPv4地址 NAT协议 ARP/RARP协议 ARP RARP DHCP协议 ICMP协议 ICMP差错报告报 ...

  3. TCP/IP通俗易懂网络协议

    昨晚在一个博主那里看懂一篇关于TCP/IP通俗易懂网络协议的文章,感觉写的非常不错,在这里就顺便做一下笔记吧.... 最简单的理解:TCP面向连接的,可靠的数据传输,建立连接需要三次握手,会造成del ...

  4. CNT-OSI七层参考模型和TCP/IP四层网络协议

    1.计算机网络体系 计算机网络体系结构是指计算机网络层次结构模型,它是各层协议和层次之间的端口集合.在计算机网络中实现通信必须依靠网络通信协议. OSI七层参考模型:目前广泛采用的是国际标准化组织IS ...

  5. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络

    作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明: 一.OSI七层网络协议 OSI是Open System I ...

  6. OSI七层网络、TCP/IP五层网络架构、二层/三层网络

    一.OSI七层网络协议 OSI是Open System Interconnect的缩写,意为开放式系统互联. OSI参考模型各个层次的划分遵循下列原则: 1)根据不同层次的抽象分层 2)每层应当有一个 ...

  7. 计算机网络(一)网络分层及协议

    一.基本概念 概念:协议是网络中计算机或设备之间进行通信的一系列规则的集合. 协议栈/族:在网络中为了完成通信而使用到的多层上的各种协议按照层次顺序的组合. 作用:建立对等层之间的虚拟通信.实现层次之 ...

  8. OSI七层模型和TCP/IP四层体系分层结构

    一.OSI七层模型 开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型 ...

  9. TCP/IP完整的一套基础介绍

    TCP/IP完整的一套基础介绍 TCP/IP应该是个协议集,根据OS的七层理论,TCP/IP分为四层.分别是应用,传输,Internet和网络界面. 我们一般说TCP在传输层,而IP在Internet ...

最新文章

  1. 开发指南专题九:JEECG微云快速开发平台-表单校验组件ValidForm
  2. Stimulsoft Reports ASP.NET HTML5报表设计器
  3. C# 创建 读取 更新 XML文件
  4. 广东汕尾电信稳定dns服务器,广东电信的DNS是多少?
  5. centos 20T硬盘(超过16T)分区和格式化
  6. 【计算理论】图灵机 ( 图灵机设计 )
  7. 怎么把win10右下角的隐藏图标调出来(把倒三角调出来)
  8. 笔记本计算机怎么进入安全模式启动,笔记本怎么进入安全模式,详细教您联想笔记本怎么进入安全模式...
  9. PhalApi框架新手脱坑笔记(一)
  10. FPGA状态机跑飞 的解决办法
  11. 蓝凌ekp开发_蓝凌EKP在eclipse中启动报错
  12. CSP第二轮比赛注意事项
  13. 噪声特性及matlab函数
  14. 浮点数的指数函数的计算
  15. python分解五位数
  16. Intellij IDEA社区版下载与安装教程
  17. jqweui 正在加载样式的用法
  18. PHPstudy搭建外网(个人电脑当做服务器)
  19. 为什么下搜酷狗输入法那么快
  20. 计算机应用研究 相对好发一些,传感技术学报期刊好投吗_机械科学与技术录用率高吗_计算机工程与应用被拒还能再投吗...

热门文章

  1. 利用深度学习模型预测双色球
  2. 图书管理系统+购物车JavaScript/Jquery + HTML
  3. 运放相位(频率)补偿电路设计
  4. Python做中文分词
  5. 天然钻石协会携手全球大使安娜·德·阿玛斯开启新一轮广告宣传活动
  6. 勒索软件利用IE漏洞挂马传播,腾讯零信任iOA、腾讯电脑管家支持检测拦截
  7. Dockerfile实例部署和测试
  8. 自动化专业课和计算机技术联系,自动化专业课程有哪些
  9. 【炼丹炉】ubuntu18.04离线安装gcc
  10. 关于爱情的五十句经典名言