热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

计算机网络体系结构——TCP/IP五层协议

带着渴望学习,回头尽是青春一、什么是网络协议?计算机网络是由多个互联的点组成,节点之间需要通过某种协议来不断地交换数据和控制信息&#x

带着渴望学习,回头尽是青春


一、什么是网络协议?

计算机网络是由多个互联的点组成,节点之间需要通过某种协议来不断地交换数据和控制信息,这种协议规则明确规定了所交换的数据格式和时序,以及发送或接收时采取的动作等,这些为进行网络中的数据交换而建立的规则,标准或约定称为网络协议。


二、计算机网络体系结构

我们假设这样一个场景,你的团队或小组需要做一件比较复杂的事情,这件事情流程较多较繁琐,而你的小组人也很多,此时应该对这件事情如何下手呢?
我们可以把要做的事情看作一个系统,当我们在处理、设计该系统时将其划分为多个小模块或者子系统,这样的话分工明确,每个人只需要把注意力集中在自己特定的某部分去处理它,这就是模块化思想。计算机网络是一个非常复杂的系统,利用模块化思想非常适合处理计算机网络,将其划分为不同的体系结构。
在计算机网络中把计算机的层次结构模型和各层协议的集合称为计算机网络的体系结构。也就是说:计算机网络的体系结构就是这个计算机网络及其部件所应完成功能的精确定义,体系结构是抽象的,实现过程却很具体,是真正在运行的计算机硬件和软件。
按照层次结构设计计算机网络的体系结构有很多优点:


  • 各层之间相互独立:每一层只需要直到自己该完成什么就可以。也就是说你只需要做好你在小组内的分工就可以了;
  • 灵活性好:当任何一层发生变化,只要层层之间的接口不变,就不会影响其他层;
  • 结构上可以分隔开;
  • 易于实现和维护;
  • 有利于功能复用:下一层可以为多个不同的上层服务;

对计算机网络的分层和体系结构的功能仁者见仁,智者见智。目前大众所熟知的体系结构有OSI(Open Systems Interconnection开放系统互联)参考模型、TCP/IP参考模型。由于因特网的问世开始大面积覆盖世界相当大的范围,使得TCP/IP协议得到广泛应用,而法律标准上的OSI并没有能够占领市场,
OSI具有七层协议,理论比较完整,但是比较负责且不实用:请添加图片描述
数据在网络中的传输实际上就是封装和解封装的过程,发送方通过封装处理把数据转换成比特流的形式,比特流在新海传输的硬件媒介中传输至接收方,接收方把比特流进行解封装处理。功能:
1、物理层:规定了如何为网络通信实现最底层的物理连接,以及物理设备的机械,电气,功能和过程特性;
2、数据链路层:规定了如何进行物理地址寻址,如何在物理线路上进行数据的可靠传递以及流量控制;
3、网络层:规定了通过哪些节点,什么样的网络路径来将数据从发送方发送到接收方;
4、传输层:负责总体的数据传输和数据控制,提供端到端的交换数据的机制;
5、会话层:在网络的两个结点之间建立、维持和终止通信;
6、表示层:在应用程序和网络之间地数据进行格式化,使之能够被另一方理解;
7、应用层:为应用程序提供网络服务。


三、TCP/IP协议:

但由于OSI定义的太过复杂而错过了时间节点,让TCP/IP协议成为了计算机网络通信的事实标准。
在今天的基于TCP/IP的互联网诞生之前,能够使用接口通信处理实现互联互通的电脑并不多,而且大部分电脑之间信息的交换并不兼容。后来在1974年12月,Bob Kahn和Vinton G.Cerf带领的团队首先制定出了通过详细定义的TCP/IP协议标准。当时作了一个试验,将信息包通过点对点的卫星网络,再通过陆地电缆,再通过卫星网络,再由地面传输,贯串欧洲和美国,经过各种电脑系统,全程9.4万公里竟然没有丢失一个数据位,远距离的可靠数据传输证明了TCP/IP协议的成功。1983年1月1日,运行较长时期曾被人们习惯了的NCP被停止使用,TCP/IP协议作为因特网上所有主机间的共同协议,从此以后被作为一种必须遵守的规则被肯定和应用。
“TCP/IP”是很多协议很多协议组成的一个协议集合。我们把这集合统称为TCP/IP协议族,简称为TCP/IP协议。
对于TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层。通过下图我们可以了解TCP/IP协议结构并对比了解学习TCP/IP 四层参考模型和OSI七层参考模型,因为TCP/IP太过简单,我们也会使用模型化的TCP/IP五层模型来描述计算机网络。
请添加图片描述
请添加图片描述


