首先来看一下IP协议在实际中的位置:

我们只关系流程,不关系当前具体的服务类型

1、IP协议概述

作用:

从上图或从应用层->运输层->网络层->链路层来看,IP协议属于网络层,也就是作为运输层(UDP等)和链路层(以太网)沟通的桥梁。

特点:

IP协议提供的是不可靠和无连接的数据报传递。

什么是不可靠?不可靠意味着不保证当前的数据报成功送到目的地

什么是无连接?无连接意味着对发送后的数据不再维护其状态信息

注:IP协议是TCP/IP协议族中最为核心的协议(桥梁、通信协议)

2、IP协议-首部说明

注1.关于TOS服务类型:

注2.关于首部长度字段说明:

1.字段为16位说明IP数据报最长可达65535字节,尽管如此,大多数链路层都会进行分片操作(后续讲解)

2.字段存在原因:上文的RFC定义的以太网数据帧长最小为46字节,此处的IP数据报真实的内容可能小于46字节

(注意:此时其他字节需填充凑齐46字节)

注3.校验和计算方式:

注意:所有TCP/IP首部所有的传输都采用大端模式即:高位在低比特位,读值直接采用顺序读取,小端模式则相反(对应于网络编程API:htons系列)。

3、IP层数据的传递-IP路由选择(路由表描述)    

1.路由是什么

在网络层(IP层)中,普通的服务器既可以被配置成主机也可以被配置为路由器,而主机和路由器的本质区别在于:

具有路由功能的主机对接收到的数据进行转发,而主机只接收不转发。

2.路由表是什么

在应用层->运输层->网络层->链路层的基础结构下,网络层(IP层)可以从运输层(TCP,UDP..)接收数据,在网络层(IP层)发送到

链路层的时候,我们需要对应IP地址的主机硬件地址(见本文的第一张图),IP层通过ARP协议(见下次分析)获取到对应IP地址的主机硬件地址

并将该硬件地址保存在内存中这就是路由表。

3.路由表的作用

由(2)可知,路由表的功能在于提供地址查询,IP层每次在接收发送数据的时候都对该表进行查询,如果判断该IP为本机地址或IP广播地址,

此时数据报被送到IP首部协议字段指定的协议模块处理。如果不是本机或广播地址,则需要对当前服务器IP层的配置进行判断见(1),

配置成主机功能的服务器此时将抛弃该数据报。

4.路由表的内容

1.目的IP地址,既可以是主机地址也可以是网络地址(见下文)

2.下一个路由表的IP地址或直接连接(SLIP..)的网路IP地址

3.标志

4.为数据的传输指定一个网络接口

5.IP路由选择的优先级顺序

1.目的IP完全匹配的主机

2.目的IP网络号匹配的表目

3.默认表目(通常情况下,IP层为同一网络号分配一个路由器)

注意:如果到最后都未能找到下一表目的情况,数据将被丢弃,ICMP(见下次分析)将返回"主机不可达"或"网络不可达的错误"

6.举例

四、IP层地址中的子网选址(子网编号)和子网掩码的设定描述

1.什么是子网号,为什么需要子网号

由于各类地址为主机号分配太多的空间,为更方便查询到相应主机,我们为32bit的地址设定了网络号和子网号以及主机号。

以B类地址为例:

注:在上一节(IP的传递-IP路由选择(路由表描述))中我们所讲述的网络号地址就是此处16bit的140.252。

    

子网号的作用在于:

a)隐藏子网内部的网络组织,减小网络路由表的规模

b)见(2)的说明

2.什么是子网掩码,子网号在子网掩码的作用

将32bit地址中的主机号位置0,其余位置1就是子网掩码。

此时子网号的作用就在于确定此时存在n个bit为主机号位。

3.举例

1.一般情况下的子网掩码

2.变长的子网掩码

Reference:

