TCP学习(一)
协议分层
可以看到 物理层, 链路层,网络层是所有网络设备共有的, 而传输层, 会话层, 表示层, 应用层 是存在于主机上的
各设备实现的协议层次
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学习(一)的更多相关文章
- TCP学习之一:TCP网络编程概念
参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html 一.TCP 面向连接的(UDP是无连接的) 全双工,建立连接之后 ...
- TCP学习总结(一)
在学习的过程中,相信大家都有过“学了就忘“这种经历,又特别是TCP/IP知识点密集的通信协议,所以在此总结一下自己学到的皮毛,希望对自己对大家也有所帮助. 这篇博客主要讲运输层TCP和UDP的东西,I ...
- freemodbus modbus TCP 学习笔记
1.前言 使用modbus有些时间了,期间使用过modbus RTU也使用过modbus TCP,通过博文和大家分享一些MODBUS TCP的东西.在嵌入式中实现TCP就需要借助一个以太网协议 ...
- TCP学习之五:客户端、服务端异步传输字符串
参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html 消息发送接口: 消息接收接口: 客户端: 服务端: 消息发送类: ...
- TCP学习之四:传输协议
参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html 服务端接收到的数据可能是被截断或合并后的数据,需要协议来 ...
- TCP学习之三:客户端、服务端同步传输字符串
参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html 一个客户端.发送一条消息 客户端: 服务端: 注意:Networ ...
- 毕向东tcp学习笔记1
项目功能: 实现一次发送和接收,服务器接收客户端发送的内容并打印出来 用最通俗的语言讲解下,上图中大椭圆是服务器,A.C是客户端,当客户端和服务器通过socket建立连接后 1.两者之间形成一个通道, ...
- TCP学习总结(四)
TCP连接管理 TCP运输连接有3个阶段, 即: 连接建立,数据传送和连接释放. 1. TCP的连接建立(3次握手) TCP连接的建立采用客户服务器方式.主动发起连接建立的应用进程叫做客户(clien ...
- TCP学习总结(三)
TCP的流量控制 1.利用滑动窗口实现流量控制 所谓流量控制,就是让发送方的发送速率不要太快,要让接收方来得及接收.利用下图来说明如何利用滑动窗口机制进行流量控制: 一开始(connect后),B告诉 ...
- TCP学习总结(二)
前面一节咱们介绍完了TCP协议,这部分,将要介绍,TCP是如何实现可靠传输的. TCP的可靠传输 1.滑动窗口 上一节我们介绍TCP报文段头部的时候说得到,"窗口"这个部分,&qu ...
随机推荐
- 如何在VMware Workstation11的Windows Server 2008 R2中安装XAMPP?
我在VMware Workstation11的Windows Server 2008 R2打算安装XAMPP,但是总是有问题,经过两天的不懈努力,终于实现了,下面我具体说一说我遇到的问题和解决方法! ...
- 【OCP|052】iZ0-052最新题库及答案整理-第9题
9.Which is true about the Automatic Diagnostic Repository (ADR)? A) It includes diagnostic data for ...
- “全栈2019”Java第三十八章:类与方法
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- MySql数据库,对varchar类型字段str进行where str=0条件查询时,查询结果是什么
在用MySQL查询数据的时候,遇到了一个奇怪的问题.用一个varchar类型的字符串str,作为条件与0比较时,会查str不为0的数据. 比如:SELECT id, idnumber from hr_ ...
- [ActionSprit 3.0] FMS客户端与服务器端交互(传参)
客户端as: import flash.net.NetConnection; import flash.events.NetStatusEvent; var nc:NetConnection = ne ...
- 参照跟老男孩学linux运维搭建nagios实验小结
nagios效果示例 http://192.168.0.236/nagios 用户名:hong 密码:123 一. 服务端安装准备 1. 更新源 cd /etc/y ...
- fastcgi main
main函数里 当kill -TERM pid 时, http://redfoxli.github.io/php-fpm-signals.html 这篇文章 说是 1)master主进程接收到sig ...
- C#-函数的传值与传址
传值就是将实参的值传到所调用的函数里面,实参的值并没有发生变化,默认传值的有int型,浮点型,bool型,char字符型,结构体等等. 传址就是将地址传到所调用的函数里面操作,实参的值也会跟着变化,传 ...
- maven项目报错
[root@kube-master iff]# kubectl logs iff-dm-3029278244-9qrp6 -n iffjava.lang.IllegalArgumentExceptio ...
- Ubuntu no such file or directory
在运行可执行程序时,报错如上,检查步骤: 1.程序是否和Ubuntu版本位数一致. Linux系统查看:uname -a 程序版本查看:file <filename> 2.查看文件是否有可 ...