1、应用层

如何通过应用进程间的交互来完成特定的网络应用。应用层协议定义的是应用进程间的通信和交互规则。不同的网络有不同的协议:


端口号名称说明
20ftp-dataFTP数据端口
21ftp文件传输协议(FTP)控制端口
22ssh安全shell(SSH)远程登陆
23telnettelnet远程登陆服务
25smtp简单邮件传输协议SMTP
53dns域名服务
69tftp简单文件传输协议
80http用于万维网(WWW)服务的超文本传输协议(HTTP)
123ntp网络时间协议
161/162snmp简单网络管理协议
443https安全超文本传输协议
1433mysqlmysql数据库服务程序默认端口
8080tomcatJava服务器程序默认端口

端口号是固定好的,端口号的范围是0~65535,其中1-1024是被规定好的端口,监听该范围端口的程序必须以root权限运行。从1025-65535端口被称为动态端口,可用来建立与其他主机的会话,也可以由用户自定义用途,所以在写服务器程序时,一般使用该范围内的端口应尽量避免一些知名的端口或当前系统正在使用的端口,具体怎么直到当前主机上运行了那些服务器程序并监听了哪些端口可以用sudo netstat -tlnp命令查看。


2、传输层

像两台主机中进程之间的通信提供通用的数据传输服务,起始各层的协议都是直接或间接的服务于主机与主机之间的通信,传输层就是进程与进程之间互相通信的协议,目前被人们所熟知的两个重要协议:


2.1、TCP(传输控制)协议

:提供面向连接的可靠的数据传输,传输单位为报文段(segment),


  • TCP是点对点的连接,一条TCP连接只能连接两个端点;
  • TCP需要进行“三次握手”建立连接,通信结束后要使用“四次挥手”断开连接;
  • TCP提供可靠传输,无差错,不丢失,不重复,按顺序传输,但是其开销较大,传输速度较慢;
  • TCP提供全双工通信,允许通信双方任何时候都能发送数据,发送方设有发送缓存,接收方设有接收缓存。
    关于**“TCP/IP协议三路握手、四次挥手”**请查看博客:TCP/IP协议——三路握手、四路挥手

2.2、UDP(用户数据报)协议

提供面向无连接的、不可靠不稳定的数据传输,


  • UDP是无连接的,发送数据之前不需要接力连接,减少了开销和延时;
  • UDP是面向报文的,对IP数据报只做简单封装,(8字节UDP报头)减少包头开销;
  • UDP没有阻塞机制,宁愿阻塞时丢弃数据不传也不阻塞造成延时;
  • UDP支持一对一、一对多、多对一、多对多通信。

3、网络层

网络层最需要的协议就是IP协议,在TCP/IP协议族中,所有的协议数据都依附于IP数据包格式传输,IP协议提供不可靠、无连接的数据传输服务,就是说IP协议不能保证数据能否成功到达目的地,只提供传输服务,传输出错的可能性较大,无连接是指IP协议对数据包的处理是独立的。这意味着接收方不一定会按照发送顺序接收数据包:
在这里插入图片描述
IP地址版本
常见的IP地址目前有IPv4和IPv6两个版本,当前广泛应用的是IPv4,但是IPv4已经几乎被消耗殆尽,下一阶段可能会进行版本升级至IPv6,一般情况下我们所使用的是IP v4:
在这里插入图片描述
IP地址对应于TCP/IP协议的网络层,是TCP、IP协议中很重要的一层协议
IP地址分类:
A类地址网络号占1个字节主机号占3个字节
B类地址网络号占2个字节主机号占2个字节
C类地址网络号占3个字节主机号占1个字节
D类地址是组播地址
E类地址是实验地址(保留)
在这里插入图片描述


