1.概述

     IP是TCP/IP协议族中最为核心的协议。所有的TCP,UDP,ICMP,IGMP数据都以IP数据报格式传输。
     IP提供不可靠,无连接的数据报传送服务。
  • 不可靠:它不能保证IP数据报能成功的到达目的地。
  • 无连接:IP并不维护关于后续数据报的状态信息。每个数据报的处理都是相互独立的。
2.IP数据报
     IP数据报的格式如图所示,普通的IP数据报首部为20个字节,除非含有选项字段。
  • 版本号:目前的版本号为4,即IPv4
  • 首部长度:指的是首部占32bit字的数目,包括选项长度
  • 服务类型(TOS):(现在大多数的TCP/IP实现不支持TOS特性)4bit的TOS分别代表:最小延迟,最大吞吐量,最高可靠性和最小费用。4bit只能置其中1bit,如果4bit均为0,则为一般服务。
  • 总长度字段:整个IP数据报的长度,以字节为单位。总长度是IP首部中必要的内容
  • 标识字段:唯一地标识主机发送的每一份数据报。
  • 标志字段:会在IP分片和重组的时候使用到。标志字段的最低位记为MF,中间的一位记为DF。MF=1表示后面还有分片。DF=0时,才能进行分片。
  • TTL(time-to-live):设置了数据可以经过的最多的路由器数,每经过一次路由器,该值-1.
  • 首部检验和:是根据IP首部计算的检验和码。
  • 源地址:
  • 目的地址:
  • 任选项:(一般没有)包括以下内容
    • 安全和处理限制
    • 记录路径(每个路由器都记录它的IP地址)
    • 时间戳
    • 宽松的源站选路
    • 严格的源站选路
3.IP路由选择(见TCP/IP详解学习(6)-- IP选路)
     路由表:
          路由表项:包括5bit标志,目的IP地址(主机,网络,默认),下一站路由的IP地址(间接路由)或者本地接口的我IP地址(直接路由)及指向本接口的指针。
          路由表中的每一项都包含下面这些信息:
    • 目的IP地址。可以是完整的主机地址,也可以是网络地址,由标志字段来指定
    • 下一站(或者下一跳)路由器的IP地址。
    • 标志。其中一个标志指明目的IP地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真的下一站路由器,还是一个直接相连的接口。
    • 为数据报的传输指定一个网络接口。

IP路由选择主要完成以下功能:

  • 搜索路由表,寻找能与目的IP地址完全匹配的表目。
  • 搜索路由标,寻找能与网络号相匹配的表目。
  • 搜索路由表,寻找标为默认的表目

4.IP地址

     如今的IP网络使用32位地址,以点分十进制表示,如192.168.0.1。

地址格式为:IP地址=网络地址+主机地址 或 IP地址=网络地址+子网地址+主机地址。

     根据用途和安全性级别的不同,IP地址还可以大致分为两类:公共地址和私有地址。公用地址在Internet中使用,可以在Internet中随意访问。私有地址只能在内部网络中使用,只有通过代理服务器才能与Internet通信。
 
5.IP地址分类
  • 网络号

用于识别主机所在的网络;

  • 主机号

用于识别该网络中的主机。

  • IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同。

A、B、C三类IP地址的特征:当将IP地址写成二进制形式时,A类地址的第一位总是0,B类地址的前两位总是10,C类地址的前三位总是110。

  • A类地址
(1)A类地址第1字节为网络地址,其它3个字节为主机地址。它的第1个字节的第一位固定为0.
(2)A类地址范围:1.0.0.1---126.255.255.254
(3)A类地址中的私有地址和保留地址:
① 10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。
范围(10.0.0.1---10.255.255.254)
② 127.X.X.X是保留地址,用做循环测试用的。
  • B类地址
(1) B类地址第1字节和第2字节为网络地址,其它2个字节为主机地址。它的第1个字节的前两位固定为10.
(2) B类地址范围:128.0.0.1---191.255.255.254。
(3) B类地址的私有地址和保留地址
① 172.16.0.0---172.31.255.254是私有地址
② 169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。
191.255.255.255是广播地址,不能分配。
  • C类地址