TCP/IP 协议:IP 协议的更多相关文章

  1. http与https与socket tcp/IP与UDP 协议等

    网络由下往上分为:   物理层--                       数据链路层-- 网络层--                       IP协议 传输层--               ...

  2. TCP/IP 和HTTP 协议基础知识

    来源:http://www.myhack58.com/Article/60/63/2014/50072.htm 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过 ...

  3. TCP/IP和HTTP协议代理

    TCP/IP协议族 TCP/IP(传输控制协议/网际协议)是用于计算机通信的一个协议族. TCP/IP协议族包括诸如Internet协议(IP).地址解析协议(ARP).互联网控制信息协议(ICMP) ...

  4. TCP/IP 笔记 - 地址解析协议

    地址解析协议(ARP)提供了一种在IPv4地址和各种网络技术使用的硬件地址之间的映射.ARP仅用于IPv4,IPv6使用邻居发现协议,它被合并入ICMPv6.地址解析是发现两个地址之间的映射关系的过程 ...

  5. 在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 网络层协议 MAC帧、IP数据报、TCP报文 关系 IP地址与硬件地址 链路层与网络层

    小结: 1. 网络层两种服务 虚电路服务 virtual circuit  电信网 网络层负责可靠交付 数据报服务  网络层不负责可靠交付 提供灵活的.无连接的.尽最大努力交付的数据报服务 不提供服务 ...

  6. http协议tcp协议ip协议三次握手四次挥手,为什么三次握手,为什么四次挥手,sockete套接字理解

    1.1 TCP是什么? TCP是Tranfer Control Protocol的简称,TCP协议是一种面向连接的.可靠的.基于字节流的运输层通信协议.通过TCP协议传输,得到的是一个顺序的无差错的数 ...

  7. 【TCP/IP详解 卷一:协议】第十七章 TCP:传输控制协议

    本章作为TCP的入门章节,简单的概述了一些TCP的知识,和TCP数据报的首部格式. TCP 最重要的特性:reliable. 17.1 引言 本章介绍的是 TCP为应用层提供的服务. 17.2 TCP ...

  8. tcp/ip (网络通讯协议)

    介绍 TCP: 传输控制协议, IP: 网际协议, TCP/IP: 供已连接互联网的计算机之间进行通信的通信协议 在tcp/ip内部 , 包含一系列处理数据通信的协议: tcp.udp.icmp.dh ...

  9. 浏览器解析,HTTP/HTTPS、TCP/IP、WebSocket协议

    浏览器相关 浏览器对同一个域名有连接数限制,大部分是 6. 浏览器指的是 Chrome.Firefox,而浏览器内核则是 Blink.Gecko,浏览器内核只负责渲染,GUI 及网络连接等跨平台工作则 ...

  10. TCP/IP及http协议 SOAP REST

    TCP/IP及http协议: TCP/IP协议主要解决数据如何在网络中传输, 而HTTP是应用层协议,主要解决如何包装数据 SOAP:简单对象访问协议(Simple Object Access Pro ...

随机推荐

  1. Visual Studio的Web Performance Test提取规则详解(1)

    总结 Visual Studio的Web Performance Test是基于HTTP协议层的,它不依赖于浏览器,通过直接接收,发送HTTP包来和Web服务器交互.Web Performance T ...

  2. Swift高级语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如 ...

  3. 后勤数据抽取流程图 Logistic Data Extraction

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. socket(一)

    相关链接: http://my.oschina.net/u/1378445/blog/340206?p=2&temp=1469158886336#blog-comments-list http ...

  5. 《BI那点儿事》数据仓库建模:星型模式、雪片模式

    数据仓库建模 — 星型模式Example of Star Schema 数据仓库建模 — 雪片模式Example of Snowflake Schema 节省存储空间 一定程度上的范式 星形 vs.雪 ...

  6. zoj3430Detect the Virus(ac自动机)

    链接 解码之后是跟普通的自动机求解一下的,只不过解码比较恶心,512=>N>=0 ,所以不能用字符串来存,需要转换成整数来做. #include <iostream> #inc ...

  7. Linux 监控文件被什么进程修改

    安装: apt-get install auditd. auditd 是后台守护进程,负责监控记录 auditctl 配置规则的工具 auditsearch 搜索查看 aureport 根据监控记录生 ...

  8. 基于注解的Spring AOP的配置和使用--转载

    AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程.可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术. ...

  9. 关于NOR-FLASH和NAND-fLASH的区别。——Arvin

    NANDFLASH: Nand-flash内存是flash内存的一种,1989年,东芝公司发表了NAND flash结构.其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案.N ...

  10. TextView 行数控制

    控制textview只显示 2 行文本,超过 2 行显示展开/折叠按钮(mShowImage),isShow=true时,是展开状态,isShow=false时,是折叠状态 方法一: int line ...