协议分层

可以看到 物理层, 链路层,网络层是所有网络设备共有的, 而传输层, 会话层, 表示层, 应用层 是存在于主机上的

各设备实现的协议层次

IP地址的表示

​ 为什么会出现ip地址?是为了在一个联网的环境下 标定一个识别,当你断开网络并且与外界没相连的时候可使用ipconfig命令查看,你会发现没有ip地址

Ipv4

​ 长度为32 位,常见使用点分四组表示法, 例如: 192.168.0.17 每一块都是8位

Ipv6

​ 长度为128位, 为Ipv4 的4倍,用8个块来表示,每个块由4个16进制的数组成,例如 : 5f6c:85ac:624a:af3c:4b5c:7aac:93df:82ac

分类寻址

​ 分为5类,开始时一个IP 由 网络号和主机号组成。如下图:

​ 由这两张图可以看到A 类主机号范围广,网络号范围窄,而C类相反

子网寻址

​ 随着计算机联网数量越来越多,为接入Internet 的新网段分配一个网络号变得更加棘手,所以就出现了子网寻址。就是网络号后面再分子网络号,子网络号后边再分配主机号,假如分配后为主机号有8位,那么最多可以分配到254台主机,第一台和最后一台有特殊用处​

子网掩码

​     就是比如我知道了我的IP 地址和所属的子网。 通过IP地址和子网掩码的运算就可以得知所属子网的范围。

子网掩码可以由主机或路由器分配,可以是静态的(路由器分配),也可以是动态(DHCP动态主机配置协议)的。掩码由主机或路由器使用,用来确定一个IP地址(网络号+子网号)部分的结束和主机号的开始。

​     子网掩码可以用前缀长度来表示 ,例如: /24表示子网掩码: 255.255.255.0,即是说24个1

可变长度子网掩码(VLSM)

​      同个子网范围内子网掩码不同,那么分配下去的主机数量。

广播地址

​ 每一个Ipv4子网中,有一个特殊地址作为子网广播地址。广播地址的形成:子网掩码取反与任意子网中IP 地址或运算就是子网广播地址。广播地址通常和其他协议一起使用,例如UDP/IP ,或ICMP ,因为它们不涉及像TCP/IP那样的双方会话。

255.255.255.255作为本地网络广播 ,它不会被路由器转发。ipv6没有任何广播地址,ipv6只有组播地址

Ipv6地址和接口标识符

​ IPv6使用特殊前缀表示一个地址范围。有关范围的例子:

  • 节点本地(仅用于本地同一台计算机)

  • 链路本地(同一网络链路或IPv6前缀中的节点)

  • 全球性(Internet 范围内)

IPv4/IPv6 地址转换

组播地址

​组播服务模型:

  • ASM(任意源组播) : 任何发送方可以发送给任何组。

  • SSM (源特定组播) :在每组只使用一个发送方,在这种情况下,当一台主机加入一个组后,它会被指定一个信道地址,其中包括一个组地址和源地址。

IPv4组播地址

​ 范围:224.0.0.0 ~ 239.255.255.255

  • 224.0.0.0 ~ 224.0.0.255 : 本地网络控制,不转发

  • 224.0.1.0~224.0.1.255 :互联网络控制,正常转发

    基于单播前缀的组播寻址(UBM): 根据分配的单播进行分配组播地址

IPv6组播地址

​    前缀:ff00::/8 被预留给组播

IPv6本地链路地址