(1)C类地址第1字节、第2字节和第3个字节为网络地址,第4个字节为主机地址。另外第1个字节的前三位固定为110。
(2)C类地址范围:192.0.0.1---223.255.255.254。
(3) C类地址中的私有地址:
192.168.X.X是私有地址。(192.168.0.1---192.168.255.255)
  • D类地址
(1) D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110。
(2) D类地址范围:224.0.0.1---239.255.255.254
  • E类地址
(1) E类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1111。
(2) E类地址范围:240.0.0.1---255.255.255.254
IP地址如果只使用ABCDE类来划分,会造成大量的浪费:一个有500台主机的网络,无法使用C类地址。但如果使用一个B类地址,6万多个主机地址只有500个被使用,造成IP地址的大量浪费。因此,IP地址还支持VLSM技术,可以在ABC类网络的基础上,进一步划分子网。
  • 掩码

为了标识IP地址的网络部分和主机部分,要和地址掩码(Address Mask)结合,掩码跟IP地址一样也是32 bits,用点分十进制表示。IP地址网络部分对应的掩码部分全为“1”,主机部分对应的掩码全为“0”。
     缺省状态下,如果没有进行子网划分,A类网络的子网掩码为255.0.0.0,B类网络的子网掩码为255.255.0.0,C类网络的子网掩码为255.255.255.0。利用子网,网络地址的使用会更加有效。
     有了子网掩码后,IP地址的标识方法如下:
     例:192.168.1.1 255.255.255.0或者标识成192.168.1.1/24(掩码中“1”的个数)

6.特殊的IP地址
  • 组播地址

在IP地址空间中,有的IP地址不能为设备分配的,有的IP地址不能用在公网,有的IP地址只能在本机使用,诸如此类的特殊IP地址众多:注意它和广播的区别。从224.0.0.0到239.255.255.255都是这样的地址。224.0.0.1特指所有主机, 224.0.0.2特指所有路由器。

  • 169.254.x.x

主机使用了DHCP功能自动获得一个IP地址。

  • 受限广播地址

广播通信是一对所有的通信方式。若一个IP地址的2进制数全为1,也就是255.255.255.255,则这个地址用于定义整个互联网。如果设备想使IP数据报被整个Internet所接收,就发送这个目的地址全为1的广播包,但这样会给整个互联网带来灾难性的负担。因此网络上的所有路由器都阻止具有这种类型的分组被转发出去,使这样的广播仅限于本地网段。

  • 直接广播地址

一个网络中的最后一个地址为直接广播地址,也就是HostID全为1的地址。主机使用这种地址把一个IP数据报发送到本地网段的所有设备上,路由器会转发这种数据报到特定网络上的所有主机。

  • NetID为0的

当某个主机向同一网段上的其他主机发送报文时就可以使用这样的地址,分组也不会被路由器转发。

  • 环回地址

127网段的所有地址都称为环回地址,主要用来测试网络协议是否工作正常的作用。比如使用ping环回地址127.0.0.1就可以测试本地TCP/IP协议是否已正确安装。另外一个用途是当客户进程用环回地址发送报文给位于同一台机器上的服务器进程,来测试服务是否正常启动。

  • 专用地址

IP地址空间中,有一些IP地址被定义为专用地址,这样的地址不能为Internet网络的设备分配,只能在企业内部使用,因此也称为私有地址。

     这些专有地址是:

10/8 地址范围:10.0.0.0到10.255.255.255 共有2的24次方个地址
172.16/12 地址范围:172.16.0.0至172.31.255.255 共有2的20次方个地址
192.168/16 地址范围:192.168.0.0至192.168.255.255 共有2的16次方个地址

