网络通信协议(网络通信协议有哪些)

2022-06-16 16:25:11 发布:网友投稿
热度:78

网络通信协议(什么是网络通信协议)

思维路线

目的是链接互联网上的其他计算机。

物理层用物理介质链接其他计算机

数据链路层使用媒体访问控制地址进行通信,但只能在同一局域网中进行。

网络层使用ip来确定全球局域网中的计算机。

传输层使用端口来确定特定计算机中的特定进程。

应用层组织自己的数据结构,如json、xml等。,用于在两个应用程序之间交换数据。

本章内容

国际碳/硫框架

二.网络通信的基本要素

三.网络通信协议

什么是网络编程?

网络通常是指计算机中的互联网,由多台计算机通过网线或其他介质相互链接而成。

编写基于网络的应用程序的过程称为网络编程。

为什么要学习网络编程?

我们已经知道计算机是由硬件操作系统和应用程序组成的。有了这三个要素,你就可以在自己的电脑上运行一些应用程序,比如打牌、扫雷。

如果你想和其他电脑一起玩,你必须让你的电脑和其他电脑互相传输数据。

小明和小芳是情侣。为了美好的未来,小明离开了家乡,来到上海学习蟒蛇。在这里,小明看到了传说中的东方明珠电视塔。他太激动了,用数码相机拍了照片,想和家乡的小芳分享。虽然小明和小芳的电脑都是通过网线连接的,但小明还是要骑马,翻过千山万水,把照片发给小芳。因为路途遥远,小芳已经

学习网络编程就是学习如何利用网络与另一台计算机传输数据,开发支持网络通信的应用程序,这样即使不出门也能了解世界的一切。

国际碳/硫框架

学习网络编程就是通过网络访问另一台计算机的数据,这必然需要至少两台计算机。一台计算机具有要共享的数据和用于共享数据的程序,另一台计算机运行用于访问数据的程序。

我们称提供数据的一方为服务器,访问数据的一方为客户端。

这就是客户/服务体系结构:

如果你想在电脑上看视频,你需要安装程序来看视频。比如腾讯视频是客户端程序,腾讯视频的服务器程序运行在腾讯公司的机房,所以也是C/S框架程序。

此外,浏览器还可以访问服务器上的网页数据,称为B/S,本质上就是C/S,只不过客户端是浏览器。

二.网络通信的基本要素

如果两台计算机想要通信,它们必须具备两个基本要素。

1.物理连接介质,包括网线、无线电、光纤等

2.通信协议

我们来分析一下为什么需要这两样东西。

1.物理连接介质

人类说话需要空气来传播振动,想用眼睛看东西需要光来传播东西。没有空气和光,他们无法交流(不要无聊,用手摸东西...);光和空气体是物理介质。

例如,如果一部电话想打电话,必须先连接电话线,这样电流才能到达电话线上的另一部电话,这是物理介质。

2.通信协议

什么是协议?

协议就是标准,大家要遵循同样的标准才能正常交流。

如果两个人想要交流,就必须说一种双方都能理解的语言。想象一个说新疆话的人叫一个说闽南话的人。基本上,说了就等于没说双方都能理解的语言就是标准和约定。

为什么要达成协议?

在计算机中,链路介质通常是网线,本质上是一根可以传播电流的导线,根据电流的强弱可以理解为0和1。

问题是,电脑通电是什么意思?触电两次是什么意思?因此,发送方和接收方必须共同商定一套标准,这样我们才能知道0和1的含义。

如何使用协议?

但是,作为应用开发者,物理介质显然不是我们需要关心的,比如如何拉网线。

因此通信协议是我们研究的重点。

三.网络通信协议

该协议由发送方和接收方共同制定。考虑到计算机已经发展了这么多年,我们显然没有机会参与制定协议的过程。我们需要做的是理解通信协议中的各种规定。

现场视察七层模型

1.什么是OSI?

开放系统互连参考模型开放系统互连通信参考模型,简称OSI,由国际标准组织推出,其实是很多协议。OSI将整个通信过程分为七层,简称OSI七层模型。

上图最右边是完整的七层模型,是最完整的交流模型。虽然很详细,但整个沟通过程的复杂度很高。为了降低学习难度,后来进行了简化,所以增加了中间五层和左边四层。

