网络传输协议

目录

网络传输协议的诞生

网络协议的定义与用途

1.分层

OSI模型(Open System Interconnection)

2.模块化

3.松耦合

常用网络协议

1.ARP协议(网络层/数据链路层协议)

2.DNS协议(应用层协议)

3.DHCP协议(应用层协议)

4.HTTP协议(应用层协议)

5.HTTPS协议(应用层协议)

补充概念

1.IP地址

(1)IP地址

(2)子网掩码

(3)默认网关

(4)DNS服务器

2.MAC地址


网络传输协议的诞生

通信协议(Communication protocol):通信设备之间通信的约定

如何理解通信协议?

例如IBM公司(1911年由托马斯·约翰·沃森在美国创立,是全球最大的信息技术和业务解决方案公司),在网络发展之初是没有网络协议概念的,如果使用IBM公司的服务器(其他公司也一样),那么必须使用该公司配套的网络设备,整体的使用"规则"是互不相通、互不兼容的。

那么就出现了很致命的问题:

如果该公司倒闭了,那么自己的网络设备就无法更新换代。

如果使用服务器就要连带制造一系列的产品,也挤压了小厂的生存空间。

如果一个公司承包了整个互联网产业,长久以来技术也很难得到专精的发展等等。

于是在20世纪60年代,ARPA(高级研究计划署)开始开发分组交换网络(能够进行分组交换的通信网)

1969年,ARPA在美国建立了ARPANET,这是一个早期的计算机网络。为了在ARPANET上进行相互通信,人们需要定义一套协议规范。1974年诞生的TCP(传输控制协议)和IP(互联网协议,也叫网际协议)成为ARPANET的通信协议。

TCP/IP协议的设计思想包括分层、模块化和松耦合,使其成为后来的互联网标准。

20世纪80年代,互联网蓬勃发展。为了保证不同网络之间的互联互通,需要制定统一的网络标准和通信协议。

1983年,TCP/IP成为互联网的标准协议,也奠定了互联网的基本架构。

总结:就像语言与货币的诞生,通信协议的诞生方便了信息与资源的传输

网络协议的定义与用途

前文说TCP/IP的设计思想包括分层、模块化和松耦合,使其成为后来的互联网标准。

其中:

1.分层

TCP/IP被分为四层:应用层传输层网络层网络接口层。

OSI模型(Open System Interconnection)

在TCP/IP模型诞生了多年后,国际标准化组织才为互联网定义了一个标准化模型,也就是OSI模型。也就是说先有TCP/IP模型的应用,才诞生了OSI模型的概念。

OSI模型是一个抽象的模型,用于计算机或通信系统的分层概念,包括:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。

TCP/IP只是其中一个应用实例,以下为其他实例。

就用QQ聊天为例子,用户在QQ界面输入文字,这就是应用层。QQ为了安全,要给文字加密,这就是表示层做的。会话层是找到对方的实体,也就是对方的QQ进程。传输层要找到对方的端口,就是QQ传输信息用的是哪个端口。网络层负责通过路由器要找到对方的网络地址。数据链路层要通过物理地址找到对方主机。物理层负责二进制比特流的传输。
原文链接:https://blog.csdn.net/digitalkee/article/details/105131323

2.模块化

像函数一样封装起来,内部有很强的聚合能力,专门实现某一部分功能。

3.松耦合

模块与模块间可拆分,依赖性不强。各个部分分开也可以单独完成自己的功能。

在如今,TCP/IP协议是支撑全球互联网通信的基石。它不仅负责数据的传输和路由,还确保了信息传递的准确性和完整性。不仅指的是TCP/IP这两个协议,而是一个由多个协议构成的协议簇,例如DNS、DHCP、HTTPS协议等。

常用网络协议

1.ARP协议(网络层/数据链路层协议)

例如A想给B寄一张明信片,但是只知道B的电话号码,不知道B的地址,那么就需要打电话询问B的地址,然后把地址填上去才能寄信。

在计算机传递信息中,A就是信息源,B就是接收方,电话号码就是IP地址,实际地址就是MAC地址,ARP协议就是双方写信需要知道地址、打电话询问地址的步骤要求。

要写信就要知道地址,要知道地址就要打电话问;要传递信息就要知道MAC和IP地址,已知IP地址就要通过ARP协议来获取MAC地址。

所以ARP(Address Resolution Protocol,地址解析协议)就是一个根据IP地址获取MAC的协议

在实际传输过程中,当主机A向主机B发送一份UDP报文时,会通过网络向外广播UDP请求报文,ARP协议的网络层包括主机A的IP、MAC地址和主机B的IP地址,未知的信息为B的MAC地址。请求报文发出后会在网络广播,主机B发现请求报文中的IP地址与自己相符,就会发送一封回复报文,在回复报文下写上自己的MAC地址传回A,A就会解析出B的MAC地址,并将之前的UDP报文一起写入,就可以完成正常的发送。

当然,不是每次都需要查询对方的MAC地址,已获得的MAC地址会存入ARP缓存表。

那么当IP地址被人为改变时,会不会发送到错误的MAC地址上。例如B主机和C主机已经和A主机建立联系,那么人为的互换B和C的IP地址会不会产生错误?事实上在B和C互换IP地址后,操作系统会向网络中广播一份不需要回复的ARP数据包,来告诉大家“我们的地址互换了,这是新的地址”,收到广播的A就会自己更新自己的ARP缓存表了。

