第四章 网络层

电信网使用面向连接的通信方式,使电信网络能够向用户提供可靠传输的服务。

互联网设计思路:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报(分组)服务。

网络层不提供可靠传输服务,所传送的分组可能出错、丢失、重复和失序。 

TCP/IP体系的网络层提供的是数据报服务。

网络层协议:IP协议、地址解析协议ARP、网际控制报文协议ICMP、网际组管理协议IGMP。

ICMP和IGMP要使用IP协议、IP协议要经常使用ARP。 

IP地址是32位二进制代码,每8位换成一个十进制数并中间加一个点即叫点分十进制。 

ARP协议:知道自己的IP、硬件地址和对方的IP地址求对方的硬件地址。

IP地址和硬件地址不是简单映射关系,ARP解决方法是在主机ARP高速缓存中存放一个IP地址到硬件地址的映射表,而且经常动态更新(新增或超时删除)

网络链路上传送的帧是按照硬件地址找到目的主机的,使用IP地址的好处在于不需要进行非常复杂的硬件地址转换工作就能使这些异构网络能够互相通信,一个主机只有一个IP地址,它们之间的通信就像连接在同一个网络一样简单。

IP数据报格式: 

32位(4个字节)为单位进行描述,固定首部长度为20字节。首部长度是20-60字节。

首部检验和采用反码算术运算求和的方式进行检验。

互联网有两种交付:在本网络上的直接交付和到其他网络的间接交付。

网络地址=IP地址与子网掩码化成二进制后逐位相与,网络地址指的是网络号+主机号全为0。

无分类域间路由选择CIDR是解决IP地址紧缺第一个好方法。CIDR记法把IP地址后面加上斜线‘/‘,然后写上网络号所占的位数,把前缀都相同的连续IP地址组成一个“CIDR地址块“。

CIDR主要特点:(1)消除了传统的A类、B类C类地址以及划分子网的概念 
(2)CIDR把网络前缀都相同的连续IP地址组成一个“CIDR地址块“。

路由表必须包含三个内容:目的网络地址、子网掩码和下一跳地址。

ICMP报文有两类:ICMP差错报告报文和ICMP询问报文。 
ICMP的一个重要应用:分组网间探测PING,测试两台主机之间的连通性。 

路由选择协议划分:内部网关协议IGP(RIP和OSPF等)和外部网关协议EGP(目前用的是BGP)

RIP协议:一种分布式的基于距离向量的路由选择协议,距离是指跳数,RIP适用于小型互联网。

RIP协议特点:仅和相邻路由器交换信息、交换的信息是自己现在的路由表、按固定的时间间隔交换路由信息。

RIP协议最大优点就是实现简单,开销较小,缺点首先是RIP限制了网络的规模;其次,路由器之间交换的路由信息是完整路由表,随着网络规模扩大,开销也增加;最后是坏消息传播得慢,当网络出现故障时,要经过较长时间才能将此信息传送到所有路由器。

OSPF协议:使用分布式的链路状态协议。

OSPF协议特点:向本自治系统中所有路由器发送信息(洪泛法)、发送的信息是与本路由器相邻的所有路由器的链路状态、只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此消息。

OSPF的优点是OSPF的更新过程收敛得快,链路状态数据库能较快地进行更新;对于不同类型的业务可计算出不同的路由;提供负载均衡功能;支持可变长度的子网划分和无分类的编址CIDR,缺点是协议本身庞大复杂,实现起来难度大。

路由器可划分为:路由选择部分和分组转发部分。

解决IP地址耗尽的问题,根本办法就是采用具有更大地址空间的新版本IP协议IPv6。

IPv6的主要变化: 
(1)更大的地址空间(128位地址) (2)灵活的首部格式 
(3)改进的选项 (4) 支持即插即用 (5)支持资源的预分配 
(6)首部改为8字节对齐(IPv4是4字节对齐)

IPv6数据包的目的地址有三种基本类型地址:单播、多播、任播。

IPv6地址采用冒号十六进制记法。

向IPv6过渡只能逐步演进,可以使用双协议栈或隧道技术。

一个VPN至少要有一个路由器具有合法的全球IP地址,这样才能和本系统的另一个VPN通过互联网进行通信,所有通过互联网传送的数据都必须加密。