IPv6本地链路地址,类似于IPv4中APIPA(Automatic Private IP Addressing,自动专用IP寻址)所定义的地址169.254.0.0/16。首先说明一下IPv4中APIPA(AutomaticPrivate IP Addressing,自动专用IP寻址)地址会在什么样的情况下产生和使用。比如:在企业网络中配置了DHCP服务器,为企业网络中的客户机提供IP地址分配,如果某天DHCP服务器故障,无法为企业网络中的客户机提供IP地址分配,此时客户主机会产生一个APIPA地址。该地址在一个子网内范围内可以保证主机之间的通信,但是APIPA地址是不可以完成路由通信。而IPv6本地链路地址的作用在于发现邻居节点和在无状态自动配置中链路本地上节点之间的通信。并且只能在连接到同一本地链路的节点之间通讯,不能跨路由器进行通讯和路由转发,具体如何理解IPv6的本地链路地址,首先要理解IPv6所定义的链路、站点、与全局的意义。如图12.26所示:IPv6的链路相当于企业网络中连接在一个二层交换机的主机链路,更明确的一种说法是链路处于同一个广播域,如果从IPv4的角度来理解可以理解成IPv6的链路就是在同一子网内的主机。所以IPv6的本地链路地址,只能在IPv6的本地链路中使用,如链路A与链路B中的IPv6主机使用本地链路地址在各自的链路上通信,但是不可以使用本地链路地址完成链路A与链路B之间的通信,这与IPv4中的APIPA(Automatic Private IP Addressing,自动专用IP寻址地址)类似。

本地链路地址的格式如下 :(可以看到固定的前缀为FE80::/10)

注: 发现邻居节点:类似于CISCO的CDP。无状态自动配置:指不能通过DHCP获取地址,也没有手工的配置IPv6地址。简单点说就是通过MAC地址形成IPv6本地链路地址,作用是为了同个链路之间的通信

Ipv6本地站点地址

IPv6本地站点地址,只能在IPv6所定义的一个站点内使用,站点的概念如图12.26 IPv6的链路、站点、全局所示,链路A与链路B都处于同一个站点内,IPv6本地站点地址类似于IPv4环境RFC1918所定义的“私有IP地址”,如10.0.0.0/8.,172.16.0.0/16-172.31.255.255/16和192.168.0.0/16。所以IPv6本地站点地址是不能应用到了internet上,而只能使用在企业内部网络。既然此类IPv6的本地站点地址只能用在企业内部网络,难道是为了做NAT,代理企业内部上网?但是我们知道IPv6完全有足够的IP地址空间为每一个用户去分配一个用于internet的地址,并且IPv6环境中的NAT技术是用来解决IPv4与IPv6过渡兼容的问题,而不是代理私有专用网络IP访问Internet。那IPv6本地站点地址的作用是什么呢?如下所示的一些基本作用描述。

  • 用于企业内部打印机、共享文件等常见服务

  • 为企业内部服务器,客户机分配IP地址,限制访问internet。

  • 为企业内部交换机、网关、无线接入点分配IP地址

  • 用于远程管理企业内部服务器、路由器等相关网络设备

  • 没有获取全球可聚合单播地址的组织机构,可使用IPv6的本地站点地址进行网络建设

    本地站点地址格式如下:(固定前缀为 FEC0::/10)

注意:IPv6的本地链路地址与本地站点地址的重大区别:本地链路地址只能在同一个二层链路中完成通信,不可被路由。而本地站点地址是可能路由的。本地站点地址是在不同的链路之间的通信

  • IPv6全球单播地址

​      IPv6全球单播地址指用于internet上的地址,类似于IPv4的“公有”IP地址,如202.202.1.1/30。而IPv6全球单播地址是IPv6寻址结构当中最重要的部分,该寻址结构使用了严格的路由前缀聚合,目的在于限制全球internet的路由表的规模。

​      全球单播地址格式如下 :(由下面的解释知道,固定前缀为2)

​      对于IPv6全球单播地址的配置,也有一定的规定和要求,其子网前缀必须为2000::/3,指的是在IPv6的前3bit,必须为二进制的001。而二进制换化为十六进制,需要4bit的二进制数,所以IPv6全球单播地址的从左到右的第一字段的变化范围为“0010”到“0011”,换化为十六进制变化范围就为2到3。那么如下图12.30所示,表示IPv6全球单播地址的范围。