2.DNS协议(应用层协议)

在用户上百度查询信息时,可以在地址栏输入这串英文字母,也可以输入220.181.38.148这串神秘数字进入网站,他们之间有什么关系呢?

人们通常无法记忆“220.181.38.148”这串数字,但是却可以记忆”https://www.baidu.com"这串有含义的文本,而计算机却更容易理解数字。所以DNS协议起到的作用就是在你输一串英文字母时,来当翻译官,将这串英文翻译成一串数字让计算机理解。

所以DNS(Domain Name Service,域名解析协议)用于实现网络设备到IP地址映射的网络服务。

在实际的使用中,DNS的执行也是层层递进的。

3.DHCP协议(应用层协议)

谈到DNS协议就不得不谈到DHCP协议了,在DNS协议中获取的IP 地址是怎么来的?

一种方式是手动设置,麻烦但是方便自己管理。

另一种是随机分配,例如一个普通的swich玩家也不在乎自己的IP地址是什么,所以在接入网络时,主机会询问“有没有DHCP服务器在啊?”(DISCOVER报文)DHCP服务器(一般是路由器)会创建一个地址池,给主机分一个空闲的IP地址(OFFER报文),主机一般会使用接收到的第一个IP地址,然后再告诉路由器们"这个IP 地址我用了"(REQUEST报文),路由器会回复主机“这个IP可以用,我们已经知道了”,然后完成整个协议(发送一个ACK报文)。

如果之前已经获取过IP地址,下次使用时主机会直接询问路由器“上次那个地址还能不能用?”,路由器就会回复主机“可以/不可以”,若不可以则需要重新分配。

所以DHCP协议(Dynamic Host Configuration Protocol,动态主机配置协议)就是动态分配IP地址的协议。

4.HTTP协议(应用层协议)

组成HTTP协议需要两个部分:客户端,服务端。在执行HTTP协议时,通常为一发一收,一问一答的模式。

客户端向服务端发送请求,服务端向客户端返回响应。服务端返回的数据有很多种,可以是图片、html文本等。客户端如何发出请求?

请求方式:通过URL(Uniform Resource Locator, 统一资源定位器,其实就是网址),URL由协议://主机/路径/参数组成。

请求有很多种方式,例如get是从服务端获取资源,post是创建资源,put是更新资源,delete是删除资源等等。其中post和put是有请求体。

请求资源的路径和查询参数:

路径参数(Path Parameters):
路径参数是通过URL的路径部分来传递的,通常以`/`分隔路径段,并使用占位符来表示参数的值。用于标定资源的准确路径。

 查询参数(Query Parameters):
查询参数是通过URL的查询字符串部分来传递的,以`?`开头,多个参数之间用`&`分隔。用于一些宽泛的请求比如搜索商品。

服务器接收后会回馈一个对应的响应状态码,如404 Not Found表示客户端错误。此外还有201Create表示成功响应,301Move Permanently表示重定向(就是指你查询的东西没有找到但是可以给你推一些类似的),501 Internal Server Error表示服务端出错。

所以HTTP(超文本连接协议),web开发者都遵循的统一规范,客户端的实现程序主要是Web浏览器

5.HTTPS协议(应用层协议)

但是HTTP协议在传递时是按照明文传递出去的,重要文件和密码很容易被盗走。所以在HTTP协议的基础上增加了SSL协议,也就是说HTTPS=HTTP+SSL/TLS。

SSL是一种服务器用的证书,确保数据传输的安全性。

补充概念

1.IP地址

(1)IP地址

IP地址计算机在网络中的住址,和现实的人有自己的通讯地址是一样的。

现实的地址也是从国家-省-市-区-街道-社区-......层层深入的,IP地址也是一样,IP地址 = 网络号 + 主机号

如何区分网络号和主机号呢?

(2)子网掩码

子网掩码是用1和0覆盖IP地址,来区分谁是网络号,谁是主机号。

网络地址: IP 地址中被 连续的1 遮住的部分,即 11000000.10101000.00000001.00000000, 对应的网络地址:192.168.1.0

主机地址: IP 地址中被 连续的0 遮住的部分,即 00000000.00000000.00000000.00000001, 对应的网络地址:0.0.0.1

若两个设备的网络地址(前三个八位组的十进制)相同,则默认他们处于同一网络。

不同类型地址的子网掩码不同。

(3)默认网关

当计算机处于同一个网络中则不需要经过默认网关的同意就可以通信,通信的方式是通过ARP协议知道对方计算机的MAC地址。若处于不同网络,则需要借助默认网关,通过ARP协议获取自己网络上的默认网关的MAC地址,然后由默认网关发送通信。

所以默认网关起到的是一个媒介作用。

(4)DNS服务器

IP地址和域名的映射关系储存的位置叫DNS服务器,例如百度的域名"https://www.baidu.com",就是层层递进的。

若本地的DNS服务器没有该映射关系

如果是转发模式,就从根域名开始向上一级DNS服务器请求,上一级可能会向再上一级请求......以此类推。

如果不是转发模式,就会直接发送到根DNS服务器,然后再向下传递。

2.MAC地址

MAC地址是一个48位的物理地址,用于在局域网内唯一标识网络设备,通常由硬件制造商预先设置,不能修改,是一个写在硬盘上的地址。

和IP地址的区别:

IP地址是可以被更改的,MAC地址不能修改

IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值