《计算机网络》谢希仁(第7版) 第四章 c语言http://c.biancheng.net/cpp/html/3137.html的更多相关文章

  1. 重读 谢希仁《计算机网络》3 - 网络层和IP协议

  2. C++PrimerPlus第6版 第四章——复合类型

    1,复合类型主要包含:数组.结构.联合.枚举.类.指针.引用等. 2,数组.长度必须确定.即编译阶段,数组的长度就得确定好.所以只能使用常量(#define.const)声明数组长度.如果使用变量声明 ...

  3. Java 线程第三版 第四章 Thread Notification 读书笔记

    一.等待与通知 public final void wait() throws InterruptedException      等待条件的发生. public final void wait(lo ...

  4. C#高级编程第11版 - 第四章 索引

    [1]4.2 继承的类型 1.C#不支持类的多继承,但它支持一个接口继承自多个接口. 2.单继承:单继承允许一个类继承自另外一个基类,C#支持. 3.多级继承:多级继承允许创建一个类继承自它的父类,而 ...

  5. MVC5+EF6 简易版CMS(非接口) 第四章:使用业务层方法,以及关联表解决方案

    目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...

  6. 图片人脸检测——Dlib版(四)

    上几篇给大家讲了OpenCV的图片人脸检测,而本文给大家带来的是比OpenCV更加精准的图片人脸检测Dlib库. 点击查看往期: <图片人脸检测——OpenCV版(二)> <视频人脸 ...

  7. ROS机器人程序设计(原书第2版)补充资料 (肆) 第四章 在ROS下使用传感器和执行器

    ROS机器人程序设计(原书第2版)补充资料 (肆) 第四章 在ROS使用传感器和执行器 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 第四 ...

  8. Python操作redis系列以 哈希(Hash)命令详解(四)

    # -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. Hset 命令用于 ...

  9. C语言程序设计:现代方法(第2版)第二章全部习题答案

    前言 本人在通过<C语言程序设计:现代方法(第2版)>自学C语言时,发现国内并没有该书完整的课后习题答案,所以就想把自己在学习过程中所做出的答案分享出来,以供大家参考.这些答案是本人自己解 ...

随机推荐

  1. win10下多版本apache(2.2,2.4)+php(5.3.5,5.5.37,5.6.25,7.0.8)注意点

    1.Loaded Configuration File 问题: apache2.2 httpd PHPIniDir D:\php5.3.5\php.ini AddType application/x- ...

  2. mysql5.5版本以后插入中午显示问号的解决办法

    先看看中午变问号的结果 现在看看我们建立数据库和建表的操作 看到这里相信大家都知道创建成功了,没错,数据库跟表是创建成功了,可当你录入的信息带中文的时候就显示问号. 现在用传统的解决办法 在查看下表的 ...

  3. IDEA设置syso快捷键输出System.out.println();

    用Eclipse时间长了, 就习惯之前的快捷键! 当然, IDEA不愧是Java开发的”利器”! 写起代码就是一个字 – “爽”! 建议大家可以去尝试一下! 当然, 在IDEA中输出System.ou ...

  4. (4/24) webpack3.x快速搭建本地服务和实现热更新

    写在前面: (1)为了防止版本兼容问题,此处的webpack版本与之前的一致为:webpack@3.6.0.同时这里我们安装的webpack-dev-server版本是2.9.7版本. (2)之前已经 ...

  5. 61. oracle给用户解锁

    1.查看用户状态select username,account_status from dba_users where username='test'; 2.解锁: ALTER USER YS_ADM ...

  6. JAVA Spring 事物 ( 已转账为例 ) 基于 XML 配置,事务类型说明

    < 1 > 配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&q ...

  7. js实现点击按钮弹出上传文件的窗口

    转自:https://www.jb51.net/article/100916.htm 1.详细描述 在页面上设置一个“选择文件”按钮,点击该按钮,会弹出本地磁盘信息用于选择文件. 2.代码 ? 1 2 ...

  8. MySQL 获取最后插入的ID LAST_INSERT_ID用法

    LAST_INSERT_ID() 自动返回最后一个INSERT或 UPDATE 查询中 AUTO_INCREMENT列设置的第一个表发生的值. MySQL的LAST_INSERT_ID的注意事项: 第 ...

  9. springBoot异常处理

    1.status=404 Whitelabel Error Page Whitelabel Error Page This application has no explicit mapping fo ...

  10. storyboard中UIButton setframe 不起作用

    将storyboard的autolayout选项关掉!(暂时没发现具体什么原因.)