TCP-IP详解学习笔记1

  • 网关可以在互不相关的网络之间提供翻译功能;
  • 体系结构: 协议和物理实现,实际上是一组设计决策。
  • TCP/IP协议族允许计算机,智能手机,嵌入式设备之间通信;
    • TCP/IP是一个开放的系统,协议族定义和很多实现都是公开的。
  • 分组交换思想(多路复用):一定字节的数字信息块独立通过网络,是网络更具有弹性,基于设计复用可更好地利用网络链路和交换设备。
  • 消息边界: 数据本身有一个开始和结束。
  • 端到端连接方式的好处: 保证数据不丢失,发送方控制发送速率;
    • 差错控制对数据损坏和丢失的处理;
    • 分层保证每层只负责通信的一个方面,标准的ISO是7层结构,通常认为TCP/IP包含5层。
      • ISO7层结构: 应用层、表示层、会话层、传输层、网络层、链路层、物理层;
      • 通常5层结构: 应用层、传输层、网络层、数据链路层与物理层。
      • 分层结构的优点是协议复用,多种协议共存于同一基础设施中。
      • 分层都有不同的类型标识符,用于确定信息属于哪个协议或信息流。
      • 第N-1层的标识符在第N层的分解过程中用于决定正确的接收协议或程序。
    • 内核实现了TCP/IP协议栈的实现。
  • DNS是一个分布式数据库,提供主机名和IP地址间的映射,链路层接口至少有一个IP地址。
  • TCP/IP协议的应用程序采用两种应用程序接口: socket和TLI(Transport Layer Interface);
    • TCP/IP协议族分为4层:应用层、运输层(传输层)、网络层(IP层)、链路层;运输层提供端到端的服务,网络层提供点到点的服务。
    • 端口号被用来标识互相通信的应用程序,服务器使用知名端口号,客户端使用临时设定的端口号。

