tcp/ip简述

协议是啥呀,就是定了一些规范,然后每个人都根据这些规范去处理问题啊,如果没有规范的话,每个人各做各的,到时候怎么去统一,岂不是都乱套了,比如加密解密,现在某份报文规定了使用md5加密,然后解密人使用md5解密就可以啦。如果不规定这份协议的话,加密人用其他加密方式,然后解密人又用其他解密方式,岂不是都解不了。所以就定了一份协议,大家都知道然后都遵守,事情就简单多了。

首先是tcp/ip协议,tcp/ip协议是一系列网络协议的总和,定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。tcp/ip协议采用4层结构,分别是应用层、传输层、网络层和链路层。tcp/ip的工作原理,通俗地讲就是一个主机的数据要经过哪些过程才能发生到对方的主机上。

就是说tcp/ip也是为了解决网络问题而订的一份协议而已,然后大家为了通俗易懂,就分了4层结构。比如快递里面订了一份协议,有市内的、县内的、镇上的、乡下的,然后快递员就根据这些协议去处理快递啊。

然后我们来说说我们网络的4层结构:链路层、网络层、传输层、应用层,就是完成一次网络通信啥的,要经过这4层阶段的处理,比如我发送一份数据到另一台主机的应用上,就要经过这4个阶段处理之后才可以到达对方主机的应用上。然后中间是怎么处理的?其中又是这4层各层的协议问题了。

比如某个客运站定了购票坐车协议,然后定了3个阶段,就是有3层楼吧,第一层是买票、第二层是安检进候车厅、第三层是检票上车吧。然后我第一层又订了协议呀,就是买票协议,需要不过期的身份证等等;第二层也定了协议,就是安检协议,需要身份证进行安检,然后行李不超过多重等等;第三层协议,就是检票上车协议,定了时间等协议啊。然后每个人都知道每一层是干嘛的,然后每一层里又有什么规定,想要处理什么就直接去哪一层呀,也好找呀。如果不定这些协议的,我进了客运站岂不是每一层都跑个遍,然后又不知道买票需要身份证,安检有行李限制,上车有时间限制等。

然后就是我们网络协议,就是比如我们发送一个http请求时,然后就经过应用层、传输层、网络层、链路层的相关协议处理,最后传输到对方的主机上。

然后我们网络协议的第4层是什么作用的?然后这第4层里面也定了什么协议呢?

第4层是链路层主要工作是对电信号进行分组并形成具有特定意义的数据帧,然后以广播形式通过物理介质发送给接收方。也就是通信的最后一层了,就是将信息通过物理介质发送给对方的了。然后这里面肯定也有协议啦,就是以太网协议。这里面就不细说了。

以太网协议通过对电信号(数据包)进行分组并形成数据帧,然后通过物理介质把数据帧发送给接收方。那么以太网如何来识接收方的身份呢?

以太网规协议定,接入网络的设备都必须安装网络适配器,即网卡, 数据包必须是从一块网卡传送到另一块网卡。而网卡地址就是数据包的发送地址和接收地址,也就是帧首部所包含的MAC地址,MAC地址是每块网卡的身份标识,就如同我们身份证上的身份证号码,具有全球唯一性。MAC地址采用十六进制标识,共6个字节, 前三个字节是厂商编号,后三个字节是网卡流水号,例如 4C-0F-6E-12-D2-19

有了MAC地址以后,以太网采用广播形式,把数据包发给该子网内所有主机,子网内每台主机在接收到这个包以后,都会读取首部里的目标MAC地址,然后和自己的MAC地址进行对比,如果相同就做下一步处理,如果不同,就丢弃这个包。

然后我们网络协议的第3层是什么作用的?然后这第3层里面也定了什么协议呢?

第3层是网络层主要工作是定义网络地址,区分网段,子网内MAC寻址,对于不同子网的数据包进行路由。

首先是看看这三个问题就可以知道第3层是干嘛的了:

