加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

通俗易懂网络协议(TCP/IP概述)

发布时间:2019-05-20 15:17:05 所属栏目:教程 来源:码砖杂役
导读:近期事变,跟收集协议相干,这让我有机遇更深入进修收集协议,而之前很长一段时刻,我对收集协议的领略都逗留在较量浅的层面。 好比:TCP是面向毗连的、靠得住传输,而UDP长短毗连的、不行靠传输,TCP建连必要3次握手,会造成delay,UDP更快。 好比:socket
副问题[/!--empirenews.page--]

近期事变,跟收集协议相干,这让我有机遇更深入进修收集协议,而之前很长一段时刻,我对收集协议的领略都逗留在较量浅的层面。

好比:TCP是面向毗连的、靠得住传输,而UDP长短毗连的、不行靠传输,TCP建连必要3次握手,会造成delay,UDP更快。

好比:socket编程,处事器socket create、bind、listen、accept、read/write、shutdown/close,客户端socket create、connect、read/write、shutdown/close,再加上epoll/select这几下子。

再好比:我知道收集编程要忽视SIGPIPE信号否则会挂,read返回0代表对端主动封锁,非阻塞的read要放在轮回里要思量返回值,多路复用以及阻塞、非阻塞的区别。

TCP/UDP的区别上,我是这样领略的:从北京到杭州,TCP相等于修了一条高铁线路(建连)再通车发货(传输数据),而UDP相等于寄快递,丢了不管(直接传输数据)。

上面的领略对差池?可以说对,也可以说差池。对付应用措施员来说,有了上面的熟悉+认识socket编程接口,够了吗?不足吗?

大物理学家费曼提出一个高效的费曼进修法,即从题目入手,试着把题目都讲出来,以教代学,一旦你能把题目都讲清晰,便学会了。以是我想实行一下把TCP/IP讲清晰,借此让本身学大白,趁便辅佐一下读者。

固然《TCP/IP详解卷1》是一本关于互联网协议族很严谨细致的书,但在我看来,它轻微有点艰涩,也许必要读几遍,才气息息相通。固然我没有手段把这个题目说的更好,但由于我经验过从稀里糊涂到稍有所悟的进程,这也许是人人不行比的,我将只管用普通易懂的说话把TCP/IP相干的常识讲清晰。

收集协议

TCP/IP是什么

TCP/IP协议族是一组协议的荟萃,也叫互联网协议族,用来实现互联网上主机之间的彼此通讯。TCP和IP只是个中的2个协议,也是很重要的2个协议,以是用TCP/IP来定名这个互联网协议族,现实上,它还包罗其他协议,好比UDP、ICMP、IGMP、ARP/RARP等。

收集分层

大学《计较机收集》教科书上有经典的收集ISO七层模子,但七层分别太细了,稍显繁琐,不轻易记着。

互联网协议族TCP/IP按粗粒度的四层分别,两种分另外比较图让互相相关一览无余。

普通易懂收集协议(TCP/IP概述)

分层是计较机规模的常用能力,好比互联网后端的三层架构“接入-逻辑-存储”就是分层头脑的典范应用。

分层是为了断绝,通过度层分别职能,拆解题目,层与层之间约定接口,屏障实现细节。

TCP/IP自下到上分别为链路层、收集层、传输层、应用层。基层向上层提供手段,上层操作基层的手段提供更高的抽象。

  • 链路层,也称收集接口层,包罗操纵体系的装备驱动措施和网卡,它们一路处理赏罚与传输前言(光纤等)的物理接口细节。
  • 收集层,也就是IP层,认真处理赏罚IP datagram在收集中的传输,IP层传输的是IP datagram,借助路由表,把IP datagram从收集的一端传输到另一端,简而言之:IP实现包的路由传输,IP协媾和路由器事变在收集层。
  • 传输层,提供端到端之间的通讯,包罗提供面向毗连和高靠得住性的TCP,以及无毗连不行靠的UDP。貌似TCP更好,但现实不是这样,UDP由于不必要建连开销,以是更快,应用得也很广,好比新一代互联网协议HTTP3就从TCP转向UDP,应按照顺应场景选择传输层协议。
  • 应用层,跟应用相干,差异应用办理差异题目,必要差异的应用层协议。

