这两周用心研读了<图解TCP/IP>一书,计算机网络协议的发展历史与解决问题的出发角度让我沉浸其中,网络协议沟通世界的能力让我着迷,目前对于TCP/IP的知识理解还有限,不过还是希望这些基础的东西能够帮助一些有需要的人吧.
1.IP协议
IP(IPv4_IPv6)都相当于OSI参考模型中的第三层----网络层.
网络层的主要作用是"实现终端节点之间的通信".这种通信节点之间的通信也叫"点对点通信".
从OSI参考模型可知,网络层的下一层-----数据链路层的主要作用就是在互连同一种数据链路的节点之间进行包传递.而一旦跨越多种数据链路,就需要借助网络层.网络层可以跨越不同的数据链路,即使是在不同的数据链路上也能实现两端节点之间的数据包传递.
IPv4
IPv4是目前通用IP协议,现指的IP协议一般是指IPv4,我们一般所说的A类地址.B类地址以及C类地址等都是基于IPv4协议的IP地址分级.
IPv4地址由32位正整数来表示.TCP/IP通信要求将这样的IP地址分配给每一个参与通信的主机.IP地址在计算机内部以二进制方式被处理.然而,由于人类社会并不习惯与采用二进制方式没需要采用一种特殊的标记方式.那就是将32为的IP地址以每八位为一组,分成四组,每组以"."隔开,再将每组数转换成十进制数.例如10101100000101000000000100000001的IP地址,通常先被分为10101100.00010100.00000001.00000001,然后再转化成我们日常所见的172.20.1.1格式的IP地址.
由此种情况看,在IPv4协议的基础上全球最多能有43亿多台计算机能够被允许连接到网络.
实际上,IP地址并非是根据主机台数来配置的,而是每一台主机上的每一块网卡(NIC)都得设置IP地址.通常一块网卡只设置一个IP地址,其实一块网卡也可以配置多个IP地址.此外,一台路由器通常都会配置两个以上的网卡,因此可以设置两个以上的IP地址.
因此,在IPv4的基础上,IPv6协议应运而生.
IPv6
IPv6是为了根本解决IPv4地址耗尽的问题而被标准化的网际协议.IPv4的地址长度为4个8位字节,即32比特.而IPv6的地址长度则是原来的4倍,即128比特,一般写成8个16位字节.
从IPv4切换到IPv6极其耗时,需要将网络中所有主机和路由器的IP地址进行重设.当互联网广泛普及后,替换所有IP地址会是更为艰巨的任务.
也是出于上述原因,IPv6不仅仅能解决IPv4地址耗尽的问题,它甚至试图弥补IPv4中的绝大多数缺陷.目前,人们正着力于进行IPv4与IPv6之间的相互通信与兼容性方面的测试.
IPv6特点
1.IP地址的扩大与路由控制表的聚合
IP地址依然适应互联网分层构造.分配与其地址结构相适应的IP地址,尽可能避免路由表膨大.
2.性能提升
包首部长度采用固定的值(40字节),不在采用首部检验码.简化首部结构,减轻路由器负荷.路由器不再做分片处理(通过路径MTU发现只由发送端主机进行分片处理).
3.支持即插即用功能
即使没有DHCO服务器也可以实现自动分配IP地址.
4.采用认证和加密功能
应对伪造IP地址的网络安全功能以及方知线路窃听的功能.(IPsec)
5.多播.Mobile IP成为拓展功能
多播和Mobile IP被定义成IPv6的扩展功能.由此可以预期,曾在IPv4中难于应用的这两个功能在IPv6中能够顺利使用.
2.UDP协议(用户数据报协议)
UDP是User Datagram Protocol的缩写.
UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务.并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制.
即使是出现网络拥堵的情况下,UDP也无法进行流量控制等避免网络拥塞的行为.此外,传输途中即使出现丢包,UDP也不负责重发.甚至当出现包的到达顺序乱掉时也没有纠正的功能.如果需要这些细节控制,那么不得不交由采用UDO的应用程序去处理.UDP有点类似于用户说什么就听什么的机制,但是需要用户充分考虑好上层协议类型并制作相应的应用程序.因此,也可以说,UDP按照"制作程序的那些用户的指示行事".
由于UDP面向无连接,它可以随时发送数据.再加上UDP本身的处理既简单又高效,因此经常用于以下几个方面,因此常用于以下几个方面:
- 包总量较少的通信(DNS,SNMP等)
- 视频.音频等多媒体通信(即时通信)
- 限定于LAN等特定网络中的应用通信
- 广播通信(广播,多播)
3.TCP协议(传输控制协议)
与UDP不同,TCP则"人如其名",可以说是对"传输,发送,通信"进行"控制"的"协议".
TCP与UDP的却别相当大.它充分地实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制.而这些在UDO中都没有.此外,TCP作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费.
根据TCP的这些机制,在IP这种无连接的网络上也能够实现高可靠性的通信.
为了通过IP数据报实现可靠性传输,需要考虑许多事情,例如数据的破坏,丢包,重复以及分片顺序混乱等问题.如不能解决这些问题,也就无从谈起可靠传输.
TCP通过检验和,序列号,确认应答,重发控制,连接管理以及窗口控制等机制实现可靠性传输.
TCP特点
- 建立连接,形成传输数据的通道
- 在连接中进行大数据传输(数据大小不收限制)
- 通过三次握手完成连接,是可靠协议,安全送达
- 必须建立连接,效率会稍低
以上就是第一次简单的总结啦,希望对各位看官有所帮助,后面还会持续更新.