第四章.IP协议

IP(Internet Protocol,网际协议),作为整个TCP/IP中至关重要的协议,主要负责将数据包发送给最终的目标计算机。因此,IP能够让世界上任何两台计算机之间进行通信。

一、IP基础知识

IP三大块:IP寻址、路由、IP分包和组包。

1.路由控制(Routing)

路由控制是指将分组数据发送到最终目标地址的功能

三个重点:
①跳(Hop):一跳是指利用数据链路层以下分层的功能传输数据帧的一个区间,它是主机或路由器网卡不经其他路由器而能直接到达的相邻主机或路由器网卡之间的一个区间
②多跳路由:每一个区间(跳)在转发IP数据包时会分别制定下一跳的操作,直至包达到最终的目标地址,而不是一次性给出所有通路。
③路由控制表:记录IP数据在下一步应该发给哪个路由器,从路由控制表可以了解目标地址的方向。

2.数据链路的抽象化

问题:不同的数据链路最大的区别就是它们各自的最大传输单位(MTU:Maxinum Transmission Unit)不同。IP的上一层可能会要求传送比这些MTU更多字节的数据,因此必须在线路上传送比包长还要小的MTU。

解决方法:IP进行分片处理(IP Fragmentation)。将较大的IP包分成多个较小的IP包,到达对端目标地址后再组合起来。对于IP的上层来说,完全忽略了数据包在各个数据链路层中的MTU,实现了数据链路层的抽象。

3.IP协议相关

①IP地址属于网络层地址,在TCP/IP中通信的所有主机或路由器必须设定自己的IP地址。
IP面向无连接。(因此TCP采用面向有连接型,提高了可靠性)

二、IP地址

1.IP地址的定义

①IP地址(IPv4)长度为32位,8位一组,分成4组。
10101100 00010100 0000001 00000001 —> 172.20.1.1
一台主机至少可以设置一个以上的IP地址,一台路由器可以设置两个以上的IP地址,一块网卡也可以设置两个以上的IP地址

2.网络标识和主机标识

①网络地址在数据链路的每个段配置不同的值
相同段内相连的主机必须有相同的网络地址,主机标识不允许在同一网段内重复出现
IP包的路由过程中利用的是目标IP地址的网络标识,而不需要使用主机标识。

3.IP地址分类

级别 范围 网络标识长度 主机标识长度 一个网段内可容纳的主机地址上限
A类地址 0.0.0.0~127.0.0.0 1~8位 9~32位 16,777,214个(2^24-2)
B类地址 128.0.0.0~191.255.0.0 1~16位 17~32位 65,534个(2^16-2)
C类地址 192.0.0.0~223.255.255.0 1~24位 25~32位 254个(2^8-2)
D类地址 224.0.0.0~239.255.255.255 1~32位 没有主机标识

4.广播与多播

广播地址用于在同一个链路中相互连接的主机之间发送数据包。
将IP地址中的主机地址部分全部设置为1就成了广播地址。

两种广播方式:1.本地广播,本网络内,不会传播到其他链路上;2.直接广播,可以发送到其他的数据链路上(因为安全问题,多数情况下路由器会被设置为不转发)。

单播、广播、多播通信:

多播使用D类地址,因此开头是“1110”的IP地址就可以认为是多播地址。

5.子网掩码

子网掩码出现的目的:节省网络资源,通过子网网络地址细分出比A类、B类等更小粒度的网络。

表示方式:
IP地址:172.20.100.52(前26位为网络地址)
子网掩码:255.255.255.192 或 172.20.100.52/26

CIDR(无类型域间选路):可以将连续多个地址划分到一个较大的网络内,通过路由器几种降低了路由器的负担。

VLSM(可变长子网掩码):可以随机修改组织内各个部门的子网掩码长度的机制,提高IP地址的利用率。

6.全局地址与私有地址

私有地址的范围:
①10.0.0.0 ~ 10.255.255.255 (10/8)         A类
②172.16.0.0 ~ 172.31.255.255 (172.16/12)    B类
③192.168.0.0 ~ 192.168.255.255 (192.168/16)   C类

NAT技术:实现私有IP和全局IP的互相转换,实现了配有私有地址的主机与配有全局地址的互联网主机之间的通信。

三、路由控制

书中的两幅图已经非常好的概括了路由控制的过程和路由控制表的聚合过程了。

路由控制过程:

路由控制表的聚合:

四、IPv4首部

结构(从前往后排列) 长度(比特) 概述
版本 4 IPv4的版本号为4
首部长度(IHL) 4 表明IP首部大小,单位为4字节,默认为20字节
区分服务 8 表明服务质量,每一位都有具体含义,比如0、1、2三位表示优先度
总长度 16 IP包最大长度为2^16-1=65535字节
标识(ID) 16 用于分片重组
标志(Flags) 3 表示包被分片的相关信息,每一位都有具体含义
片偏移 13 标识被分片的每一个分段相对与原始数据的位置
生存时间(TTL) 8 指包可以中转多少个路由器,每经过一个路由器,
协议 8 IP传输层的上层协议编号,比如1代表ICMP
首部校验和 16 校验数据报的首部,不校验数据部分
源地址 32 表示发送端IP地址
目标地址 32 表示接收端IP地址
可选项 长度可变 实验或诊断时使用,包含安全级别、时间戳等信息
填充 长度可变 用于填充首部到32比特的整数倍(字段填充0)
数据 -- 存入数据,将IP上层协议的首部也作为数据进行处理

