IP协议位于网络层次的网络层(网络层与ip协议配套使用的协议)
作者:微信官方账号:网络路博(ID: Network Blog)
序
在上一篇文章中,我学习了链路层的以太网协议,知道了MAC地址。在以太网中,找到对应的终端最终还是要看MAC地址,但在实际使用中,你可能会发现使用的不是MAC地址,而是IP协议,比如
(1)浏览器输入的域名会通过DNS解析为IP地址;访问共享文件夹时,只需输入对方电脑的IP地址即可;进入设备后台时,可以输入相应设备的IP地址。
(2)博主更喜欢看悬疑、推理、警匪片/电影。美剧里经常有服务器被IP攻击,位置被定位,监控画面被技术获取。甚至在港剧里,也会有这样的桥段。一名犯罪嫌疑人利用公共场所的网吧/网吧发布有害信息,警方通过这个IP迅速定位到这家网吧的位置。然后,通过监控和抓捕分析犯罪嫌疑人的特征。
(3)每台设备都会有对应的IP信息,包括电脑、手机、摄像头、网络设备甚至智能家居。
可以通过日常使用、电视剧等获取一些信息。
互联网协议
IP是网络层唯一的协议,全称Internet Protocol(互联网协议),也是TCP/IP协议体系中最核心的协议之一。通过IP地址,保证了联网设备的唯一性。IP最大的特点是为两个终端之间的通信提供了更高的效率和更高的传输速度,但也带来了弊端,即无连接和不可靠的传输。
这张图眼熟吗?是的,在第二个里,但是在这里展开了。例如,图中的访问者1、2和3都需要访问WEB服务器。WEB服务器此时如何区分识别这三个请求,如何保证正常返回?
试想一下,在我们的现实生活中,整个国家的人口是如此之多。如果用名字来区分的话,重名很多。这个时候,我们需要唯一能识别自己的东西,就是身份证。如果我们有重名也没关系。身份证是唯一的,在网络世界也是一样的。为了唯一性,我们还应该为每个设备添加一个“ID”。在交流过程中,我们应该携带“身份”信息。
网络中的“ID”就是IP地址。这样,在接入过程中,IP地址被携带在数据包中。服务器收到后,就可以清楚是谁发的了。当它返回时,可以根据IP地址返回。
这里以访问者1(12.1.56.6)访问服务器(1.1.1.1)为例(这里只看网络层)。
第二篇文章已经介绍了这个过程。以天天快递的形式进行代入,将包裹视为数据包,将快递单号视为来源和目的IP(快递单号包括寄件人和收件人)。快递公司的运输工具,被视为互联网中的路由器等设备。在运输过程中,按照单号接收方的地址(目的IP)进行运输,中途会被转运到另一个运输车辆上进一步运输(路由器查询路由表,交给下一个设备进一步处理。
通过以上内容可以获得的信息
IP协议的消息格式
在最后的二层以太网协议中,我知道以太网的报文格式,所以它在IP协议中也有自己的报文格式。由于这种格式,当数据从上到下封装时,可以完整地生成每一层对应的头。
用红色标注的是目前初学者的必备知识,剩下的可以等以后有一定基础再知道,不然记太多会有点混乱。(下面将描述每个字段的功能)
标准IP报头有12个字段。对于初入网络的朋友,不需要全部掌握。红色部分是必须掌握的,其余部分暂时可选,但需要了解功能。这里对功能相同的领域的知识点做一个总结。
区分IP头和数据的作用是什么?比如从上图我们可以知道,IP协议的报头是20个字节,总长度是200个字节。那么,去掉头之后,还剩下180个字节。我们可以回忆一下第二篇文章中的解释。路由器收到数据包后,需要对去除IP头的信息进行解封装,读取里面的目的IP地址信息,有时甚至需要修改IP信息。封装操作完成后,路由器如何知道这个IP头的范围?默认IP头是20字节,最大IP头可以是60字节,不固定。如果它在操作过程中修改了作为IP报头一部分的数据部分,这个包的内容将不会被破坏,从而使它变得没有意义。因此,在标记范围以区分IP报头和数据之后,设备将具有明确的分界线,从而避免这样的情况。
Ping还没解释(暂时不关注),可以发现不工作的终端类型TTL是不一样的。PC是64,服务器是128。这个理解还是有用的,我们可以通过后面的TTL值来判断这个终端是路由器、普通PC还是服务器。
TTL每减少1,也起到了“被动防环”的重要作用。在某些情况下,由于工程师的粗心大意,网络会出现“环路”。如果数据包从1-2-3-4-5这样走,会发现它已经回到A了,A继续发送,然后沿着2-3-4-5回到A。这个循环,如果没有TTL,如果每个三层器件减去1后,最终变成0,0会被丢弃,所以不会永远循环下去。但是这里需要注意的是,这种方法只是一种“被动”的解决方案,真正的计划网络在这种情况下是不会存在的。
例如,Visitor 1向服务器发送多次访问,包括TCP应用程序和UDP应用程序。服务器收到它们后,会交给TCP还是UDP?所以有了协议,服务器就可以清楚的知道自己交给了哪个上层协议,完成正确的交互。就像我们平时用电脑的时候,不同的应用有不同的后缀,打开阅读的应用也不一样。如果有txt记事本打开一部MP4电影,肯定会出错。同样,如果服务器使用UDP协议处理TCP数据,也会出现错误。
最后,无论是以太网协议的类型字段,IP协议的协议字段,以及接下来要学习的TCP和UDP协议的端口号,都是在做一件事,明确的告诉接收方使用正确的上层协议来处理这些数据。
IP协议摘要
“承上启下”
由此可见,IP地址在IP协议中起着非常重要的作用,在如今互联网的使用中甚至已经密不可分。比如我们使用的身份证都有相应的分类,按照省份、城市、地区、出生日期等格式进行区分。那么IP地址的分类和格式是怎样的呢?接下来我们进入IP地址的话题,这也是一个让人头疼的问题。