订阅博客
收藏博客
微博分享
QQ空间分享

禁忌之恋,c/c++linux 浅显易懂 TCP/IP 协议栈,pdf转ppt

频道:社会资讯 标签:拍照safari浏览器 时间:2020年02月14日 浏览:291次 评论:0条

TCP/IP 协议栈是一系列网络协议的总和,是构成网络通讯的中心骨架,它界说了电子设备怎么连入因特网,以及数据怎么在它们之间进行传输。TCP/IP 协议选用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所供给的协议来完结自己的需求。因为咱们大部肌酸激酶分时刻都作业在应用层,基层的事忌讳之恋,c/c++linux 深入浅出 TCP/IP 协议栈,pdf转ppt情不用咱们操心;其次网络协议系统自身就很杂乱巨大,入门门槛高,因而很难搞清楚TCP/IP的作业原理,浅显一点讲便是,一个主机的数据要经过哪些进程才干发送到对方的主机上。 接下来,咱们就来探究一下这个进程。

0、物理介质

物理介质便是把电脑衔接起来的物理手法,常见的有光纤、双绞线,以及无线电波,它决议了电信号(0和1)的传输方法,物理介质的不同决议了电信号的传输带宽、速率、传输间隔以及抗干扰性等等。

TCP/IP协议栈分为四层,每一层都由特定的协议与对方进行通讯,而协议之间的通讯终究都要转化为 0 和 1 的电信号,经过物理介质进行传输才干抵达对方的电脑,因而物理介质是网络通讯的柱石。

下面咱们经过一张图先来大约了解一下TCP/IP协议的根本结构:

当经过http建议一个恳求时,应用层、传输层、网络层和链路层的相关协议顺次对该恳求进行包装并带着对应的首部,忌讳之恋,c/c++linux 深入浅出 TCP/IP 协议栈,pdf转ppt终究在链路层生成以太网数据包,以太网数据包经过物理介质传输给对方主机,对方接纳到数据包今后,然后再一层一层选用对应的协议进行拆肾癌包,终究把应用层数据交给应用程序处理。

网络通讯就比如送快递,产品外面的一层层包裹便是各种协议,协议包含了产品信息、收货地址、收件人、联系方法等,然后还需求配送车、配送站、快递员,产品才干终究抵达用户手中。

一般状况下,快递是不能直达的,需求先转发到对应的配送站,然后由配送站再进行派件。

配送车便是物理介质,配送站便是网关, 快递员便是路由器,收货地址便是IP地址,联忌讳之恋,c/c++linux 深入浅出 TCP/IP 协议栈,pdf转ppt系方法便是MAC地址。

快递员担任把包裹转发到各个配送站,配送站依据收成地址里的省市区,承认是否需求持续转发到其他配送站,当包裹抵达了方针配送站今后,配送站再依据联系方法找到收件人进行派件。

有了全体概念今后,下面咱们具体了解一下各层的分工。

1、链路层

网络通讯便是把有特定含义的数据经过物理介质传送给对方,单纯的发送 0 和 1 是没有含义的,要传输有含义的数据,就需求以字节为单位对 0 和 1 进行分组,而且要标识好每一组电信号的信息特征,然后依照分组的次序顺次发送。以太网规矩一组电信号便是一个数据包,一个数据包被称为一帧, 拟定这个规矩的协议便是以太网协议。一个完好的以太网数据包如下图所示:

整个数据帧由首部数据尾部三部分组成,首部固定为14个字节,包含了方针MAC地址、源MAC地址和类型;数据最短为46个字节,最长为1500个字节,假如需求传输的数据很长,就有必要切割成川普多个帧进行发送;尾部固定为4个字节,表明数据帧校验序列,用于承认数据包在传输进程中是否损坏。因而,以太网协议经过对电信号进行分组并构成数据帧,然后经过物理介质把数据帧发送给接纳方。那冰箱什么牌子好么以太网怎么来识接纳方的身份呢?

以太网规协议定,接入网络的设备都有必要装置网络适配器,即网卡, 数据包有必要是从一块网卡传送本溪天气预报到另一块网卡。而网卡地址便是数据包的发送地址和接纳地址,也便是帧首部所包含的MAC地址,MAC地址是每块网卡的身份标识,就好像咱们身份证上的身份证号码,具有全球仅有性。MAC地址采金红杨用十六进制标识,共6个字节,武则天墓 前三个字节是厂商编号,后谢道韫三个字节是网卡流水号,例如4C-0F-6E-12-D2-19

有了MAC地址今后,以太网选用播送方法,把数据包发给该子网内一切主机,子网内每台主机在接纳到这个包今后,都会读忌讳之恋,c/c++linux 深入浅出 TCP/IP 协议栈,pdf转ppt取首部里的方针MAC地址,然后和自己的MAC地址进行比照,假如相同就做下一步处理,假如不同,就丢掉这个包。

