一、IPV4首部

IP层提东无连接不可靠的数据报递送服务。它会尽力把IP数据报递送到指定的目的地,然而并不保证他们一定到达,也不保证他们的到达顺序与发送顺序一致,还不保证每个IP数据报只到达一次。任何期望的可靠性(既五差错按顺序不重复地递送用户数据)必须由上层提供支持。对于TCP应用程序而言,这有TCP本身完成,对于UDP应用程序而言,这得由应用程序完成。IP层最重要的功能之一是路由。每个IP数据报包含一个源地址和一个目的地址。

1)4位版本字段值为4.

2)首部长度字段是包括任何选项在内的整个IP首部的32位字长度。这个4位字段的最大取值为15,因而IP首部的最大长度为60个字节。扣除首部拱顶部分所占据的20字节外,它最多允许40个字节的选项。

3)历史性的8位服务类型字段被替换为两个字段:6位区分服务码点和2位显示拥塞通知

4)16位总长度字段是包括IPV4首部在内的整个IP数据报的字节长度。数据报中的数据量就是笨字段减掉4乘以首部长度(首部长度都是32位或4字节的整数倍)本字段是必需的,因为有些数据链路要求把帧垫补成某个最小长度(例如以太网),因而有效IP数据报的大小有可能小于数据链路的最小长度。

5)16位标识字段由IP模块为每个IP数据报设置成不同的值,用于分片和重组。该字段必须就源IPV4地址、目的IPV4地址和协议这三个字段至少在数据报的网络存活期唯一标识每个IP数据报。如果分组不会被分片,那么就不需设置此段

6)DF位、MF位和13位片段偏移字段也用于分片和重组。DF位还用于路径MTU发现。

7)8位存活时间(TTL)字段由本IP数据报的发送者设置,并由转发它的每个路由器地阿金。当被减到0时,响应路由器就丢弃该数据报。任何IP数据报的生命期限定位最多255跳。

8)8位协议字段指定包括在本IP数据报中的数据类型。它的典型值有1(ICMPV4)、2(IGMPV4)、6(TCP)、17(UDP)

9)16位首部校验和字段只对IP首部进行计算。

10)源头IPV4地址和目的IPV4地址都是32位字段

11)选项字段

UNIX网络编程--IPV4 IPV6 ICMPV4 ICMPV6的更多相关文章

  1. Unix网络编程--卷一:套接字联网API

    UNIX网络编程--卷一:套接字联网API 本书面对的读者是那些希望自己编写的程序能够使用成为套接字(socket)的API进行彼此通信的人. 目录: 0.准备环境 1.简介 2.传输层:TCP.UD ...

  2. 记录一次配置unix网络编程环境的过程和遇到的问题

    记录一次搭建unix网络编程环境过程中遇到的问题和总结 计算机环境虚拟机 linuxmint-18-xfce-64bit 1.打开unix网络编程.iso 把目录下的文件复制到某一目录,修改权限,可命 ...

  3. UNIX网络编程---传输层:TCP、UDP、SCTP(二)

    UNIX网络编程----传输层:TCP.UDP.SCTP 一.概述 本章的焦点是传输层:包括TCP.UDP.和SCTP(流控制传输协议).SCTP是一个较新的协议,最初设计用于跨因特网传输电话信令. ...

  4. UNIX网络编程---简介

    UNIX网络编程---简介 一.           概述 a)       在编写与计算机通信的程序时,首先要确定的就是和计算机通信的协议,从高层次来确定通信由哪个程序发起以及响应在合适产生.大多数 ...

  5. 【unix网络编程第三版】阅读笔记(三):基本套接字编程

    unp第三章主要介绍了基本套接字编程函数.主要有:socket(),bind(),connect(),accept(),listen()等. 本博文也直接进入正题,对这几个函数进行剖析和讲解. 1. ...

  6. UNIX网络编程读书笔记:简介

    认知套接口编程接口 理解原始套接口(raw socket)的概念   值得注意的是,客户和服务器是典型的用户进程,而TCP和IP协议则通常是系统内核协议栈的一部分. 上图中在TCP和UDP之间留有间隙 ...

  7. 《Unix 网络编程》11:名字和地址转换

    名字和地址转换 系列文章导航:<Unix 网络编程>笔记 域名系统 简介 域名系统主要用于主机名字和 IP 地址之间的映射.主机名可以是: 简单名字,如:centos01 全限定域名(FQ ...

  8. 《Unix 网络编程》15:Unix 域协议

    Unix 域协议 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ 本 ...

  9. 《 UNIX网络编程》源码的使用

    学习编程这东西,看代码,改代码,运行代码这样才能学到实际东西!本书说在www.unpbook.com可以获取源码,不过打不开!所以google unpv13e.tar.gz 并在网络上找到了:源码:h ...

随机推荐

  1. 有关UITableViewCell的侧滑删除以及使用相关大神框架MGSwipeTableCell遇到的小问题

    提起笔,却不知道从何写起了,今天一整天都耗费在了这个可能根本不算是问题的小问题上,至今仍有一种蛋蛋的忧桑..(噢,不是提笔,是键盘手T_T) 表格视图在项目中就像是每日的家常便饭,在cell上添加侧滑 ...

  2. html(四)

    今天html的内容就讲完了,感觉时间过得好快啊,知识点比较多,需要慢慢消化啊... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans ...

  3. 分布式内存对象缓存 memcached

    分布式内存对象缓存 许多Web 应用程序都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示.但随着数据量的增大,访问的集中,就会出现REBMS的负担加重,数据库响应恶化,网站显示延迟等 ...

  4. (1)QlikView概要

    本文的内容,以学习的两个合伙人: I.什么是Qlikview II. QlikView 的优点和缺点 1.1什么是QlikView 1.1什么是QlikView QlikView是一个工具,一个商业智 ...

  5. 福昕阅读器drm加密解密总结

    drm是数字版权保护的一种方式,前一段时间在做四川文轩数字图书馆项目的时候用到了相关的知识,感觉这东西对于一些在线阅读和视频播放还是有很大用处的. 对于其工作原理我也很好奇,先摘抄度娘的内容如下,当然 ...

  6. C#程序调用cmd执行命令(转)

    C#通过程序来调用cmd命令的操作 string str = Console.ReadLine(); System.Diagnostics.Process p = new System.Diagnos ...

  7. Image控件的简单使用示例1

    Image控件加载图片包括加载动态图片,加载静态图片两种方式.一.加载动态图片通过生成一个BitmapImage,创建该对象后,赋给Image的Source即可.加载的形式: 示例1 BitmapIm ...

  8. iOS 使用GitHub托管代码(github desktop使用)

    iOS 使用GitHub托管代码 代码托管 1.首先得有一个GitHub的账号,没有的话就去https://github.com注册一个吧. 2.下载GitHub Mac客户端:http://mac. ...

  9. Highcharts使用====一些问题记录

    问题1: 图表不显示(但有些浏览器可以显示chrome,IE.火狐不显示),原因可能是前台页面js代码有些问题.highcharts兼容性是比较好的.我遇到的问题是,使用了.replace(/T/, ...

  10. java日期操作

    //字符串转日期 public static void dt7() throws ParseException { String str_date="2015---08---08" ...