其中应用层、表示层、会话层都属于应用层,是一个整体,所以合并到应用层,从而得到中间的五层,这是我们研究的重点!

2.为什么需要现场视察

在早期,每个计算机制造商都有自己的一套网络通信协议,但它们是不同的,这使得不同制造商的计算机无法在互联网上通信。就像下图一样,如果四川人说四川话,上海人说上海话,就不能交流,必须说普通话!

四川和上海都是中国人。如果只在国内交流,可以掌握普通话,但是要不要和其他国家的人交流?

与不同国家的人交流需要掌握不同国家的语言,但世界上国家和语言太多,不可能全部掌握,这就需要大家统一起来,找到一种语言作为世界通用语言,那就是英语!

这样,只要你能听懂和说英语,全世界的人都能交流。

总结:OSI相当于计算机领域的通用语言。只要按照OSI规定的标准进行通信,就可以和世界上任何一台计算机进行通信。

那么这种类似OSI的七层到底是为了什么呢?

现场视察层工作原理分析

应用层、表示层、会话层都属于应用层,所以我们把重点放在简化的五层。

为了便于理解,从下到上

一、物理层

物理层的起源已经在通信基本要素一节中讨论过了。为了相互通信,两台原本相互独立的计算机必须以各种方式建立物理连接,包括电缆、光缆和无线电。

物理层的功能:基于电子设备发送的电流信号,可以根据电流的高低对应数字0和1,即二进制数据。

二.数据链路层

数据链路层的起源:简单的电信号0和1没有意义,所以需要指定一个组中电信号的数量以及每个组的含义。

以太网协议:

以太网协议工作在数据链路层,它规定了电信号的分组模式以及一组电信号应该包含的内容。

以太网法规如下:

一组电信号构成一个数据包,称为“帧”

每个数据帧分为报头和数据。

标题包含:(固定18字节)

发件人/源地址,6字节

接收器/目的地址,6字节

数据类型(标签+以太网类型),6字节

数据包含:(最短46字节,最长1500字节)

数据包的具体内容

head length ++数据长度=最短64字节,最长1518字节。如果超过最大限制,它将被分段发送。

Mac地址:

head中包含的源地址和目的地址是什么?

以太网规定所有连接到互联网的设备都必须有网卡,发送方和接收方的地址是指网卡的地址,也就是mac地址。

Mac地址:每张网卡在出厂时都是用世界上唯一的mac地址来烧制的,MAC地址是48位二进制,通常用12位十六进制数来表示(前六位是厂家号,后六位是管道号)。

广播:

使用mac地址,同一网络中的两台主机可以通信。

以太网采用最原始的广播方式进行通信,即计算机通信基本上依靠轰鸣声。

广播有什么问题?如果这个网络中有100台计算机,每个人都在同时相互通信,这是什么情况?

相当于村头挂了100个喇叭。每个人都在大声喊叫。因此,很难听清楚说了什么。

回到电脑里,100台电脑在那里广播,传输速度肯定有限,严重浪费网络资源。

所以,局域网中间的设备就是交换机(上图中间的小东西)。

交换机不仅负责使网络中的计算机能够相互通信,还负责优化网络传输。

如何优化?

在pc1想要与pc2通信之前

1.你需要知道pc2的MAC地址,所以你必须先把这个信息广播给所有的电脑。

2.该信息必须首先提供给交换机,然后由交换机广播。

3.pc2收到消息后,发现目标MAC就是自己,将数据回复给发送方。

4.必须先给交换机答复。此时,交换机将记录pc2的MAC地址与网络标语之间的对应关系,并将其存储在自己的缓存中。

5.下次向pc2发送数据时,从缓存中查找pc2的MAC地址,

6.如果找到了,直接单独发给pc2,不需要广播。

7.如果没有,重复之前的广播过程。

这个优化函数叫做自动学习函数。

第一次链接计算机时,必须广播MAC地址。

只要MAC地址链接一次,就会被交换机记录下来,下次就没有广播了。

交换机的工作原理类似于早期的电话交换机。电话线打给前台,前台问你要找什么号码。,然后将电话线插入相应的端口。

三.网路层

1.网络层的起源:

有了以太网、mac地址和广播模式,世界上的计算机可以相互通信。

2.以太网通信中的问题:

