TCP/IP
OSI七层模型,注意TCP/IP为协议簇,即TCP/IP并不单单指TCP、IP两个协议,其也包括了ARP,RARP,ICMP,SNMP,DNS等等一系列协议。
注:路由器仅有三层。
分类
网络中传输方式:
- 面向有连接型:在发送数据前,需要在收发主机之间连接一条通信线路。
- 面向无连接型:不要求建立和断开连接。发送端可于任何时候自由发送数据。
接收端数量分类:
- 单播: 1对1
- 多播:与广播类似,将消息发送给多个主机,不同之处在于多播要限定某一组主机作为接收端
- 广播:将消息从一台主机发送给与之相连的所有其他主机
- 任播:在特定多台主机中任选一台作为接收端
TCP/IP
数据链路层
数据链路层的协议定义了通过通信媒介互联设备之间的传输规范。(双绞电缆,同轴电缆,光纤...)
这里涉及到了一个网络拓扑的知识,网络拓扑分为三类:总线型,星型,混合型
IP
位于OSI网络层
- 主机:配置有IP地址,但不能进行路由控制的设备
- 节点:主机与路由器统称
IP分为三大作用模块:
- IP寻址
- 路由(最终节点为止的转发)
- IP分包与组包
路由控制表:
为了将数据包发送给目标主机,所有主机都维护了一张路由表控制表。该表记录IP数据在下一步应该发给哪个路由器。
数据链路的抽象化:
IP是实现多个数据链路之间通信的协议。数据链路根据种类不同各有各的特点,针对这些不同的数据链路的相异性,进行抽象化也是IP重要的作用之一。
IP是属于面向无连接型:
- 简化
- 提速
IP地址的基础知识
IPv4由32位整数来表示。TCP/IP 要求将这样的一个地址分配给每一个参与通信的主机。
IP地址由网络地址和主机地址两部分标识组成。
IP地址分类存在新旧两种方式,第一种就是分ABCD类,第二种采用子网掩码标识。第二种方式兼容了第一种方式。
第一种分类方式:
- A类:首位以“0”开始,从1~8位是其网络地址。(即: 0.0.0.0 ~ 127.0.0.0) A类后24位相当于主机标识,因此一个网段可以容纳 (1677726 减去一个全1广播地址,一个全0表示对应网络或IP地址不可获知)
- B类:前两位为“10”的地址。从1~16位都是网络标识。(128.0.0.0 ~ 191.255.0.0) B类后16位相当于主机标识。因此一个网段内可容纳的主机数目位
- C类:前三位为“110”的地址。从1~24位都是网络标识。(192.0.0.0 ~ 223.255.255.0) C类后8位相当于主机标识。因此一个网段内可容纳的主机数目位
- D类:前三位为“1110”的地址。从1~24位都是网络标识。(224.0.0.0~ 239.255.255.255) D类只有网络地址,没有主机地址,多被用于多播。
第二种分类方式:
子网掩码:将原来ABCD可u分级中的主机地址部分用作子网地址,可以将原网络分为多个物理网络的一种机制。
ip地址与子网掩码取与可以得到网络地址,网络地址减二就得到了主机地址范围。
IP分割与在构成处理
不同数据链路的MTU都是不同的,所以在传输过程中我们需要进行IP报文的分片与重组。任意主机都有必要对IP分片进行响应的处理,分片往往在网络上遇到比较大的报文无法一下子发出时就会进行处理。(路由器负责分片,目的主机负责重组)
路径MTU的发现
- 目的:为了减少路由器的负担
- 方法:取发送端与主机端间需要分片时最大MTU然后发送主机端按照该大小发送分片报文
DNS:
- 一个可以有效管理主机名和IP地址之间对应关系的系统。(类似于分布式数据库)
ARP:
- 是一种解决地址问题的协议,以目标地址的IP地址位线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。
- 工作机制:借助ARP请求与响应两种类型包确定MAC地址,即发包询问。
- RARP:从MAC地址定位IP地址的一种协议
ICMP:
- 确认网络是否正常工作
- 遇到异常对进行问题进行诊断
DCHP:
- 为了实现自动设置IP地址,统一管理IP地址分配。有了DHCP计算机只要连接到了网络就可以进行TCP/IP通信
NAT:用于本地网络中使用私有地址,而在连接互联网时使用全局IP地址的技术
TCP于UDP
端口号的定义:用来识别同一台计算机中进行通信的不同程序,故而也被称为程序地址。
DNS 53, HTTP 80, HTTPS 443
UDP不提供复杂的控制机制,利用IP提供的面向无连接的通信服务。
TCP通过检验和(类似于一个标记,接收方通过校验这个标志位来判断数据是否被损坏),序列号,确认应答(ACK),重发控制(超时重传),连接管理(三次握手,四次挥手),窗口控制来来实现可靠性传输。
同时还有部分TCP持久连接,管线化等知识就不过多赘述。