我是靠谱客的博主 重要山水,最近开发中收集的这篇文章主要介绍tcpip协议_浅谈TCP IP协议栈(四)IP协议解析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

通过之前的网络层基础知识,IP地址以及路由器的简介,大家应该对于TCP/IP有一个大致的了解,在脑海里应该对于网络的几个基础概念有个大概的了解,简单点说整个协议栈就是在做一件事,规定网络报文(网络传输中的数据报)的发送和接收,而整个协议栈内的协议,也是可以分为之前介绍过的链路层-》网络层-》传输层-》应用层,在这每一层中都有很多不同的协议,但是最常用的协议,每一层就是一到两种,所以想学协议,先从每一层最常见,最常用的开始学起:

  • 链路层——以太网、VLAN
  • 网络层——IP协议
  • 传输层——TCP/UDP协议
  • 应用层——HTTP协议

上面的几种协议,如果都能熟练掌握,那基本上就是入门并且偏上的水平了,所以接下来我们就逐一介绍各个协议。

68695137670a0897465913c655bea8b8.png

上面就是IP报文的模板,其中IP首部一般为20字节,也就是图中的第1行到第5行,第6行为可选字段,后续的就是报文所携带的数据。我们重点介绍IP首部,可以看到,每一行是4个字节,也就是32位,而对于每一行我们又根据位数分为不同的字段,先来看看每个字段具体的含义:

第一段:

  • 4位版本号:取值为4时代表IPV4协议,取值为6时代表IPV6协议
  • 4位首部长度:单位是4字节,一般取值为5
  • 8位ToS字段:这个字段比较特殊,它相当于是报文的优先级或者是报文的服务类型,用来区分报文的业务类型,对于设备做QoS有着重大的意义。
  • 16位总长度:代表这一个IP报文总的长度,后面我们会介绍一个MTU时会介绍该字段。

第二段:

  • 16位标示符:用来唯一标记这一份IP报文

第三段:

  • 8位生存周期TTL字段:报文的生存周期,报文每经过一次转发,该字段值减1,当减为0时,丢弃该报文。
  • 8位协议:代表着这份IP报文承载着何种上层传输协议或者网络协议,常见的取值与对应关系如下:
  1. ICMP协议
  2. IGMP协议
  3. TCP协议
  4. UDP协议
  5. IGRP协议
  • 16位首部校验和:用于检验收到的报文是否有差错。

第四段:

  • 32位源IP地址:发送方IP地址

第五段:

  • 32位目的IP地址:接收方IP地址

介绍完IP报文的格式以后,我们再来说一下IP报文的特点,其主要特点有以下几点:

  1. IP报文具有不可靠性,即不能发送方发送报文后,不保证接收方一定能收到该报文。
  2. IP报文的不保序性,既然IP报文是不靠靠的,那相应的,它也不保证发送出的报文的顺序性,也许发包顺序是1、2、3,但是收包顺序可能就是3、2、1
  3. IP报文的分片,若发送报文数据过大,则涉及到报文分片。

综上所述,我们对IP协议有一个大致的了解,之后我们会陆陆续续介绍给多协议的,敬请期待!

最后

以上就是重要山水为你收集整理的tcpip协议_浅谈TCP IP协议栈(四)IP协议解析的全部内容,希望文章能够帮你解决tcpip协议_浅谈TCP IP协议栈(四)IP协议解析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部