TCP-IP详解学习笔记1

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系统(单播地址)中设备的网络接口。
上一篇:python socket非阻塞及python队列Queue


下一篇:文件类似的推理 -- 超级本征值(super feature)