地址分类网络号范围IP地址范围私有地址范围保留地址可容纳主机号容量
A类地址1.0.0.0-127.0.0.01.0.0.0-127.255.255.255192.0.0.0-223.255.255.255127.X.X.X是保留地址,用作循环测试2^24-2=16777214
B类地址128.0.0.0-191.255.0.0128.0.0.0-191.255.255.255172.31.255.255169.254.X.X是保留地址,191.255.255.255是广播地址2^16-2=65534
C类地址192.0.0.0-223.255.255.0192.0.0.0-223.255.255.255192.168.255.2552^8-2=254

在这里插入图片描述


4、数据链路层

计算机网络是由主机、路由器和连接他们的链路组成,从源主机发送到目的主机的分组必须在一段一段的链路上传送,数据链路层的任务就是将分组从链路的一段传送到另一端,我们将数据链路层传送的数据单元称为“帧”,帧里面不仅有数据,还包含一些控制信息:
控制信息使得接收端能够知道一个帧从哪个比特开始到那个比特结束,也可以用于接收端检测所受到的帧中有没有错误信息。
数据链路层的任务就是在相邻结点之间的链路上传送以帧为单位的数据。


5、物理层

物理层是计算机体系结构中的最底层
完成计算机中最基础的任务,就是在传输媒体上传送比特流,把数据链路层中帧的每个比特从一个结点通过传输媒体传送到下一个结点,物理层传送单位是比特。


四、总结

在计算机系统中任何可发送或接收信息的硬件或软件进程称为实体,而协议是控制两个对等实体进行通信的规则的集合,,在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,要实现本层协议,还需要使用下面所提供的服务。协议在实体中是透明的也就是说协议是一个实际存在但是看起来却好像不存在一样的物质。TCP/IP协议可以为各式各样的应用提供服务,也能允许IP在各种不同的网络构成的互联网上运行。


推荐阅读
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • TCP三次握手过程详解与图示解析
    本文详细解析了TCP三次握手的过程,并通过图示清晰展示了各个状态的变化。同时,文章还介绍了四次挥手的图解,解释了在TIME_WAIT状态中,客户端最后一次发送的ACK包的作用和重要性。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 对于希望在未越狱的iOS设备上修改Hosts文件的苹果用户来说,了解文件的具体位置和操作步骤至关重要。本文将详细介绍如何通过安装最新版本的iTunes来实现这一目标,并提供实用的操作指南,帮助用户轻松完成Hosts文件的编辑。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 深入理解Linux网络编程:UDP协议实战解析
    深入理解Linux网络编程:UDP协议实战解析 ... [详细]
  • 基于域名、端口和IP的虚拟主机构建方案
    本文探讨了在单台物理服务器上构建多个Web站点的虚拟主机方案,详细介绍了三种主要的虚拟主机类型:基于域名、基于IP地址和基于端口的虚拟主机。每种类型的实现方式及其优缺点均进行了深入分析,为实际应用提供了全面的技术指导。 ... [详细]
  • 公司计划部署邮件服务器,考虑到已有域名,决定自行搭建内部邮件服务器。经过综合考量,最终选择在Linux环境中进行搭建,并记录了相关配置和实践过程。本文将详细介绍Postfix的基本设置步骤和实践经验,帮助读者快速掌握邮件服务器的搭建方法。 ... [详细]
  • 解决118错误代码:专业指南与常见解决方案
    解决118错误代码:专业指南与常见解决方案 ... [详细]
author-avatar
雷神鑫源义_341
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有