普通易懂收集协议(TCP/IP概述)

链路层处理赏罚数据在前言上的传输,以及主机与网卡、光纤等打交道的细节。由于与硬件相干,以是必要借助体系的驱动措施,链路层协议就是界嗣魅这些细节的,好比怎么把数据从网卡发送到光纤,回收什么名目编码等,它办理的数据在前言上暗示、活动的题目。

光有链路层成果必定是不足的,收集上有成千上万的呆板,主机A与B通讯,你不能将数据发到主机C,以是模拟实际,要为主机分派收集地点,通过IP地点去标识收集中的一台主机,发送一个数据包,必要正确路由到目标地,这就比如你从家到公司,要颠末哪些路径,必要舆图,而路由表就相同这张舆图。IP办理的是数据包在收集中的传输路由的题目。

有了收集层的传输路由手段,还不足,由于IP报在传输进程中也许丢包,好比中间经验过的路由器缓冲区满了便会丢包,这样不行靠,假如必要靠得住传输的手段,便必要传输层基于IP层,提供更多的手段,TCP办理了靠得住性题目。详细而言,假如丢包了,TCP层会认真超时重传,它通过吸取确认和重传机制担保了靠得住传输。其它,由于IP报都是独立路由的,以是从主机A到主机B,一份数据被拆分成x、y两个IP报先后发送,这2个包也许选择差异的传输路径,这样有也许y包先于x包达到,但我们但愿在吸取端(主机B)规复这个数据的信息,但我们无法节制IP报的达到次序,以是,我们必要在吸取端规复数据,我只必要在x、y包里记录它属于数据块的哪个部门,然后重组这份数据,这正是TCP做的,它会从头组装IP报,从而担保次序性,递交给应用层。

偶然辰并不必要担保靠得住性温次序性,这即是UDP能提供的,它只是简朴的把数据封装成IP报,然后通过IP层路由发送到目标端。

再往上,即是应用层协议了,好比http,又好比游戏处事器自界说协议,应用层协议凡是基于TCP可能UDP做传输。

分层

什么是协议?懒得去翻协议的各类势力巨子界说了,我以为协议就是约定,跟实际糊口中协议这个词寄义差不多。收集协议就是通讯两边配合遵守的约定,更详细一点,就是界说数据在收集上传输的名目、法则和流程。

由于收集是分层模子,差异层有差异层的浸染,所觉得各层界说各层的法则,各层对应的各层协议。

前面讲了TCP/IP协议族包括许多协议,这些协议分属差异的分层,包袱差异的浸染。

普通易懂收集协议(TCP/IP概述)

  • TCP和UDP是两种首要的传输层协议。
  • IP是收集层的首要协议,TCP、UDP都必要操作IP协议举办数据传输。
  • ICMP是互联网节制报文协议,是IP的隶属协议,IP层用它来与其他主机或路由器互换错误报文和其他重要信息。好比一个Packet颠末某个路由器节点的时辰,高出收集对Packet的长度限定,而又不分片,则会给发送端发送一个ICMP包陈诉错误信息,属于ICMP是用来帮助IP完成数据包传输的。
  • IGMP是Internet组打点协议,用来把一个包多播到多个主机。
  • ARP(地点理会协议)和RARP(逆地点理会协议)是用来转换IP层和链路层的地点,IP层行使IP地点,链路层行使Mac地点
  • 应用层和传输层行使端到端(end-to-end)协议,收集层提供的是逐跳(hop-by-hop)协议。

封装

A给B通过收集传送一块数据,可以假想仅仅是传输这块原始数据是不足的,由于收集传输进程中,收集包到了某个路由器,必要转发,而转发必需依靠数据包的一些附加信息,好例如针呆板。

发送端在发送数据的时辰,将原始数据凭证协议名目加上一些节制信息,包装成可在收集上正确传输数据包的进程叫封装。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读