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 ...
随机推荐
- 选项卡tab2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ubuntu下搭建Discuz
环境:我用桥接方式创建了一个ubuntu16的虚拟机,ip为192.168.0.220 1.安装mysql sudo apt-get install mysql-server mysql-cl ...
- centos下部署NFS
一. NFS简介 NFS---Network File System:主要功能是通过网络让不同的linux主机系统间可以彼此共享文件和目录.NFS客户端可以通过挂载的方式将NFS服务器端共 ...
- python学习笔记之使用threading模块实现多线程(转)
综述 Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势 ...
- 算法 PK 猫咪 | 章鱼保罗后继竟然是只猫?
简评:一只名叫阿喀琉斯(Achilles)的白猫一边小声叫着,一边慵懒地在分别插有俄罗斯和沙特阿拉伯国旗的食盆间踱步.这只看起来并不出众的小猫住在俄罗斯圣彼得堡埃尔米塔日博物馆(State Hermi ...
- Flink学习笔记:Time的故事
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- es-curl 查询与更新
1,封装http方法 private function http($url, $data = NULL, $json = false) { unset($res,$curl,$errorno); $c ...
- leetcode-137-Single Number II-第二种解法
题目描述: 详细的题目描述见上一篇博客<leetcode-137-Single Number II-第一种解法>,这里简单说一下. 有一个数组,所有元素都出现了三次,除了一个元素只出现了一 ...
- Spark 错误日志中看到的一些问题
2014-4-23 18:42:09 org.jivesoftware.spark.util.log.Log error 严重: Unable to contact shared group info ...
- 题目1008:最短路径问题(SPFA算法)
问题来源 http://ac.jobdu.com/problem.php?pid=1008 问题描述 给定一个G(V,E)有向图,起点s以及终点t,求最短路径. 问题分析 典型的单源最短路径问题,可以 ...