全球互联网由相互隔离的小型局域网组成。如果所有计算机都使用以太网广播来寻找其他计算机,那么一台机器发送的数据包将被全世界接收,这不仅是一个效率低的问题,而且是一场灾难(广播风暴就是这样产生的)。

结论:我们必须找到一种方法来区分哪些计算机属于同一个广播域,哪些计算机不是。如果是,将通过广播发送,如果不是,将通过路由发送(将数据包分发到不同的广播域/子网)。mac地址是无法区分的,它们只与制造商有关。

网络层的功能:引入一组新的地址来区分不同的广播域/子网。这组地址就是网络地址。网络地址是什么样子的,如何区分子网?

3.IP协议

IP协议是工作在网络层的协议,它的全称是Internet协议地址,翻译成Internet协议地址。

3.1 IP地址(密钥)

ip协议定义的地址称为ip地址,广泛使用的v4版本为ipv4,规定网络地址用32位二进制表示。

0.0.0.0-255.255.255.255

ip地址通常写成四个十进制数字,例如:192.168.10.1

网络号:标识子网。

主机号:标识主机。

IP地址的分类:

a类是留给政府机构的

10.0.0.1 - 10.255.255.254

b类分配给中型公司。

172.16.0.1 - 172.31.255.254

C类分配给任何需要的人。

192.168.0.1 - 192.168.255.254

d类用于多播

e类用于实验。

我们的电脑ip通常是C类,从192.168开始,只是因为任何人都可以使用C类。

3.2子网掩码(理解)

什么是子网掩码?

子网掩码是一个32位的地址,用于屏蔽IP地址的一部分,以区分网络标识符和主机标识符,并指示IP地址是在局域网上还是在远程网络上。

其网络部分全部为1,主机部分全部为0。例如IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网掩码就是111111111111 . 1111111 . 000000,也就是用小数写的255.255.255.0。

为什么我需要子网掩码?

简单ip地址段仅标识ip地址的类型,不能标识ip所在的子网。

示例:192.168.10.1和192.168.10.2不能确定它们在同一个子网中,因为不清楚哪些位代表网络号,哪些位代表主机号。

子网掩码如何确定两个IPS是否属于同一个子网?

知道了子网掩码,我们就可以判断任意两个IP地址是否在同一个子网。方法是分别对两个IP地址和子网掩码进行AND运算(两位数字都是1,结果是1,否则是0),然后比较结果是否相同,如果是,则表示它们在同一个子网,否则不是。

案例:已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,172.16.10.1:10101100.00010000.00001010.000000001255255.255.255.0:11111111.11111111.11111111.00000000AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0172.16.10.2:10101100.00010000.00001010.000000010255255.255.255.0:11111111.11111111.11111111.00000000AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0结果都是172.16.10.0,因此它们在同一个子网络。

综上所述,IP协议主要有两个功能。一种是为每台计算机分配IP地址,另一种是确定哪些地址在同一子网中。

3.3 IP包(理解)

Ip包也分为头部和数据部分,没有为ip包定义单独的字段,直接放入以太网包的数据部分。

Head:长度为20到60个字节

数据:最大长度为65,515字节。

然而,以太网数据包的“数据”部分最长只有1500字节。因此,如果IP数据包超过1500字节,就需要分成几个以太网数据帧,分别发送。

3.4 ARP协议(了解)

ARP协议由来:IP通常是动态分配的,是逻辑地址,而数据传输必须依靠MAC地址。如何通过IP获取对方的MAC地址?这需要ARP协议。

Arp协议功能:通过广播发送数据包,获取目标主机的mac地址。

首先要明确的是,每个主机的ip都是已知的,是否属于同一个子网可以通过子网掩码来判断。

案例1:主机192.168.1.101访问192.168.1.102

ARP请求帧内容是否在同一个子网中:

1.FF:FF:FF:FF:FF:FF是一种特殊的MAC地址交换机。当它看到这个地址时,它会将这个数据广播给网络中的所有主机。

2.192.168.1.102收到ARP请求后,将自己的MAC回复给源MAC主机。

3.收到回复后,发送方(192.168.1.101)会将对方ip的MAC地址映射关系存储在缓存中,以备下次使用。

Ps:arp -a可以查看arp缓存列表。