所以链路层的首要作业便是对电信号进行分组并构成具有特定含义的数据帧,然后以播送的方法经过物理介质发送给接纳方。

2、网络层

关于上面的进程,有几个细节问题值得咱们考虑:

发送者怎么知道接纳者的MAC地址?

发送者怎么知道接纳者和自己同属一个子网?

假如接纳者和自己不在同一个子网,数据包怎么发给对方?

为了处理这些问题,网络层引入了三个协议,分别是IP协议ARP协议路由协议。

【1】IP协议

经过前面的介绍咱们知道,MAC地址只与厂商有关,与地点的网络无关,所以无法经过MAC地址来判别两台主机是否归于同一个子网。

因而,网络层引入了IP协议,拟定了一套新地址,使得咱们能够区别两台主机是否同属一个网络,这套地址便是网络地址,也便是所谓的IP地址。

IP地址现在有两个版别,分别是IPv4IPv6,IPv4是一个32位的地址,常选用4个十进制数字表明。IP协议将这个32位的地址分为两部分,前面部分代表网络地址,后边部分表明该主机在局域网中的地址。因为各类地址的分法不尽相同,以C类地址192.168.24.1为例其间前24位便是网络地址,后8位便是主机地址。因而,假如两个IP地址在同一个子网内,则网络地址必定相同。为了判别IP地址中的网络地址,IP协议忌讳之恋,c/c++linux 深入浅出 TCP/IP 协议栈,pdf转ppt还引入了子网掩码,IP地址和子网掩码经过按位与运算后就能够得到网络地址。

因为发送者和接纳者的IP地址是已知的(应用层的协议会传入), 因而咱们只需经过子网掩码对faith两个IP地址进行AND运算后就能够判别两边是否在同一个子网了。

【2】ARP协议

即地址解析协议,是依据IP地址获取MAC地址的一个网络层协议。其作业原理如下:

ARP首要会建议一个恳求数据包,数据包的首部包含了方针主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太网数据包,终究由以太网播送给子网内的一切主机,每一台主机都会接纳到这个数据包,并取出标头里的IP地址,然后和自己的IP地址进行比较,假如相同就回来自己的MAC地址,假如不同就丢掉该数据包。ARP接纳回来音讯,以此承认方针机的MAC地址;与此一起,ARP还会将忌讳之恋,c/c++linux 深入浅出 TCP/IP 协议栈,pdf转ppt回来的MAC地址与对应的IP地址ryujehong存入本机ARP缓存中并保存必定时刻,下次请检察官韩昊求时直接查询ARP缓存以节省资源。cmd输入 arp -a 就能够查询本机缓存的ARP数据。

【3】路由协议

经过ARP协议的作业原理能够发现,ARP的MAC寻址仍是约束在同一个子网中,因而网络层引入了路由协议,首要经过IP协议来判别两台主机是否在同一个子网中,假如在同一个子网,就经过ARP协议查询对应的MAC地址,然后以播送的方法向该子网内的主机发送数据包;假如不在同一个子网,以太网会将该数据包转发给本子网的网关进行路由。网关是互联网上子网与子网之间的桥梁,所忌讳之恋,c/c++linux 深入浅出 TCP/IP 协议栈,pdf转ppt以网关会进行屡次转发,终究将该数据包转发到方针IP地点的子网中,然后再经过ARP获取方针机MAC,终究也是经过播送方法将数据包发送给接纳方。

而完结这个路由协议的物理设备便是路由器,在错综杂乱的网络世界里,路由器扮演者交通枢纽的人物,它会依据信道状况,挑选并设定路由,以最佳途径来转发数据包。

【4613邯大主教楼工作】IP数据包

在网络层被包装的数据包就叫IP数据包,IPv4数据包的结构如下图所示:

IP数据包由首部和数据两部分组成,首部长度为20个字节,首要包含了方针IP地址和源IP地址,方针IP地址是网关路由的头绪和依据;数据部分的最大长度为65515字节,理论上一个IP数据包的总长度能够抵达65535个字节,而以太网数据包的最大长度是1500个字符,假如超越这个巨细,就需求对IP数据包进行切割,分红多帧发送。

所以,网络层的首要作业是界说网络地址,区别网段,子网内MAC寻址,关于不同子网的数据包进行路由。

3、传输层

链路层界说了主机的身份,即MAC地址, 而网络层界说了IP地址,明晰了主机地点的网段,有了这两个地址,数据包就从能够从一个主机发送到另一台主机。但实际上数据包是从一个主机的某个应用程序宣布,然后由对方主机的应用程序接纳。而每台电脑都有或许一起运转着许多个应用程序,所以当数据包被发送到主机上今后,是无法承认哪个应用程序要接纳这个包。