第2章 Internet地址结构

  • Internet中使用的网络层地址,即IP地址,地址分配可以提高路由扩展性,以及广播、组播、任播的特殊用途,IP地址来识别流量去向;

    • 个人通过Internet服务提供商(ISP)分配地址,需付费来获得地址和执行路由。
    • 点分四组或点分十进制表示法。
    • IPv4是32位,IPv6是128位。
  • 单播IP地址都有网络部分以及主机部分:
    • 网络部分 -- 用于识别接口使用的IP地址在哪个网络中可被发现;
    • 主机地址 -- 用于识别由网络部分给出的网络中的特定主机;
    • 地址中的一些连接位称为网络号,其他的称为主机号。
  • IP地址分为5大类:
    • A类: 网络号8位(7位自由), 主机号24位,用于单播地址(0.0.0.0~127.255.255.255);
    • B类: 网络号16位(14位自由),主机16位,用于单播地址(128.0.0.0~127.191.255.255);
    • C类: 网络号24位(21位自由),主机8位,用于单播地址(192.0.0.0~127.239.255.255);
    • D类: 组播地址(32位,28位自由)(240.0.0.0~239.255.255.255);
    • E类: 保留(32位,28位自由)(240.0.0.0~255.255.255.255)。
    • IPv4地址空间划分
    • 类划分根据给定大小的可用网络数和给定网络中的可分配主机数之间折中。
  • 子网寻址: 在一个站点接入Internet后为其分配一个网络号,然后由站点管理员进一步划分本地的子网数;
    • 站点将基础地址中的主机部分进一步划分为一个子网号和一个主机号,子网寻址为IP地址结构增加了一个额外部分,
      但它没有为地址增加长度。
    • 将主机部分分为子网ID(8位)和主机ID(8位)。
    • 只有划分子网的网络中的主机和路由器知道子网结构,在进行子网寻址前,Internet其他部分仍将它作为站点相关的地址来看待。
    • 子网掩码由一台主机或路由器使用的分配符,以获得网络和确定子网信息。
      • 左边起,有一些前缀长度为1。
      • 子网掩码为1的地方表示一个IP地址的对应位与一个地址的网络/子网部分的对应位相结合。
      • 子网掩码为0表示一个IP地址的对应位作为主机ID的一部分。
    • 可变长子网掩码,可将不同长度的子网掩码应用于相同网络号,提高了子网结构的灵活性。
      • 动态路由协议(OSPF, IS-IS, RIPv2)。
  • 广播地址:
    • 在每个IPv4子网中,一个特殊地址被保留作为子网广播地址,广播地址将子网、网络部分设置为适当值,将主机部分的所有位设置为1.
    • 定向广播,定向广播在安全上是存在问题的。
    • 有限广播:255.255.255.255被保留为本地网络,它根本不会被路由转发。
    • 子网广播和连接在同一网络中的计算机的本地网络广播将正常工作。
    • 广播地址可用于IPv4中,而IPv6仅适用组播地址。
  • IPv6的一些特点:
    • 地址长度是IPv4的4倍,为128;
    • IPv6适用一个特殊的前缀表示一个地址范围。
      • 节点本地(只用于同一计算机中通信);
      • 链路本地(只用于同一网络链路或 IPv6前缀中的节点);
      • 全球性(Internet范围)。
      • IPv6中,大部分节点通常在同一网络接口上使用多个地址;
      • 本地IPv6地址和一些全球性的IPv6地址使用接口标识作为一个单播IPv6地址的分配基础。
  • 分层路由: 将网络拓扑排成一棵树,并计算最短路径。
    • 采用分层路由思想以一种特定方式减少Internet路由条目数,这通过路由聚合的过程实现。
    • 通过相邻的多个ip前缀合并成一个短前缀,可以覆盖更多的地址空间。
  • 特殊用途地址:
    • IPv4特殊用途地址:

      • 0.0.0.0/8, 本地网络中的主机, 作为原IP地址使用;
      • 10.0.0.0/8,专用网络(内联网)的地址,这种地址不会出现在公共Internet网络中;
      • 127.0.0.0/8,Internet主机回送地址(同一计算机),通常只用127.0.0.1;
      • 169.254.0.0/16,链路本地地址,只用于一条链路,通常自动分配;
      • 172.16.0.0/12,专用网络(内联网)的地址,这种地址不会出现在公共Internet网络中;
      • 192.0.0.0/24,IETF协议分配(IANA保留);
      • 192.0.2.0/24,批准用于文档中的TEST-NET-1地址,这种地址不会出现在公共Internet中;
      • 192.88.99.0/24,用于6to4中继(任播地址);
      • 192.168.0.0/16,专用网络(内联网)的地址,这种地址不会出现在公共Internet网络中;
      • 198.18.0.0/15,用于基准和性能测试;
      • 198.51.100.0/24,TEST-NET-2地址,被批准用于文档中;
      • 203.0.113.0/24,TEST-NET-3地址,被批准用于文档中;
      • 224.0.0.0/24,IPv4的组播地址(以前的D类地址),仅作为目的地址使用;
      • 240.0.0.0/4,保留空间(以前的E类),除了255.255.255.255;
      • 255.255.255.255/32,本地网络(受限的)广播地址。
    • IPv6特殊用途地址:
      • ::/0,默认路由条目,不用于寻址;
      • ::/128,未指定地址, 可作为源IP地址使用;
      • ::1/128,IPv6主机回送地址,不用于发送出本地主机的数据中;
      • ::ffff:0:0/96,IPv4映射地址, 这种地址不会出现在分组头部,只用于内部主机;
      • ::{ipv4-address}/96,IPv4兼容地址,已过时,未使用;
      • 2001::32,Teredo地址;
      • 2001:10::/28,ORCHI(覆盖可路由加密散列标识符),这种地址不会出现在公共的Internet中;
      • 2001:db8::32,用于文档和实例的地址范围,这种地址不会出现在公共的Internet中;
      • 2002::16,6to4隧道中继的6to4地址;
      • 3ffe::/16,用于6bone实验,已过时,未使用;
      • 5f00::/16,用于6bone实验, 已过时,未使用;
      • fc00::/7,唯一的本地单播地址,不用于全球性的Inrternet;
      • fe80::/10,链路本地单播地址;
      • ff00::/8,IPv6组播地址, 仅为目的地址使用。
    • 不可路由的地址: 不能在公共Internet中路由;
  • IPv4/IPv6地址转换, 单播转换和组播转换方案;
  • 组播地址: IPv4和IPv6都支持组播寻址,一个IP组播地址,即组或组地址,标识了一组主机接口,而不是一个单独的接口。
    • 常见的范围:节点本地(同一计算机),链路本地(同一子网),站点本地(适用于一些站点), 全球(整个Internet)和管理。
    • 单播地址作为源地址,组播地址作为目的地址;
    • 已加入组的所有主机将接收到该组的任何数据报;
    • 任意组播(ASM);
    • 源特定组播(SSM),每个组只使用一个发送方;
  • IPv4中的D类地址已经被保留为组播地址(224.0.0.0~239.255.255.255);
  • 任播地址: 是一个单播IPv4或IPv6地址,这些地址根据所在的网络确定不同的主机;
    • 任播地址不是指Internet中的一台主机,而是对于任播地址最合适、最接近的一台主机;
    • 任播地址最常用与发现一台提供了常用服务的计算机,某数据报发送到一个任播地址,可用于找到DNS服务器。
  • IP地址用于识别和定位整个Internet系统(单播地址)中设备的网络接口。

