IP 分组
为了更准确地讨论 I n t e r n e t协议处理,我们必须定义一些名词。图 显示了在不同的
I n t e r n e t层之间传递数据时用来描述数据的名词。
我们把传输协议交给 I P的数据称为报文。典型的报文包含一个运输层首部和应用程序数
据。图所示的传输协议是U D P。I P在报文的首部前加上它自己的首部形成一个数据报。如
果在选定的网络中,数据报的长度太大, I P就把数据报分裂成几个分片,每个分片中含有它
自己的I P首部和一段原来数据报的数据。图显示了一个数据报被分成三个分片。
当提交给数据链路层进行传送时,一个 I P分片或一个很小的无需分片的 I P数据报称为分
组。数据链路层在分组前面加上它自己的首部,并发送得到的帧。
I P只考虑它自己加上的 I P首部,对报文本身既不检查也不修改 (除非进行分片)。图8 - 8显
示了I P首部的结构。
图包括i p结构中各成员的名字,N e t / 3通过该结构访问I P首部。
4 7 - 6 7 因为在存储器中,比特字段的物理顺序依机器和编译器的不同而不同,所以由 # i f s
保证编译器按照I P标准排列结构成员。从而,当 N e t / 3把一个i p结构覆盖到存储器中的一个 I P分组上时,结构成员能够访问到分组中正确的比特。

I P首部中包含I P分组格式、内容、寻址、路由选择以及分片的信息。
I P分组的格式由版本i p _ v指定,通常为4;首部长度i p _ h l,通常以4字节单元度量;分
组长度i p _ l e n以字节为单位度量;传输协议 i p _ p生成分组内数据; i p _ s u m是检验和,检
测在发送中首部的变化。
标准的I P首部长度是2 0个字节,所以i p _ h l必须大于或等于5。大于5表示I P选项紧跟在
标准首部后。如i p _ h l的最大值为15 (2 4 -1 ),允许最多4 0个字节的选项( 2 0 + 4 0 = 6 0 )。I P数据
报的最大长度为65535 (2 1 6 -1 )字节,因为i p _ l e n是一个16 bit的字段。如图是整个构成。

最新文章

  1. Android自定义控件5--轮播图广告ViewPager基本实现
  2. C# 中的委托和事件(转)
  3. [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
  4. C# SQLite编程总结
  5. 纯JS画点、画线、画圆的方法
  6. Nginx+tomcat负载均衡并动静态分离
  7. 4_Linux_文件压缩和解压指令
  8. Shell 输入/输出重定向
  9. windows 下借助7zip实现命令行解压缩
  10. 字符串(string)的常用语法和常用函数
  11. python之路--迭代器和生成器
  12. 深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO)
  13. Arduino入门笔记(7):利用1602、1302实现时钟和定时器
  14. sql乘法函数实现方式
  15. IDEA 中 同一个微服务 按照多个端口启动
  16. javascript异步编程方案汇总剖析
  17. go的module用法
  18. mongodb二进制安装与yum安装
  19. leetcode621 贪心:任务安排
  20. 生成二维码Base64图片

热门文章

  1. WebStorm+Chrome调试Vue步骤
  2. java源码 -- AbstractMap
  3. windows安装memcache并为php添加memcache扩展
  4. Python 基础教程 | 菜鸟教程
  5. Django之ORM表操作
  6. golang以服务方式运行
  7. python运行报错:cannot import name 'InteractiveConsole'
  8. [书籍翻译] 《JavaScript并发编程》第七章 抽取并发逻辑
  9. Vivado Bit文件压缩
  10. 案例:selenium实现登录百度(如有验证码,需要手动输入)