因而传输层引入了UDP协议来处理这个问题,为了给每个应用程序标识身份,UDP协议界说了端口,同一个主机上的每个应用程序都需求指定仅有的端口号,而且规矩网络中传输的数据包有必要加上端口信息。 这样,当数据包抵达主机今后,就能够依据端口号找到对应的应用程序了。UDP界说的数据包就叫做UDP数据包,结构如下所示:

UDP数据包由首部和数据两部分组成,首部长度为8个字节,首要包含源端口和方针端口;数据最大为655民警揭秘怎么抓嫖27个字节,整个数据包的长度最大可抵达65535个字节。

UDP协议比较简略,完成简略,但它没有承认机制, 数据包一旦宣布,无法知道对方是否收到,因而牢靠性较差,为了处理这个问题,进步网络牢靠性,TCP协议就诞生了,TCP即传输操控协议,是一种面向衔接的、牢靠的、根据字节省的通讯协议。简略来说TCP便是有承认机制的UDP协议,每宣布一个数据包都要求承认,假如有一个数据包丢掉,就收不到承认,发送方就有必要重发这个数据包。

为了确保传输的牢靠性,TCP 协议在 UDP 根底之上树立了三次对话的承认机制,也便是说,在正式收发数据前,有必要和对方树立牢靠的衔接。因为树立进程较为杂乱,咱们在这儿做一个形象的描绘:

主机A:我想发数据给你,能够么?

主机B:能够,你什么时分发?

主机A:我立刻发,你接着!

经过三次对话之后,主机A才会向主机B发送正式数据,而UDP是面向非衔接的协议,它不与对方树立衔接,而是直接就把数据包发过去了。所以 TCP 能够确保数据包在传输进程中不被丢掉,但夸姣的事物必定是要付出代价的,八神遥比较 UDP,TCP 完成进程杂乱,耗费衔接资源多,传输速度慢。

TCP 数据包和 UDP 相同,都是由首部和数据两部分组成,仅有不同的是,TCP 数据包日不落没有长度约束,理论上能够无限长,可是为了确保网络的功率,惠州天气预报一般 TCP 数据包的长度不会超越IP数据包的长度,以确保单个 TCP 数据包不用再切割。

总结一下,传输层的首要作业是界说端口,标识应用程序身份,完成端口到端口的通讯,TCP协议能够确保数据传输的牢靠性

4、应用层

理论上讲,有了以上三层协议的支撑,数据现已能够从一个主机上的应用程序传输到另一台主机的应用程序了,但此刻传过来的数据是字节省,不能很好的被程序辨认,操作性qq靓号恳求器差。因而,应用层界说了各式各样的协议来标准数据格局,常见的有 HTTP、FTP、SMTP 等,HTTP 是一种比较常用的应用层协议,首要用于B/S架构之间的数据通讯,其报文格局如下:

在 Resquest Headers 中,Accept 表明客户端希望接纳的数据格局,而 ContentType 则表明客户端发送的数据格局;在 Response Headers 中,ContentType 表明服务端呼应的数据格局,这儿界说的格局,一般是和 Resquest Headers 中 Accept 界说的格局是共同的。

有了这个标准今后,服务端收到恳求今后,就能正确的解析客户端发来的数据,当恳求处理完今后,再依照客户端要求的格局回来,客户端收到成果后,依照服务端回来的格局进行解析。

所以应用层的首要作业便是界说数据格局并依照对应的格局解读数据。

5、全流程

首要咱们整理一下每层模型的责任:

链路层:对0和1进行分组,界说数据帧,承认主机的物理地址,传输数据;

网络层:界说IP地址,承认主机地点的网络方位,并经过IP进行MAC寻址,对外网数据包进行路由转发;

传输层:界说端口,承认主机上应用程序的身份,并将数据包交给对应的应用程序;

应用层:界说数据格局,并依照对应的格局解读数据。

然后再把每层模型的责任串联起来,用一句深入浅出的话讲便是:

当你输入一个网址并按下回车键的时分,首要,应用层协议对该恳求包做了格局界说;紧接着猪皮冻传输层协议加上了两边的端口号,承认了两边通讯的应用程序;然后网络协议加上了两边的IP地址,承认了两边的网络方位;终究链路层协议加上了两边的MAC地址,承认了两边的物理方位,一起将数据进行分组,构成数据帧,选用播送方法,经过传输介质发送给对方主机。而关于不同网段,该数据包首要会转发给网关路由器,经过屡次转发后,终究被发送到方针主机。方针机接纳到数据包后,选用对应的协议,对帧数据进行拼装,然后再经过一层一层的协议进行解析,终究被应用层的协议解析并交给服务器处理。

6、总结

以上内容是对爱打牌的老婆TCP/IP四层模型做了简略的介绍,而实际上每一层模型都有许多协议,每个协议要做的工作或许多,但咱们首要得有一个明晰的头绪结构,把握每一层模型最根本的效果,然后再去丰厚细枝末节的东西,或许会更简略了解。

更多linux免费视频材料获取 后台私信【架构】