1、发送者如何知道接收者的MAC地址?

2、发送者如何知道接收者和自己同属一个子网?

3、如果接收者和自己不在同一个子网,数据包如何发给对方?

第3层里面的协议有:IP协议ARP协议路由协议。

ip协议就是处理ip地址的。由于发送者和接收者的IP地址是已知的(应用层的协议会传入), 因此我们只要通过子网掩码对两个IP地址进行AND运算后就能够判断双方是否在同一个子网了。

arp协议就是根据IP地址获取MAC地址的一个网络层协议。

路由协议就是在错综复杂的网络世界里,路由器扮演者交通枢纽的角色,它会根据信道情况,选择并设定路由,以最佳路径来转发数据包。

ip数据包在网络层被包装的数据包就叫IP数据包.

然后我们网络协议的第2层是什么作用的?然后这第2层里面也定了什么协议呢?

第2层是传输层主要工作是定义端口,标识应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性

链路层定义了主机的身份,即MAC地址, 而网络层定义了IP地址,明确了主机所在的网段,有了这两个地址,数据包就从可以从一个主机发送到另一台主机。但实际上数据包是从一个主机的某个应用程序发出,然后由对方主机的应用程序接收。而每台电脑都有可能同时运行着很多个应用程序,所以当数据包被发送到主机上以后,是无法确定哪个应用程序要接收这个包。

因此传输层引入了UDP协议来解决这个问题,为了给每个应用程序标识身份,UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息。 这样,当数据包到达主机以后,就可以根据端口号找到对应的应用程序了。UDP协议比较简单,实现容易,但它没有确认机制, 数据包一旦发出,无法知道对方是否收到,因此可靠性较差,为了解决这个问题,提高网络可靠性,TCP协议就诞生了,TCP即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。简单来说TCP就是有确认机制的UDP协议,每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。

然后我们网络协议的第1层是什么作用的?然后这第1层里面也定了什么协议呢?

第1层是应用层主要工作是定义数据格式并按照对应的格式解读数据。理论上讲,有了以上三层协议的支持,数据已经可以从一个主机上的应用程序传输到另一台主机的应用程序了,但此时传过来的数据是字节流,不能很好的被程序识别,操作性差。因此,应用层定义了各种各样的协议来规范数据格式,常见的有 HTTP、FTP、SMTP 等。

  • 全流程

首先我们梳理一下每层模型的职责:

  • 链路层:对0和1进行分组,定义数据帧,确认主机的物理地址,传输数据;
  • 网络层:定义IP地址,确认主机所在的网络位置,并通过IP进行MAC寻址,对外网数据包进行路由转发;
  • 传输层:定义端口,确认主机上应用程序的身份,并将数据包交给对应的应用程序;
  • 应用层:定义数据格式,并按照对应的格式解读数据。

然后再把每层模型的职责串联起来,用一句通俗易懂的话讲就是:

当你输入一个网址并按下回车键的时候,首先,应用层协议对该请求包做了格式定义;紧接着传输层协议加上了双方的端口号,确认了双方通信的应用程序;然后网络协议加上了双方的IP地址,确认了双方的网络位置;最后链路层协议加上了双方的MAC地址,确认了双方的物理位置,同时将数据进行分组,形成数据帧,采用广播方式,通过传输介质发送给对方主机。而对于不同网段,该数据包首先会转发给网关路由器,经过多次转发后,最终被发送到目标主机。目标机接收到数据包后,采用对应的协议,对帧数据进行组装,然后再通过一层一层的协议进行解析,最终被应用层的协议解析并交给服务器处理。

  • 总结

以上内容是对TCP/IP四层模型做了简单的介绍,而实际上每一层模型都有很多协议,每个协议要做的事情也很多,但我们首先得有一个清晰的脉络结构,掌握每一层模型最基本的作用,然后再去丰富细枝末节的东西,也许会更容易理解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值