基础概念:
报文:需要发送的数据
分组:将报文拆分成大小相等的块,并在首部加上相应的信息,每个块加上首部信息叫做分组,也叫包
五层协议:
应用层:应用层传输的数据是报文,最高层,负责将报文传送给运输层或者从用户层接受数据 http ftp
运输层:接受应用层的数据,交付给网络层通过调用网络层将报文传递给对应的进程 tcp udp
网络层:将运输层的报文拆分成包,进行传输,选择合适的路由,包也叫IP数据报、分组
数据链路层:将网络层的包封装成帧,在两个相邻的节点之间传输
物理层:不考虑,解释
数据链路层
分装帧
透明性
支持多种网络层协议
支持多种链路层
差错检测
检测链接状态
最大传送单元
网络层地址协商
注:数据链路层接受数据时不需要使用CPU,只有差错检测正确时,才会将数据传送给CPU
网络层
所有连接在互联网中的设备使用的网络层协议是相同的,数据链路层和物理层使用的协议由于硬件厂商的不同,使用的厂商有可能不同,但是只要网络层的协议相同就可以使得数据可以传输
Arp协议用来探测链接在机器上的IP地址和mac地址的绑定关系
负责将报文拆解成包发送,或将包组合成报文
在网络层也会校验数据,但是只校验首部,如果首部出错,则认为数据出错,丢弃
运输层
将网络层交付的报文交给对应的进程
差错校验:因为网络层交付的是包组合成的报文,所以有可能发送丢弃的情况,所以在这里需要校验
TCP:流量控制,保证传输正确性,三次握手,四次握手
应用层
应用层不是网络应用,而是网络应用需要用到的协议。
比如http,大家经常使用http,但是我们参与开发的往往是某一个网页,这个网页里面有很多的标签,这些标签如何翻译,这就是http协议的一部分,这也是应用层协议