TCP学习(一)的更多相关文章

  1. TCP学习之一:TCP网络编程概念

    参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html 一.TCP 面向连接的(UDP是无连接的) 全双工,建立连接之后 ...

  2. TCP学习总结(一)

    在学习的过程中,相信大家都有过“学了就忘“这种经历,又特别是TCP/IP知识点密集的通信协议,所以在此总结一下自己学到的皮毛,希望对自己对大家也有所帮助. 这篇博客主要讲运输层TCP和UDP的东西,I ...

  3. freemodbus modbus TCP 学习笔记

    1.前言     使用modbus有些时间了,期间使用过modbus RTU也使用过modbus TCP,通过博文和大家分享一些MODBUS TCP的东西.在嵌入式中实现TCP就需要借助一个以太网协议 ...

  4. TCP学习之五:客户端、服务端异步传输字符串

    参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html 消息发送接口: 消息接收接口: 客户端: 服务端: 消息发送类: ...

  5. TCP学习之四:传输协议

    参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html     服务端接收到的数据可能是被截断或合并后的数据,需要协议来 ...

  6. TCP学习之三:客户端、服务端同步传输字符串

    参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html 一个客户端.发送一条消息 客户端: 服务端: 注意:Networ ...

  7. 毕向东tcp学习笔记1

    项目功能: 实现一次发送和接收,服务器接收客户端发送的内容并打印出来 用最通俗的语言讲解下,上图中大椭圆是服务器,A.C是客户端,当客户端和服务器通过socket建立连接后 1.两者之间形成一个通道, ...

  8. TCP学习总结(四)

    TCP连接管理 TCP运输连接有3个阶段, 即: 连接建立,数据传送和连接释放. 1. TCP的连接建立(3次握手) TCP连接的建立采用客户服务器方式.主动发起连接建立的应用进程叫做客户(clien ...

  9. TCP学习总结(三)

    TCP的流量控制 1.利用滑动窗口实现流量控制 所谓流量控制,就是让发送方的发送速率不要太快,要让接收方来得及接收.利用下图来说明如何利用滑动窗口机制进行流量控制: 一开始(connect后),B告诉 ...

  10. TCP学习总结(二)

    前面一节咱们介绍完了TCP协议,这部分,将要介绍,TCP是如何实现可靠传输的. TCP的可靠传输 1.滑动窗口 上一节我们介绍TCP报文段头部的时候说得到,"窗口"这个部分,&qu ...

随机推荐

  1. python 中使用 urllib2 伪造 http 报头的2个方法

    方法1. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #!/usr/bin/pyth ...

  2. 点击隐藏显示和点击body空白处隐藏

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. “全栈2019”Java第十三章:基本数据类型

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. 2019 JUST Programming Contest J. Grid Beauty

    J. Grid Beauty time limit per test 3.0 s memory limit per test 256 MB input standard input output st ...

  5. C# - Common Tool

    Json 涉及命名空间 using System.IO; using System.Net; using System.Runtime.Serialization.Json; using Newton ...

  6. ORACLE中的KEEP()使用方法

    转载至:http://blog.csdn.net/aqszhuaihuai/article/details/6434160 ====================================== ...

  7. css ie浏览器兼容问题

    第一,IE6,不支持小于12px的盒子,任何小于12px的盒子,在IE6中看都大 解决办法很简单,就是将盒子的字号,设置小(小于盒子的高),比如0px. 1 height: 4px; 2 _font- ...

  8. MongoDB mongo.exe启动及闪退解决 转载

    转载自:http://blog.csdn.net/wyx_wx/article/details/76108662 启动: 进入MongoDB安装目录下的bin目录,启动mongod.exe 出现如图所 ...

  9. 向指定url发送请求与获取响应

    string url = @"https://www.baidu.com"; //向指定服务器发起请求 HttpWebRequest request = (HttpWebReque ...

  10. vue中npm run dev 不能自动打开浏览器运行项目

    最近用vue2.0 + webpack搭建了环境创建新的项目.出现一个很蹩脚的问题: 在终端输入 npm run dev 的时候,不能自动打开浏览器运行项目. 这段话的意思是:你的应用程序运行地址是: ...