确定对方媒体访问控制地址后的数据帧内容:

案例2:主机192.168.1.101访问192.168.111.101

交换机发现目的IP不在当前子网中,

1.交换机发起ARP请求,将目标IP设置为对方的网关IP。默认情况下,网关的主机号为1;所以接收器(192.168.111.101)的网关是192.168.111.1。

发送方网关发起的ARP数据帧:

2.对方网关收到请求后,发现该ip是自己的ip,然后回复ARP请求,通知发送方网关自己的MAC地址。

3.发送方网关将另一个网关的媒体访问控制地址和IP地址存储在自己的ARP缓存中,

4.将对端网关的MAC地址告知发送方(192.168.1.101),发送方也将对端网关的MAC与目标ip的映射关系存储在本地ARP缓存中。

此时,ARP请求结束,数据传输可以开始。

确定媒体访问控制地址后发送的数据帧内容:

总结:ARP通过广播获取MAC地址。当ARP不在同一个子网时,它会获取另一个网关的MAC地址。数据到达另一个网关后,网关根据IP将其交给相应的主机。当然,另一个网关也通过ARP获得主机MAC。

Ps:路由器和交换机可以称为网关!

四.传输层(强调)

传输层的起源:

通过物理层建立链路信道

通过数据链路层的MAC,可以定位局域网中的主机。

通过网络层的IP地址和子网掩码,您可以在世界各地的局域网中找到主机。

那么问题来了:

电脑上不可能只运行一个应用,比如同时登录qq和微信。收到的数据会交给微信还是qq?

回答:端口号,端口是与网卡和需要联网的应用程序相关联的号码。

传输层功能:建立端口对端口通信。

补充:端口范围0-65535,0-1023为系统占用端口。

TCP和UDP是在传输层工作的协议:

TCP协议

传输可靠,TCP数据包没有长度限制,理论上可以无限长。但是,为了保证网络的效率,TCP包的长度通常不会超过IP包的长度,这样就保证了单个TCP包不需要重新划分。

TCP之所以可靠,是因为它在传输数据之前需要三次握手来确认链路的建立。

三次握手:

三次握手的过程,其实就是确认你能收到我发的,我也能收到你发的,从而保证数据传输的可靠性。

链接是一个虚拟的概念,实际上并不存在。只要三方握手成功,就意味着连接建立成功!

问题是三次握手确实能保证数据传输的可靠性,那么握手后的数据如何才能成功传输呢?

TCP协议要求发送数据后,必须收到对方的回复消息,才能确认数据发送成功。如果您在一定时间内没有收到回复消息,您将自动重新发送。如果重试次数过多,链接可能已经断开!

四波:

四次挥手的目的是为了保证双方之间的数据传输已经完成,也是为了保证数据的完整性。

摘要

它的优点很明显:可以保证数据传输的完整性。

缺点:传输效率降低,因为每次都需要传输确认信息。

场景:多用于必须保证数据完整性的场景,如文本信息、支付信息等。

UDP协议

传输不可靠,“报头”部分总共只有8个字节,总长度不超过65535个字节,正好适合一个IP包。

UDP协议与TCP完全不同,它不关心对方是否收到数据,甚至不关心对方的地址是否有效。只要数据报发送到网络,什么都不重要!

摘要

优点:由于不需要传输确认信息,传输效率比TCP协议高。

缺点:传输的数据可能不完整。

场景:视频聊天、语音聊天等。,不要求数据完整性,但要求更高的传输速度。

动词 (verb的缩写)应用层

应用层起源:所有用户都使用应用程序,并在应用层工作。互联网是开放的。每个人都可以开发自己的应用程序,使用什么数据格式进行传输需要由应用程序开发人员自己决定。

应用层功能:指定应用程序的数据格式。

示例:TCP协议可以为各种程序传输数据,如Email、WWW、FTP等。然后,不同的协议必须指定电子邮件、网页和FTP数据的格式,这些应用协议构成了“应用层”。

到目前为止,一系列高电压和低电压已经成为我们通过逐层协议在应用中看到的各种数字。

下一篇:姐姐妹妹一起上(姐姐妹妹一起上15话里阿洛斯为什么说萨雅不在人世了)
上一篇:上海食品经营许可证办理(上海办理食品经营许可证流程)