看到这句话,有没有感到很熟悉呀?相信不少人在投递简历的时候都看到过这条要求,不少人会以为咱们在实际开发中通常用不到这些知识,因此对这些东西不屑一顾.编程
可是笔者认为想要作出更好的 APP,那么对这些基础知识必需要有必定的了解,这样你才能考虑得更加全面和完善,下面就让咱们一块儿来了解一下,什么是 TCP/IP.缓存
主要是指物理层次的一些接口,好比电缆等.安全
提供独立于硬件的逻辑寻址,实现物理地址与逻辑地址的转换.网络
在 TCP / IP 协议族中,网络层协议包括 IP 协议(网际协议),ICMP 协议( Internet 互联网控制报文协议),以及 IGMP 协议( Internet 组管理协议).tcp
为网络提供了流量控制,错误控制和确认服务.ide
在 TCP / IP 协议族中有两个互不相同的传输协议: TCP(传输控制协议)和 UDP(用户数据报协议).工具
为网络排错,文件传输,远程控制和 Internet 操做提供具体的应用程序测试
在 TCP / IP 协议中数据先由上往下将数据装包,而后由下往上拆包优化
在装包的时候,每一层都会增长一些信息用于传输,这部分信息就叫报头,当上层的数据到达本层的时候,会将数据加上本层的报头打包在一块儿,继续往下传递.加密
在拆包的时候,每一层将本层须要的报头读取后,就将剩下的数据往上传.
这个过程有点像俄罗斯套娃,因此有时候人们也会用俄罗斯套娃来形容这个过程.
这一块主要主要涉及到一些物理传输,好比以太网,无线局域网.这里就不作详细的介绍了
前面有提到,网络层主要就是作物理地址与逻辑地址之间的转换.
目前市场上应用的最多的是 32 位二进制的 IPv4 ,由于 IPv4 的地址已经不够用了,因此 128 位二进制的 IPv6 应用愈来愈普遍了(可是下面的介绍都是基于 IPv4 进行的)
TCP/IP 协议网络上的每个网络适配器都有一个惟一的 IP 地址.
IP 地址是一个 32 位的地址,这个地址一般分红 4 端,每 8 个二进制为一段,可是为了方便阅读,一般会将每段都转换为十进制来显示,好比你们很是熟悉的 192.168.0.1
IP 地址分为两个部分:
可是具体哪部分属于网络 ID,哪些属于主机 ID 并无规定.
由于有些网络是须要不少主机的,这样的话表明主机 ID 的部分就要更多,可是有些网络须要的主机不多,这样主机 ID 的部分就应该少一些.
绝大部分 IP 地址属于如下几类
这里可以很明显的看出 A 类地址可以提供出的网络 ID 较少,可是每一个网络能够拥有很是多的主机
可是咱们怎么才能看出一个 IP 地址究竟是哪类地址呢?
那么转化为十进制(四段)的话,咱们就能以第一段中的十进制数来区分 IP 地址究竟是哪类地址了。
全是 0 的主机 ID 表明网络自己,好比说 IP 地址为 130.100.0.0 指的是网络 ID 为130.100 的 B 类地址。
全是 1 的主机 ID 表明广播,是用于向该网络中的所有主机方法消息的。 IP 地址为 130.100.255.255 就是网络 ID 为 130.100 网络的广播地址(二进制 IP 地址中全是 1 ,转换为十进制就是 255 )
以十进制 127 开头的地址都是环回地址。目的地址是环回地址的消息,实际上是由本地发送和接收的。主要是用于测试 TCP/IP 软件是否正常工做。咱们用 ping 功能的时候,通常用的环回地址是 127.0.0.1
简单的来讲 ARP 的做用就是把 IP 地址映射为物理地址,而与之相反的 RARP(逆向 ARP)就是将物理地址映射为 IP 地址。
前面提到了 IP 地址的分类,可是对于 A 类和 B 类地址来讲,每一个网络下的主机数量太多了,那么网络的传输会变得很低效,而且很不灵活。好比说 IP地址为 100.0.0.0 的 A 类地址,这个网络下的主机数量超过了 1600 万台。
因此子网掩码的出现就是为了解决这样的问题。
咱们先回顾一下以前如何区分主机 IP 和网络 IP 的。
以 A 类地址 99.10.10.10 为例,前 8 位是网络 IP ,后 24 位是主机 IP 。(以下图)
子网掩码也是一个 32 为的二进制数,也能够用四个十进制数来分段,他的每一位对应着 IP 地址的相应位置,数值为 1 时表明的是非主机位,数值为 0 时表明是主机位。
由表格能够很清晰的看出,网络 IP 还是由以前的分类来决定究竟是多少位,主机 IP 则是由子网掩码值为 0 的位数来决定,剩下的则是子网 IP
传输层提供了两种到达目标网络的方式
因为传输层涉及的东西比较多,好比端口,Socket等,都是咱们作移动开发须要了解的,以后的文章中咱们再具体作介绍,这里就不讲解了。
应用层作为 TCP/IP 协议的最高层级,对于咱们移动开发来讲,是接触最多的。
一样的,因为应用层咱们须要涉及的东西太多,具体的介绍咱们将在以后的文章中进行介绍,本文就不进行扩展了,感兴趣的朋友能够继续关注个人博客: