网络协议基础概念(一)

本文详细介绍了计算机网络的发展历程、基本概念、分类以及OSI七层模型与TCP/IP四层模型。重点阐述了TCP/IP协议族的工作原理,包括TCP和UDP的区别,以及网络通信中涉及的MAC地址、IP地址和端口号的作用。此外,还提到了网络协议的重要性,以及在互联网发展中的关键角色。
摘要由CSDN通过智能技术生成
1 、网络协议
计算机网络是什么?
随着计算机技术发展,计算机的体积和价格都在下降,之前计算机多用于研究机构,现 阶段逐步进入一般的公司用于办公。原来计算机之间传输数据需要通过软盘等第三方存储介 质进行转存,人们需要将数据直接通过通信线路传输,来缩短传输时间,于是计算机网络开 始诞生,并逐渐发展为现在巨大的 Internet。
定义和分类
计算机网络的标准定义是:利用通信线路将地理上分散的、具有独立功能的计算机系统 和通信设备按不同的形式连接起来,以功能完善的网络软件及协议实现资源共享和信息传递 的系统。计算机网络从覆盖范围上划分可以分为三类:局域网、城域网、广域网。局域网 LAN(作 用范围一般为几米到几十公里)、城域网 MAN(界于 WAN 与 LAN 之间)、广域网 WAN(作用 范围一般为几十到几千公里)。当然计算机网络划分不止这一种分类方式,可以按拓扑结构 分类(总线型、环型、星型、网状)、还可以按按信息的交换方式(电路交换、报文交换、报文分组交换)来分等等方式。
 
计算机网络发展简史
1、诞生阶段,20 世纪 60 年代中期之前的第一代计算机网络是以单个计算机为中心的 远程联机系统。端是一台计算机的外部设备包括显示器和键盘,无 CPU 和内存。随着远程终 端的增多,在主机前增加了前端机。当时,人们把计算机网络定义为“以传输信息为目的而连 接起来,实现远程信息处理或进一步达到资源共享的系统”,但这样的通信系统已具备了网络 的雏形。
2、ARPANET,多个主机通过通信线路互联起来。60 年代初。当时,美国国防部为了保 证美国本土防卫力量和海外防御武装在受到前苏联第一次核打击以后仍然具有一定的生存 和反击能力,认为有必要设计出一种分散的指挥系统;它由一个个分散的指挥点组成,当部 分指挥点被摧毁后,其它点仍能正常工作,并且在这些点之间能够绕过那些已被摧毁的指挥 点而继续保持联系。为了对这一构思进行验证,1969 年,美国国防部国防高级研究计划署 (DOD/DARPA)资助建立了一个名为 ARPANET(即"阿帕网")的网络,将多个大学的计算机主机 联接起来,位于各个结点的大型计算机采用分组交换技术,通过专门的通信交换机和专门的 通信线路相互连接。E-mail、FTP 和 Telnet 在 ARPANET 上已经诞生。
3、开放性的标准化体系结构,OSI 诞生。ARPANET 兴起后,计算机网络发展迅猛,各大计 算机公司相继推出自己的网络体系结构及实现这些结构的软硬件产品。由于没有统一的标准, 不同厂商的产品之间互联很困难,人们迫切需要一种开放性的标准化实用网络环境,这样应 运而生了两种国际通用的最重要的体系结构, 为了实现网络设备间的互相通讯,ISO 和 IEEE (电气和电子工程师协会,是世界上最大的非营利性专业技术学会,其会员人数超过 40 万 人,遍布 160 多个国家。IEEE 致力于电气、电子、计算机工程和与科学有关的领域的开发 和研究)相继提出了 OSI 参考模型及其 TCP/IP 模型。由于 TCP/IP 尽早地制定了可行性较强的协议,提出了应对技术快速革新的协议,并及时进行后期改良的方案,因此打败了 OSI 模型,成为了事实上的标准。
4、Internet 互联网
20 世纪 90 年代至今的第四代计算机网络, 1993 年是因特网发展过程中非常重要的一年, 在这一年中因特网完成了到目前为止所有最重要的技术创新,WWW(万维网)和浏览器的应 用使因特网上有了一个令人耳目一新的平台:人们在因特网上所看到的内容不仅只是文字, 而且有了图片、声音和动画,、甚至还有了电影。因特网演变成了一个文字、图像、声音、 动画、影片等多种媒体交相辉映的新世界,更以前所未有的速度席卷了全世界。出现光纤及 高速网络技术,多媒体网络,智能网络,整个网络就像一个对用户透明的大的计算机系统,发 展为以 Internet 为代表的互联网。随着全球范围内以 Internet 为代表的信息基础设施的建 立和发展,促进了信息产业和知识经济的诞生和迅猛发展,标志着人类已进入信息时代,计 算机网络的普及与应用正向全人类展开其新的一页,也诞生了很多巨大的互联网公司。
 
计算机网络体系结构
OSI 七层模型
开放系统互连参考模型 (Open System Interconnect 简称 OSI )是国际标准化组织 (ISO) 和国际电报电话咨询委员会(CCITT) 联合制定的开放系统互连参考模型,为开放式互连信息系 统提供了一种功能结构的框架。其目的是为异种计算机互连提供一个共同的基础和标准框架, 并为保持相关标准的一致性和兼容性提供共同的参考。这里所说的开放系统,实质上指的是 遵循 OSI 参考模型和相关协议能够实现互连的具有各种应用目的的计算机系统。
OSI 采用了分层的结构化技术,共分七层, 物理层、数据链路层、网络层、传输层、会 话层、表示层、应用层
TCP/IP 模型
OSI 模型比较复杂且学术化,所以我们实际使用的 TCP/IP 模型,共分 4 层, 链路层、网 络层、传输层、应用层 。两个模型之间的对应关系如图所示:
 
 
 
无论什么模型,每一个抽象层建立在低一层提供的服务上,并且为高一层提供服务。
 
TCP/IP 协议族
Transmission Control Protocol/Internet Protocol 的简写,中译名为传输控制协议 / 因特网 互联协议,是 Internet 最基本的协议、 Internet 国际互联网络的基础,由网络层的 IP 协议和 传输层的 TCP 协议组成。协议采用了 4 层的层级结构。然而在很多情况下,它是利用 IP 进 行通信时所必须用到的协议群的统称。也就是说,它其实是个协议家族,由很多个协议组成, 并且是在不同的层, 是互联网的基础通信架构。
 
TCP/IP 网络传输中的数据
每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息, 如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容 为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层 传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议 应该如何读取数据。反过来说,看到首部,也就能够了解该协议必要的信息以及所要处理的 数据。
 
 
应用程序处理
首先应用程序会进行编码处理,这些编码相当于 OSI 的表示层功能;
编码转化后,邮件不一定马上被发送出去,这种何时建立通信连接何时发送数据的管理功能, 相当于 OSI 的会话层功能。
② TCP 模块的处理
TCP 根据应用的指示,负责建立连接、发送数据以及断开连接。 TCP 提供将应用层发来的 数据顺利发送至对端的可靠传输。为了实现这一功能,需要在应用层数据的前端附加一个 TCP 首部。
③ IP 模块的处理
IP TCP 传过来的 TCP 首部和 TCP 数据合起来当做自己的数据,并在 TCP 首部的前端 加上自己的 IP 首部。 IP 包生成后,参考路由控制表决定接受此 IP 包的路由或主机。
网络接口(以太网驱动)的处理 从 IP 传过来的 IP 包对于以太网来说就是数据。给这些数据附加上以太网首部并进行发送 处理,生成的以太网数据包将通过物理层传输给接收端。
 
网络接口(以太网驱动)的处理
主机收到以太网包后,首先从以太网包首部找到 MAC 地址判断是否为发送给自己的包,若 不是则丢弃数据。
如果是发送给自己的包,则从以太网包首部中的类型确定数据类型,再传给相应的模块,如 IP、 ARP 等。这里的例子则是 IP
⑥ IP 模块的处理
IP 模块接收到 数据后也做类似的处理。从包首部中判断此 IP 地址是否与自己的 IP 地址 匹配,如果匹配则根据首部的协议类型将数据发送给对应的模块,如 TCP UDP 。这里的例 子则是 TCP 。 另外吗,对于有路由器的情况,接收端地址往往不是自己的地址,此时,需要借助路由控制 表,在调查应该送往的主机或路由器之后再进行转发数据。
⑦ TCP 模块的处理
TCP 模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在按照序号 接收数据。最后检查端口号,确定具体的应用程序。数据被完整地接收以后,会传给由端口 号识别的应用程序。
应用程序的处理
接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。
 
TCP UDP
在上述表格中,网际协议 IP TCP/IP 中非常重要的协议。负责对数据加上 IP 地址(有 发送它的主机的地址(源地址)和接收它的主机的地址(目的地址))和其他的数据以确定 传输的目标。 而 TCP UDP 都是传输层的协议,传输层主要为两台主机上的应用程序提供端到端的 通信。但是 TCP UDP 最不同的地方是, TCP 提供了一种可靠的数据传输服务, TCP 是面向连 接的,也就是说,利用 TCP 通信的两台主机首先要经历一个建立连接的过程,等到连接建立 后才开始传输数据,而且传输过程中采用“ 带重传的肯定确认 技术来实现传输的可靠性。 TCP 还采用一种称为“ 滑动窗口 的方式进行流量控制,发送完成后还会关闭连接。所以 TCP 要比 UDP 可靠的多。 UDP( User Datagram Protocol 的简称, 中文名是用户数据报协议)是把数据直接发出 去,而不管对方是不是在接收,也不管对方是否能接收的了,也不需要接收方确认,属于不 可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。
注意:
我们一些常见的网络应用基本上都是基于 TCP UDP 的,这两个协议又会使用网络层 的 IP 协议。但是我们完全可以绕过传输层的 TCP UDP ,直接使用 IP ,比如 Linux LVS , 甚至直接访问链路层,比如 tcpdump 程序就是直接和链路层进行通信的。
 
 
上图中,其他一些协议的名称解释,了解即可:
ICMP 控制报文协议
IGMP internet 组管理协议
ARP
地址解析协议
RARP 反向地址转化协议
 
 
地址和端口号
MAC 地址
我们常听说 MAC 地址和 IP 地址。 MAC 地址全称叫做媒体访问控制地址,也称为局域网地址( LAN Address ), MAC 位址, 以太网地址(Ethernet Address )或物理地址( Physical Address ),由网络设备制造商生产时 写在硬件内部。MAC 地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、 路由器等)接入到网络的何处,都有相同的 MAC 地址,它由厂商写在网卡的 BIOS 里,从理 论上讲,除非盗来硬件(网卡),否则是没有办法冒名顶替的。 MAC 地址共 48 位( 6 个字节)。前 24 位由 IEEE (电气和电子工程师协会)决定如何分 配,后 24 位由实际生产该网络设备的厂商自行制定。例如: FF:FF:FF:FF:FF:FF 或
FF-FF-FF-FF-FF-FF
 
 
 
IP 地址
IP 地址( Internet Protocol Address )的全称叫作互联网协议地址,它的本义是为互联网 上的每一个网络和每一台主机配置一个唯一的逻辑地址,用来与物理地址作区分。
所以 IP 地址用来识别 TCP/IP 网络中互连的主机和路由器。 IP 地址基于逻辑,比较灵 活,不受硬件限制,也容易记忆。 IP 地址分为: IPv4 IPv6 。我们这里着重讲的是 IPv4 地址, IP 地址是由 32 位的二进制 数组成,它们通常被分为 4 个“ 8 位二进制数”,我们可以把它理解为 4 个字节,格式表示 为:(A.B.C.D )。其中, A B C D 这四个英文字母表示为 0-255 的十进制的整数。例:
192.168.1.1
Tips IP 地址和 MAC 地址之间的区别
1 、对于网络中的一些设备,路由器或者是 PC 及而言, IP 地址的设计是出于拓扑设计 出来的,只要在不重复 IP 地址的情况下,它是可以随意更改的;而 MAC 地址是根据生产厂 商烧录好的,它一般不能改动的,一般来说,当一台 PC 机的网卡坏了之后,更换了网卡之 MAC 地址就会变了。
2 、在前面的介绍里面,它们最明显的区别就是长度不同, IP 地址的长度为 32 位,而 MAC 地址为 48 位。
3 、它们的寻址协议层不同。 IP 地址应用于 OSI 模型的网络层,而 MAC 地址应用在 OSI 模型的数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点 上(通过 MAC 地址),而网络层协议使数据可以从一个网络传递到另一个网络上( ARP 据目的 IP 地址,找到中间节点的 MAC 地址,通过中间节点传送,从而最终到达目的网络)。
4 、分配依据不同。 IP 地址的分配是基于我们自身定义的网络拓扑, MAC 地址的分配是 基于制造商。
端口号
在传输层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中 进行通信的不同应用程序。因此,它也被称为程序地址。 一台计算机上同时可以运行多个程序。传输层协议正是利用这些端口号识别本机中正在 进行通信的应用程序,并准确地将数据传输。
端口号的确定
标准既定的端口号:这种方法也叫静态方法。它是指每个应用程序都有其指定的端 口号。但并不是说可以随意使用任何一个端口号。例如 HTTP FTP TELNET 等广为使用的 应用协议中所使用的端口号就是固定的。这些端口号被称为知名端口号,分布在 0~1023 间;除知名端口号之外,还有一些端口号被正式注册,它们分布在 1024~49151 之间,不 过这些端口号可用于任何通信用途。
时序分配法:服务器有必要确定监听端口号,以让客户端程序访问服务器上的服务。 但是使用服务的客户端没必要确定端口号。在这种方法下,客户端应用程序完全可以不用自 己设置端口号,而全权交给操作系统进行分配。动态分配的端口号范围在 49152~65535 之 间。
综述
 
 
 
 
所以一般来说,不管计算机中有多少网卡,每个网卡都会有自己的 MAC 地址,这个 MAC 地址是不会变化的。而每个网卡在正常工作的情况下,都会有一个 IP 地址,这个 IP 地址完全是可以变化的。而这台计算机中承载的各种应用程序可以拥有自己的端口号,然后 通过服务器的网卡,正确地进行网络通信。 所以通过源 IP 地址、目标 IP 地址、协议号(协议类型)、源端口号以及目标端口号这 五个元素唯一性的识别一个网络上的通信。
 
 
网络协议基础概念到此讲解完毕,下篇分享TCP的握手和分手原理,敬请期待!
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寅灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值