TCP-IP详解学习笔记1的更多相关文章

  1. TCP/IP详解学习笔记

    TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议, ...

  2. TCP/IP详解学习笔记 这位仁兄写得太好了

      TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣 ...

  3. TCP/IP详解学习笔记- 概述

    TCP/IP详解学习笔记(1)-- 概述1.TCP/IP的分层结构      网络协议通常分不同层次进行开发,每一层分别负责不同的同信功能.TCP/IP通常被认为是一个四层协议系统.      如图所 ...

  4. TCP/IP详解学习笔记 这位仁兄写得太好了.(转载)

    TCP/IP详解学习笔记   这位仁兄写得太好了   TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/20444 ...

  5. 【转】TCP/IP详解学习笔记(二)

    TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据 ...

  6. 【转】TCP/IP详解学习笔记(一)

      TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/204448.aspx TCP/IP详解学习笔记(13)-T ...

  7. TCP/IP详解学习笔记(3)-- IP:网际协议

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

  8. TCP/IP详解学习笔记(9)-TCP协议概述

    终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...

  9. TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节

    1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统 ...

  10. TCP/IP详解学习笔记(7)-- 初识运输层

    作为TCP和UDP协议的学习前奏,简单的介绍一下运输层的相关内容,方便对TCP,UDP的学习. 1.概述      运输层的任务主要是负责主机中两个进程之间的通信.      运输层的基本功能: 复用 ...

随机推荐

  1. jeecg开发环境搭建

    Maven安装 步骤见:https://www.cnblogs.com/dyh004/p/8523260.html 修改Maven仓库 1.修改maven仓库存放位置 修改maven仓库存放位置:找到 ...

  2. python json库序列化支持中文

    import json d = {"name":"英雄无敌7"} res = json.dumps(d) # 打印res 会显示 {"name&quo ...

  3. 使用Crowd集成Confluence与JIRA

    一. 独立安装Crowd,步骤1-步骤13的内容二. 设置Confluence使用Crowd进行认证.步骤14-18的内容三. 设置JIRA使用Crowd进行认证,并使用Confluence的组织机构 ...

  4. 跨域下使用获取iframe的父页面URL

    通常情况下,我们获取iframe父页面的url很简单:parent.location或top.location即可,但前提是它们遵循同源策略. 当iframe与父页面不属于同一个域名时,像上面的获取会 ...

  5. Python——面向对象的特性

    1.继承 定义:继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 class A:pass #父类,基类,超类 class ...

  6. 进程初识和multiprocessing模块之Process

    一.什么是进程 进程就是运行中的程序 进程是操作系统中最小的资源分配单位 进程与进程之间的关系 : 数据隔离的 进程的id:Process id = pid pid是一个全系统唯一的对某个进程的标识, ...

  7. Luogu5289 十二省联考2019皮配(动态规划)

    将选择导师看成先选阵营再选派系,这样有显然的O(nm2)暴力,即按城市排序后,设f[i][j][k]为前i个学校中第一个阵营有j人第一个派系有k人的方案数,暴力背包. 对于k=0,可以发现选阵营和选派 ...

  8. java json转换(二)

    package com.kps.common.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArra ...

  9. CSS3基础入门01

    CSS3 基础入门 01 前言 相对于css2来说,css3更新了很多的内容,其中包括选择器.颜色.阴影.背景.文本.边框.新的布局方案.2d.3d.动画等等. 而如果想要学习css3的诸多部分,不妨 ...

  10. Django分布式任务队列celery的实践

    不使用数据库作为 Broker Broker 的选择大致有消息队列和数据库两种,这里建议尽量避免使用数据库作为 Broker,除非你的业务系统足够简单.在并发量很高的复杂系统中,大量 Workers ...