tcp/ip --IP:网际协议的更多相关文章

  1. 《TCP/IP详解卷1:协议》第3章 IP:网际协议(1)-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  2. 《TCP/IP详解卷1:协议》第3章 IP:网际协议(2)-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  3. IP:网际协议

    IP:网际协议 1.概述      IP是TCP/IP协议族中最为核心的协议.所有的TCP,UDP,ICMP,IGMP数据都以IP数据报格式传输.      IP提供不可靠,无连接的数据报传送服务. ...

  4. OSI、TCP、IP、UDP 这些都是啥??

    一个大大的问号首先抛出,计算机之间是如何进行通信的? 计算机网络是通过传输介质.通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统. 网络协议就是数据按照一定的 ...

  5. HTTP要点概述:一,TCP/IP协议族

    一,协议: 计算机与网络设备之间如果要相互通信,双方必须基于相同的方法.比如说,怎么探测到通讯目标,哪一方发起通信,使用哪一种语言通信,怎么结束通信,都需要事先规定.不同硬件,操作系统之间的通信需要一 ...

  6. http tcp udp ip 间的关系

    首先,我自己梳理一下,其实除了应对以后的笔试,还有需要应对的是自己在编程中对于api的选择,我在满足需求时采取哪种方案更好. 首先,我需要了解的是tcp/ip是一个协议组,有三大层: ip 对应于网络 ...

  7. 005.TCP--拼接TCP头部IP头部,实现TCP三次握手的第一步(Linux,原始套接字)

    一.目的: 自己拼接IP头,TCP头,计算效验和,将生成的报文用原始套接字发送出去. 若使用tcpdump能监听有对方服务器的包回应,则证明TCP报文是正确的! 二.数据结构: TCP首部结构图: s ...

  8. spark Association failed with [akka.tcp:sparkMaster@ip:7077]

    今搭建spark集群, conf/spark-env.sh 配制如下 export SPARK_MASTER_IP=masterexport SPARK_MASTER_PORT=7077export ...

  9. 【前端童鞋看过来!】给大家分享网盘里前端相关书籍,主要是和网络通信(HTTP/TCP/IP)及javascript相关的

    百度云链接:https://pan.baidu.com/s/1kUPdf5H(无密码) 截图: <HTTP权威指南> [豆瓣书评]:此书第一部分是HTTP的概略,如果你没有时间,通读第一部 ...

  10. DNS,TCP,IP,HTTP,socket,Servlet概念整理

    DNS,TCP,IP,HTTP,socket,Servlet概念整理   常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习.如有错误欢迎指正.   D ...

随机推荐

  1. 最小生成树 (Minimum Spanning Tree,MST) --- Prim算法

    本文链接:http://www.cnblogs.com/Ash-ly/p/5409904.html 普瑞姆(Prim)算法: 假设N = (V, {E})是连通网,TE是N上最小生成树边的集合,U是是 ...

  2. Diamond Collector (动态规划)

    问题 I: Diamond Collector 时间限制: 1 Sec  内存限制: 64 MB提交: 22  解决: 7[提交][状态][讨论版] 题目描述 Bessie the cow, alwa ...

  3. Linux命令之fdisk

    fdisk fdisk [选项] <disk>  改变分区表 fdisk [选项] –l <disk>  列出所有分区表 fdisk –s <partition(分区编号 ...

  4. 【AC自动机/fail树】BZOJ3172- [Tjoi2013]单词

    [题目大意] http://www.lydsy.com:808/JudgeOnline/problem.php?id=3172 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会在论文中出现很多 ...

  5. 上传--下载HDFS文件并指定文件物理块的大小

    使用hdfs的api接口分别实现从本地上传文件到集群和从集群下载文件到本地. 1)上传文件主要是使用FileSystem类的copyFromLocalFile()方法来实现,另外我们上传文件时可以指定 ...

  6. Java高级架构师(一)第12节:Service的实现以及模块化

    BaseService.java package com.sishuok.architecture1.common.service; import java.util.List; import com ...

  7. jQuery判断一个元素是否为另一个元素的子元素

    判断:当前元素是否是被筛选元素的子元素 jQuery.fn.isChildOf = function(b){ return (this.parents(b).length > 0); }; 判断 ...

  8. zk watch机制及创建node机制

    Watch(监视) 当指定的znode或znode的子数据更改时,监视器会显示通知.你只能在 get 命令中设置watch. 语法 get /path [watch] 1 示例 get /FirstZ ...

  9. Merge的山寨版“联机帮助”

    IF NOT OBJECT_ID('Demo_AllProducts') IS NULL DROP TABLE Demo_AllProducts GO CREATE TABLE Demo_AllPro ...

  10. webpack导入es6的简单应用

    1.先全局安装babel的需要文件 npm install -g babel-cli npm install --save-dev babel-preset-es2015 babel-core bab ...