图解TCP/IP读书笔记(四)的更多相关文章

  1. 图解TCP/IP读书笔记(二)

    图解TCP/IP读书笔记(二) 第二章.TCP/IP基础知识 一.TCP/IP出现的背景及其历史 年份 事件 20世纪60年代后半叶 应DoD(美国国防部)要求,美国开始进行通信技术相关的研发 196 ...

  2. 图解TCP/IP读书笔记(一)

    图解TCP/IP读书笔记(一) 第一章 网络基础知识 本学期的信安概论课程中有大量的网络知识,其中TCP/IP占了相当大的比重,让我对上学期没有好好学习计算机网络这门课程深感后悔.在老师的推荐下开始阅 ...

  3. 图解TCP/IP读书笔记(三)

    第三章.数据链路 数据链路层是计算机网络最基本的内容. 数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范. 一.数据链路相关技术 1.MAC地址 关于MAC地址的几个要点: ①MAC地址长度 ...

  4. # 图解TCP/IP读书笔记(五)

    第五章.IP协议相关技术 IP旨在让最终目标主机收到数据包,但是在这一过程中仅仅有IP是无法实现通信的,因此还有需要作为为IP的辅助的各种协议支持. 协议 作用 特点 DNS(Domain Name ...

  5. TCP/IP读书笔记(4) IPv4和IPv6 路由选择

    TCP/IP读书笔记(4) IPv4和IPv6 路由选择 网络层是位于链路层之上,TCP/IP模型中网络层的核心协议是IP协议(Internet protocol). 目前主流的IP协议是IPv4(I ...

  6. 《图解TCP/IP》第四章

    <图解TCP/IP>第四章 4.1 IP 即网际协议 4.1.1 IP(IPv4.IPv6)相当于OSI参考模型中的第3层-网络层 4.1.2 数据链路层和网络层的关系: 数据链路层的主要 ...

  7. 《图解TCP/IP》笔记

    OSI参考模型 协议分层 为什么需要分层? 简化网络协议. 每一层只需要衔接上下层的服务. 利于模块化开发. 解耦. 分层的问题 过分模块化.提高数据处理的开销. OSI参考模型 作用及意义 将复杂的 ...

  8. 《图解tcp/ip》读书笔记(二)

    <图解tcp/ip>读书笔记(二) 本周主要阅读的是本书的第三章--数据链路. 当然了,从某些角度讲,我认为这一章就是计算机网络的最基本的内容之一.整章讲述了数据链路层的作用和相关技术,主 ...

  9. 读书笔记——《图解TCP/IP》(1/4)

    读书笔记——<图解TCP/IP>(1/4) 经典摘抄 第一章 网络基础知识 1.独立模式:计算机未连接到网络,各自独立使用的方式. 2.广域网 WAN 局域网 LAN 城域网 MAN 3. ...

随机推荐

  1. Ubuntu 12.04 Desktop安装XAMPP

    1/打开终端 在Dash里搜索.打开Dash,在里面搜索“gnome-terminal”,就可以找到终端应用序.快捷键Ctrl+Alt+L也可以,不过如果是虚拟机的话可能会有问题. 如果想以后快捷打开 ...

  2. Gentoo安装配置过程与总结

    前些时间在VMware上安装了Gentoo Linux,用了当前最新版的Gentoo,安装过程记录下来了,但一直没有整理到blog上.今天重新整理一下,写出来与大家分享和备用.接触Gentoo不久,对 ...

  3. 腾讯qq的发展史

    腾讯qq的发展史 即时通信软件的历史并不久远,但是它一诞生,就立即受到网民的喜爱,并风靡全球.    在其发展史上,以色列人功不可没.正是四位以色列籍的年轻人,在1996年7月成立的Mirabilis ...

  4. appium 启动失败解决方案

    本机下载了:AppiumForWindows,启动Appium.exe 的时候,立即提示:应用程序已停止运行!! 本机环境: WIN 7 64 位,后来查了资料才知道Appium 要求安装.net f ...

  5. JS 数组的基础知识

    数组 一.定义 1.数组的文字定义 广义上说,数组是相同类型数据的集合.但是对于强类型语言和弱类型语言来说其特点是不一样的.强类型语言数组和集合有以下特点. 数组强类型语言:1.数组里面只能存放相同数 ...

  6. 16进制转rgb

    - (void)colorWithHexString: (NSString *) stringToConvert { //去掉前后空格换行符 NSString *cString = [[stringT ...

  7. sublime 配置C++

    1. 安装C语言编译器MinGW,并把MinGW安装目录下的bin目录添加到环境变量PATH里.详细方法参照MinGW安装和使用 2. 在SublimeText安装目录下的Data\Packages\ ...

  8. ASP.NET登录控件延伸(个性化)

    既然由登录控件涉及到了Membership,那么就不得不提到用户个性化Profile对象.个性化允许为用户保存特定的个性化信息到数据库中,因此它不同于ASP.NET状态管理之处在于可以永久性保存这些信 ...

  9. BZOJ2199: [Usaco2011 Jan]奶牛议会

    趁此机会学了一下2-SAT. 以前的2-SAT都是用并查集写的,只能应用于极小的一部分情况,这次学了一正式的2-SAT,是用一张有向图来表示其依赖关系. 2-SAT的介绍参见刘汝佳<训练指南&g ...

  10. LSTM/RNN的应用Case

    作者:许铁-巡洋舰科技链接:https://www.zhihu.com/question/37082800/answer/126430702来源:知乎著作权归作者所有,转载请联系作者获得授权. 作者: ...